Présentation

Cette présentation résume le flux de commande de bout en bout et la manière dont il interagit avec votre service Web de traitement.

Classement

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

L'étape suivante est l'étape de validation du panier, au cours de laquelle le Cart créé par l'utilisateur est traité par votre service Web.

Action de règlement

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

Le processus de règlement se déroule comme suit:

  1. Le service de commande de bout en bout envoie un CheckoutRequestMessage contenant un Cart au point de terminaison de votre service Web de traitement.
  2. Votre service Web doit valider les articles de la Cart en fonction des prix, de la disponibilité et des fournisseurs de services actuels. Vous calculez ensuite le prix total, qui inclut les remises, les taxes et les frais de livraison.
  3. Votre point de terminaison renvoie une réponse CheckoutResponseMessage contenant la valeur Cart non modifiée 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 l'élément Cart validé, l'utilisateur peut choisir de passer à l'étape d'envoi de la commande du flux.

Action d'envoi de la commande

L'action d'envoi de commande est déclenchée lorsque l'utilisateur passe sa commande. Votre service Web doit revalider le panier, traiter le jeton de carte si les paiements en ligne sont activés et enfin 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 au point de terminaison de votre service Web de traitement. Votre backend doit effectuer une autre validation Cart avant de continuer.
  2. Votre service Web traite les détails du paiement figurant dans le fichier Order et effectue généralement les actions suivantes:

    1. Effectuez la validation du jeton, la fraude et d'autres vérifications d'éligibilité.
    2. Autorisez la carte et, si vous le souhaitez, facturez-la.
  3. Votre point de terminaison répond par une SubmitOrderResponseMessage contenant un OrderUpdate avec l'état CREATED (état d'achat "commandé"), CONFIRMED (état d'achat "Accepté") ou REJECTED (état d'achat "Refusé").

Une fois la commande passée, l'utilisateur s'attend à recevoir des mises à jour de votre part et de celle de l'interface utilisateur de bout en bout de la commande. Vous devez envoyer un e-mail de confirmation de commande à l'utilisateur. De plus, vous envoyez les mises à jour pertinentes des commandes à Google à l'aide de l'API de mise à jour asynchrone des commandes.

Action de mise à jour de commande asynchrone

Indépendamment de toute notification utilisateur de votre côté, vous devez également envoyer à Google des informations sur l'état des commandes pour les événements suivants:

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

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

Schéma séquentiel

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

Flux de traitement des commandes 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 de commande de bout en bout, vous devez définir un point de terminaison d'URL qui reçoit les messages de requête du service de commande de bout en bout et peut renvoyer des messages au service Google. Votre mise en œuvre doit répondre aux exigences suivantes:

  • Votre service Web doit pouvoir recevoir un message JSON en tant que requête POST du service de commande de bout en bout.
  • Votre service Web doit fournir un point de terminaison d'URL accessible publiquement, appelé URL de traitement, que vous spécifiez dans le Centre d'actions. L'URL de traitement permet de régler et d'envoyer les 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 de l'URL doit pouvoir gérer à la fois le règlement et le traitement des commandes 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 des commandes.

Bibliothèques clientes

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