Panoramica

Questa panoramica riassume il flusso end-to-end degli ordini e il modo in cui interagisce con il tuo servizio web di evasione degli ordini.

Ordine

L'interfaccia utente end-to-end di Ordina gestisce tutte le interazioni con l'utente mentre aggiunge voci di menu al suo ordine e decide se ritirare o farsi consegnare il cibo, a seconda dei servizi offerti dal ristorante. Questa esperienza è basata sulle entità Restaurant, Service e Menu presenti nei feed di dati.

Il passaggio successivo è la fase di convalida del carrello, in cui il Cart risultante creato dall'utente viene elaborato dal tuo servizio web.

Azione di pagamento

L'azione di pagamento è la prima chiamata effettuata da Google all'endpoint del tuo servizio web. Il tuo servizio web è responsabile della convalida del token Cart. Devi confermare la disponibilità e i prezzi degli articoli, calcolare e restituire le imposte, gli sconti e le commissioni e convalidare l'indirizzo di consegna dell'ordine.

La procedura di pagamento segue questa sequenza:

  1. Il servizio Ordine end-to-end invia un CheckoutRequestMessage contenente un Cart all'endpoint del servizio web di evasione degli ordini.
  2. Il tuo servizio web deve convalidare gli elementi in Cart in base ai prezzi, alla disponibilità e ai fornitori di servizi attuali. Poi calcola il prezzo totale, che include sconti, tasse e spese di consegna.
  3. L'endpoint risponde con un CheckoutResponseMessage contenente il Cart non modificato per le richieste riuscite. Un FoodErrorExtension può essere incluso nel CheckoutResponseMessage per segnalare un errore di elaborazione o proporre modifiche minori, se necessario.

Dopo la convalida del Cart, l'utente può scegliere di passare alla fase di invio dell'ordine del flusso.

Azione Invia ordine

L'azione Invia ordine viene attivata quando l'utente effettua l'ordine. Il tuo servizio web deve convalidare nuovamente il carrello, elaborare il token della carta se i pagamenti online sono abilitati e infine aggiornare lo stato dell'ordine.

La procedura di invio dell'ordine segue questa sequenza:

  1. Il servizio Ordine end-to-end invia un SubmitOrderRequestMessage contenente un Order all'endpoint del servizio web di evasione degli ordini. Il tuo backend deve eseguire un'altra convalida Cart prima di continuare.
  2. Il servizio web elabora i dati di pagamento trovati in Order, solitamente eseguendo le seguenti azioni:

    1. Eseguire la verifica dei token, la verifica di attività fraudolente e altri controlli di idoneità.
    2. Autorizza e, facoltativamente, addebita l'importo sulla carta.
  3. L'endpoint risponde con un SubmitOrderResponseMessage contenente un OrderUpdate con stato CREATED ("Ordine effettuato"), CONFIRMED ("Ordine accettato") o REJECTED ("Ordine rifiutato").

Una volta effettuato l'ordine, l'utente si aspetta di ricevere aggiornamenti sullo stato dell'ordine sia da te sia dall'interfaccia utente di Ordine end-to-end. Devi inviare un'email di conferma dell'ordine all'utente. Inoltre, utilizzi l'API Asynchonous Order Update per inviare a Google aggiornamenti degli ordini pertinenti.

Azione di aggiornamento dell'ordine asincrona

Indipendentemente dalle notifiche all'utente, devi anche inviare aggiornamenti dello stato dell'ordine a Google per i seguenti eventi:

  1. Modifiche a OrderState, ad esempio transizioni da CREATED a CONFIRMED e da CONFIRMED a IN_TRANSIT.
  2. Modifiche agli articoli dell'ordine, ad esempio prezzo o disponibilità.
  3. Ogni volta che l'utente attiva una richiesta di assistenza da uno dei tuoi canali di assistenza clienti.

Gli aggiornamenti vengono inviati dall'endpoint del servizio web come AsyncOrderUpdateRequestMessage contenente un OrderUpdate. Google risponde con un messaggio AsyncOrderUpdateResponseMessage.

Diagramma di sequenza

L'illustrazione seguente mostra come le azioni di adempimento interagiscono con il tuo servizio web. Fai clic per ingrandire.

Flusso di evasione degli ordini end-to-end

Configurare l'endpoint di evasione degli ordini

Le azioni di ordinamento end-to-end utilizzano messaggi JSON per comunicare con il tuo servizio web e gestire l'elaborazione, la conferma e gli aggiornamenti degli ordini di cibo. Quando progetti il tuo servizio web Ordering End-to-End, devi definire un endpoint URL che riceva i messaggi di richiesta dal servizio Ordering End-to-End e possa restituire i messaggi al servizio Google. L'implementazione deve soddisfare i seguenti requisiti:

  • Il tuo servizio web deve essere in grado di ricevere un messaggio JSON come richiesta POST dal servizio Ordering End-to-End.
  • Il tuo servizio web deve fornire un endpoint URL pubblicamente accessibile, chiamato URL di evasione, che specifichi nel Centro azioni. L'URL di evasione viene utilizzato per effettuare il pagamento e inviare gli ordini. L'implementazione deve gestire entrambi i tipi di richieste.
  • Il tuo servizio web deve essere in grado di verificare i messaggi inviati da Google utilizzando il metodo di verifica dei messaggi.
  • L'implementazione dell'endpoint URL deve essere in grado di gestire sia il pagamento sia l'evasione degli ordini con un unico endpoint. Non puoi avere un URL endpoint per il pagamento e un endpoint separato per l'invio degli ordini.

Librerie client

Il generatore di codice client nella sezione Strumenti è disponibile per convalidare il tuo servizio web in base alla specifica dell'API Fulfillment.