Diese Übersicht fasst den End-to-End-Bestellvorgang und seine Interaktion mit Ihrem Webdienst für die Auftragsausführung zusammen.
Sortierung
Die End-to-End-Benutzeroberfläche für die Bestellung verarbeitet alle Interaktionen mit dem Nutzer, wenn er seiner Bestellung Menüpunkte hinzufügt und je nach den vom Restaurant angebotenen Dienstleistungen die Abholung oder Lieferung auswählt. Diese Funktion basiert auf den Entitäten Restaurant
, Service
und Menu
in Ihren Datenfeeds.
Im nächsten Schritt wird der vom Nutzer erstellte Cart
validiert und von Ihrem Webservice verarbeitet.
Bezahlvorgang
Die Direktkauf-Aktion ist der erste Aufruf, den Google an Ihren Webdienst-Endpunkt sendet.
Ihr Webdienst ist für die Validierung der Cart
verantwortlich. Sie müssen die Verfügbarkeit und Preise der Artikel bestätigen, Steuern, Rabatte und Gebühren berechnen und zurückgeben sowie die Lieferadresse der Bestellung bestätigen.
Der Bezahlvorgang verläuft so:
- Der End-to-End-Bestellservice sendet eine
CheckoutRequestMessage
mit einerCart
an den Endpunkt Ihres Web-Dienstes zur Auftragsausführung. - Ihr Webservice muss die Artikel in der
Cart
anhand der aktuellen Preise, der Verfügbarkeit und der Dienstleister validieren. Berechnen Sie dann den Gesamtpreis, einschließlich Rabatten, Steuern und Versandkosten. - Ihr Endpunkt antwortet mit einer
CheckoutResponseMessage
, die die unveränderteCart
für erfolgreiche Anfragen enthält. EinFoodErrorExtension
kann in dieCheckoutResponseMessage
aufgenommen werden, um einen Verarbeitungsfehler zu melden oder bei Bedarf kleinere Änderungen vorzuschlagen.
Nachdem die Cart
validiert wurde, kann der Nutzer mit der Bestellung fortfahren.
Aktion „Bestellung senden“
Die Aktion „Bestellung senden“ wird ausgelöst, wenn der Nutzer eine Bestellung aufgibt. Ihr Webservice muss den Einkaufswagen noch einmal validieren, das Kartentoken verarbeiten, sofern Onlinezahlungen aktiviert sind, und schließlich den Status der Bestellung aktualisieren.
Der Bestellvorgang verläuft so:
- Der End-to-End-Bestellservice sendet eine
SubmitOrderRequestMessage
mit einerOrder
an den Endpunkt Ihres Web-Dienstes zur Auftragsausführung. Ihr Backend muss noch einmalCart
-geprüft werden, bevor Sie fortfahren können. Ihr Webservice verarbeitet die Zahlungsdetails in der
Order
und führt in der Regel die folgenden Aktionen aus:- Token-, Betrugs- und andere Berechtigungsprüfungen durchführen.
- Autorisieren und optional die Karte belasten.
Dein Endpunkt antwortet mit einer
SubmitOrderResponseMessage
, die eineOrderUpdate
mit dem StatusCREATED
(„Bestellt“),CONFIRMED
(„Akzeptiert“) oderREJECTED
(„Abgelehnt“) enthält.
Nach der Bestellung erwartet der Nutzer Aktualisierungen des Bestellstatus sowohl von Ihnen als auch über die Benutzeroberfläche von „Bestellungen – Ende-zu-Ende“. Sie müssen dem Nutzer eine E-Mail mit der Bestellbestätigung senden. Außerdem verwenden Sie die Asynchronous Order Update API, um relevante Bestellaktualisierungen an Google zu senden.
Asynchrone Aktion zum Aktualisieren von Bestellungen
Unabhängig von Nutzerbenachrichtigungen müssen Sie Google auch für die folgenden Ereignisse Aktualisierungen des Bestellstatus senden:
- Änderungen an
OrderState
, z. B. vonCREATED
zuCONFIRMED
und vonCONFIRMED
zuIN_TRANSIT
- Änderungen an Bestellartikeln, z. B. Preis oder Verfügbarkeit
- Immer wenn der Nutzer über einen deiner Kundensupportkanäle eine Supportanfrage stellt.
Aktualisierungen werden von Ihrem Webdienstendpunkt als AsyncOrderUpdateRequestMessage
gesendet, die eine OrderUpdate
enthält. Google antwortet mit einer AsyncOrderUpdateResponseMessage
.
Sequenzdiagramm
Die folgende Abbildung veranschaulicht, wie Auftragsausführungsaktionen mit Ihrem Webservice interagieren. Zum Vergrößern klicken.
Endpunkt für die Auftragsausführung einrichten
Bei den End-to-End-Aktionen für Bestellungen werden JSON-Nachrichten verwendet, um mit Ihrem Webdienst zu kommunizieren und die Verarbeitung, Bestätigung und Aktualisierung von Bestellungen zu verwalten. Wenn Sie Ihren End-to-End-Webdienst für die Bestellung entwerfen, müssen Sie einen URL-Endpunkt definieren, der Anfragenachrichten vom End-to-End-Dienst für die Bestellung 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-Bestelldienst empfangen können. - Ihr Webdienst muss einen öffentlich zugänglichen URL-Endpunkt bereitstellen, die sogenannte Ausführungs-URL, die Sie im Actions Center angeben. Die URL für die Auftragsausführung wird für den Bezahlvorgang und das Senden von Bestellungen verwendet. Ihre Implementierung muss beide Arten von Anfragen verarbeiten.
- Ihr Webdienst muss Nachrichten von Google mit der Methode Nachrichtenüberprüfung überprüfen können.
- Ihre Implementierung des URL-Endpunkts muss sowohl den Bezahlvorgang als auch die Auftragsausführung mit einem einzigen Endpunkt verarbeiten können. Sie können nicht einen URL-Endpunkt für den Bezahlvorgang und einen separaten Endpunkt für die Bestellung haben.
Clientbibliotheken
Mit dem Clientcode-Generator im Bereich „Tools“ können Sie Ihren Webdienst anhand der Fulfillment API-Spezifikation prüfen.