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:
- Der Ordering-End-to-End-Dienst sendet eine
CheckoutRequestMessage
mitCart
an den Webdienstendpunkt für die Auftragsausführung. - 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. - Bei erfolgreichen Anfragen antwortet der Endpunkt mit einer
CheckoutResponseMessage
, die den unverändertenCart
-Wert enthält. EineFoodErrorExtension
kann inCheckoutResponseMessage
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:
- Der Ordering-End-to-End-Dienst sendet eine
SubmitOrderRequestMessage
mitOrder
an den Webdienstendpunkt für die Auftragsausführung. Das Back-End muss eine weitereCart
-Validierung durchführen, bevor es fortgesetzt werden kann. Ihr Webdienst verarbeitet die Zahlungsdetails aus
Order
und führt normalerweise folgende Aktionen aus:- Tokenbestätigung, Betrug und andere Berechtigungsprüfungen
- Autorisieren Sie die Karte und laden Sie sie optional auf.
Der Endpunkt antwortet mit einer
SubmitOrderResponseMessage
, die einOrderUpdate
mit dem StatusCREATED
(„Bestellt“),CONFIRMED
(Kaufstatus „Angenommen“) oderREJECTED
(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:
- Änderungen an
OrderState
, z. B. Übergänge vonCREATED
zuCONFIRMED
undCONFIRMED
zuIN_TRANSIT
. - Änderungen an bestellten Artikeln, z. B. Preis oder Verfügbarkeit
- 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.
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.