Übersicht

In dieser Übersicht werden der End-to-End-Ablauf der Bestellung und seine Interaktion mit Ihrem Webdienst für die Auftragsausführung zusammengefasst.

Sortierung

Die End-to-End-Benutzeroberfläche für Bestellungen übernimmt alle Interaktionen mit dem Nutzer, während er seiner Bestellung Gerichte auf der Speisekarte hinzufügt und entscheidet, ob er die Bestellung abholt oder liefert, je nachdem, welche Dienstleistungen das Restaurant anbietet. Diese Websitevariante wird von den Entitäten Restaurant, Service und Menu aus Ihren Datenfeeds unterstützt.

Der nächste Schritt ist die Phase der Warenkorbvalidierung, in der die resultierende, vom Nutzer erstellte Cart von Ihrem Webdienst verarbeitet wird.

Bezahlaktion

Die „Bezahlaktion“ ist der erste Aufruf von Google an Ihren Webdienstendpunkt. Dein Webdienst ist für die Validierung von Cart verantwortlich. Du musst die Verfügbarkeit und Preise von Artikeln bestätigen, Steuern, Rabatte und Gebühren berechnen und Rücksendegebühren berechnen und die Lieferadresse der Bestellung bestätigen.

Der Bezahlvorgang läuft in dieser Reihenfolge ab:

  1. Der Ordering-End-to-End-Dienst sendet eine CheckoutRequestMessage mit Cart an den Webdienstendpunkt für die Auftragsausführung.
  2. Die Artikel in der Cart müssen von deinem Webdienst anhand aktueller Preise, Verfügbarkeit und Dienstanbieter validiert werden. Anschließend berechnen Sie den Gesamtpreis, der Rabatte, Steuern und Liefergebühren umfasst.
  3. Bei erfolgreichen Anfragen antwortet der Endpunkt mit einer CheckoutResponseMessage, die den unveränderten Cart-Wert enthält. Eine FoodErrorExtension kann in CheckoutResponseMessage aufgenommen werden, um einen Verarbeitungsfehler auszulösen oder bei Bedarf kleinere Änderungen vorzuschlagen.

Nachdem Cart validiert wurde, kann der Nutzer zur Phase der Bestellübermittlung des Ablaufs übergehen.

Bestellaktion einreichen

Die Aktion „Bestellung senden“ wird ausgelöst, wenn der Nutzer seine Bestellung aufgibt. Dein Webdienst muss den Einkaufswagen neu validieren, das Kartentoken verarbeiten, wenn Onlinezahlungen aktiviert sind, und schließlich den Status der Bestellung aktualisieren.

Die Bestellabwicklung läuft in dieser Reihenfolge ab:

  1. Der Ordering-End-to-End-Dienst sendet eine SubmitOrderRequestMessage mit Order an den Webdienstendpunkt für die Auftragsausführung. Das Back-End muss eine weitere Cart-Validierung durchführen, bevor es fortgesetzt werden kann.
  2. Ihr Webdienst verarbeitet die Zahlungsdetails aus Order und führt normalerweise folgende Aktionen aus:

    1. Tokenbestätigung, Betrug und andere Berechtigungsprüfungen
    2. Autorisieren Sie die Karte und laden Sie sie optional auf.
  3. Der Endpunkt antwortet mit einer SubmitOrderResponseMessage, die ein OrderUpdate mit dem Status CREATED („Bestellt“), CONFIRMED (Kaufstatus „Angenommen“) oder REJECTED (Kaufstatus „Abgelehnt“) enthält.

Wenn die Bestellung aufgegeben ist, erwartet der Nutzer, dass er Updates zum Bestellstatus sowohl von dir als auch von der End-to-End-Benutzeroberfläche für Bestellungen erhalten wird. Sie müssen eine Bestellbestätigungs-E-Mail an den Nutzer senden. Außerdem verwendest du die Asynchronous Order Update API, um relevante Bestellaktualisierungen an Google zu senden.

Asynchrone Aktion zur Bestellaktualisierung

Unabhängig von Nutzerbenachrichtigungen deinerseits musst du auch bei folgenden Ereignissen Updates zum Bestellstatus an Google senden:

  1. Änderungen an OrderState, z. B. Übergänge von CREATED zu CONFIRMED und CONFIRMED zu IN_TRANSIT.
  2. Änderungen an bestellten Artikeln, z. B. Preis oder Verfügbarkeit
  3. Wenn der Nutzer eine Supportanfrage von einem Ihrer Kundensupportkanäle auslöst.

Aktualisierungen werden von Ihrem Webdienstendpunkt als AsyncOrderUpdateRequestMessage gesendet, das ein OrderUpdate enthält. Google antwortet mit AsyncOrderUpdateResponseMessage.

Sequenzdiagramm

Die folgende Abbildung zeigt, wie Auftragsausführungsaktionen mit Ihrem Webdienst interagieren. Zum Vergrößern klicken.

End-to-End-Ablauf der Bestellabwicklung

Endpunkt für die Auftragsausführung einrichten

Die End-to-End-Aktionen für Bestellungen verwenden JSON-Nachrichten, um mit Ihrem Webdienst zu kommunizieren und die Verarbeitung, Bestätigung und Aktualisierung von Essensbestellungen abzuwickeln. Wenn Sie Ihren Bestell-End-to-End-Webdienst entwerfen, müssen Sie einen URL-Endpunkt definieren, der Anfragenachrichten vom End-to-End-Dienst für Bestellvorgänge empfängt und Nachrichten an den Google-Dienst zurückgeben kann. Ihre Implementierung muss die folgenden Anforderungen erfüllen:

  • Ihr Webdienst muss eine JSON-Nachricht als POST-Anfrage vom End-to-End-Dienst für Bestellvorgänge empfangen können.
  • Dein Webdienst muss einen öffentlich zugänglichen URL-Endpunkt zur Verfügung stellen, der als Auftragsausführungs-URL bezeichnet wird. Du kannst die URL im Actions Center angeben. Die URL für die Auftragsausführung wird zum Bezahlen und Aufgeben von Bestellungen verwendet. Ihre Implementierung muss beide Arten von Anfragen verarbeiten.
  • Ihr Webdienst muss Nachrichten von Google mithilfe der Nachrichtenüberprüfung überprüfen können.
  • Ihre Implementierung des URL-Endpunkts muss sowohl den Bezahlvorgang als auch die Auftragsabwicklung über einen einzigen Endpunkt verarbeiten können. Sie können nicht einen URL-Endpunkt für den Bezahlvorgang und einen separaten Endpunkt für die Bestellung der Übermittlung haben.

Clientbibliotheken

Mit dem Client-Codegenerator im Abschnitt „Tools“ können Sie Ihren Webdienst anhand der Spezifikation der Fulfillment API validieren.