Aperçu

Cette présentation résume le flux de commande de bout en bout et la façon dont il interagit avec votre service Web de traitement des commandes.

Classement

L'interface utilisateur de bout en bout de la commande gère toutes les interactions avec l'utilisateur lorsqu'il ajoute des éléments de menu à sa commande et décide de la livraison ou du retrait, en fonction des services proposés par le restaurant. Cette expérience s'appuie sur les entités Restaurant, Service et Menu trouvées dans vos flux de données.

L'étape suivante consiste à valider le panier, où le Cart créé par l'utilisateur est traité par votre service Web.

Action de paiement

L'action de paiement est le premier appel effectué par Google vers votre point de terminaison de service Web. Votre service Web est responsable de la validation de l'Cart. Vous devez confirmer la disponibilité et le prix des articles, calculer et afficher les taxes, les remises et les frais, et valider l'adresse de livraison de la commande.

Le processus de paiement se déroule comme suit:

  1. Le service de commande de bout en bout envoie un CheckoutRequestMessage contenant un Cart à votre point de terminaison de service Web de traitement.
  2. Votre service Web doit valider les éléments de la Cart en fonction des prix, de la disponibilité et des fournisseurs de services actuels. Vous calculez ensuite le prix total, qui comprend les remises, les taxes et les frais de livraison.
  3. Votre point de terminaison répond avec un CheckoutResponseMessage contenant le Cart non modifié pour les requêtes réussies. Un FoodErrorExtension peut être inclus dans le CheckoutResponseMessage pour générer une erreur de traitement ou proposer des modifications mineures, si nécessaire.

Une fois la Cart validée, l'utilisateur peut choisir de passer à l'étape d'envoi de la commande du parcours.

Action "Envoyer la commande"

L'action "Envoyer la commande" est déclenchée lorsque l'utilisateur passe sa commande. Votre service Web doit valider à nouveau le panier, traiter le jeton de carte si les paiements en ligne sont activés, puis mettre à jour l'état de la commande.

Le processus d'envoi de la commande se déroule comme suit:

  1. Le service de commande de bout en bout envoie un SubmitOrderRequestMessage contenant un Order à votre point de terminaison de service Web de traitement. Votre backend doit effectuer une autre validation Cart avant de continuer.
  2. Votre service Web traite les informations de paiement figurant dans le Order, en effectuant généralement les actions suivantes:

    1. Effectuer des vérifications de jeton, de fraude et d'autres vérifications d'éligibilité
    2. Autorisez et, si vous le souhaitez, débitez la carte.
  3. Votre point de terminaison répond avec un SubmitOrderResponseMessage contenant un OrderUpdate dont l'état est CREATED ("Ordered", État d'achat "Commandé"), CONFIRMED ("Accepted", État d'achat "Accepté") ou REJECTED ("Declined", État d'achat "Refusé").

Une fois la commande passée, l'utilisateur s'attend à recevoir des informations sur l'état de la commande de votre part et de l'interface utilisateur de l'application de commande de bout en bout. Vous devez envoyer un e-mail de confirmation de commande à l'utilisateur. Vous utilisez également l'API de mise à jour des commandes asynchrones pour envoyer à Google les mises à jour de commande pertinentes.

Action de mise à jour de commande asynchrone

Indépendamment de toute notification utilisateur de votre part, vous devez également envoyer à Google des informations sur l'état de la commande pour les événements suivants:

  1. Modifications apportées à OrderState, telles que les transitions de CREATED vers CONFIRMED et de CONFIRMED vers IN_TRANSIT.
  2. Modifications apportées aux articles de la commande, comme le prix ou la disponibilité
  3. Chaque fois que l'utilisateur déclenche une demande d'assistance à partir de l'un de vos canaux d'assistance client.

Les mises à jour sont envoyées à partir de votre point de terminaison de service Web en tant que AsyncOrderUpdateRequestMessage contenant un OrderUpdate. Google répond avec un AsyncOrderUpdateResponseMessage.

Diagramme de séquence

L'illustration suivante montre comment les actions de traitement interagissent avec votre service Web. Cliquez pour agrandir.

Flux de traitement de commande de bout en bout

Configurer votre point de terminaison de traitement

Les actions de commande de bout en bout utilisent des messages JSON pour communiquer avec votre service Web et gérer le traitement, la confirmation et les mises à jour des commandes de repas. Lorsque vous concevez votre service Web Ordering End-to-End, vous devez définir un point de terminaison d'URL qui reçoit les messages de requête du service Ordering End-to-End et peut renvoyer des messages au service Google. Votre implémentation doit répondre aux exigences suivantes:

  • Votre service Web doit être en mesure de recevoir un message JSON en tant que requête POST du service de bout en bout de commande.
  • Votre service Web doit fournir un point de terminaison d'URL accessible au public, appelé URL de traitement, que vous spécifiez dans le Centre d'actions. L'URL de traitement est utilisée pour payer et passer des commandes. Votre implémentation doit gérer les deux types de requêtes.
  • Votre service Web doit pouvoir valider les messages de Google à l'aide de la méthode de validation des messages.
  • Votre implémentation du point de terminaison d'URL doit pouvoir gérer à la fois le règlement et l'exécution de la commande avec un seul point de terminaison. Vous ne pouvez pas avoir un point de terminaison d'URL pour le règlement et un point de terminaison distinct pour l'envoi de la commande.

Bibliothèques clientes

Le générateur de code client de la section "Outils" vous permet de valider votre service Web par rapport aux spécifications de l'API Fulfillment.