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:
- Il servizio Ordine end-to-end invia un
CheckoutRequestMessage
contenente unCart
all'endpoint del servizio web di evasione degli ordini. - 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. - L'endpoint risponde con un
CheckoutResponseMessage
contenente ilCart
non modificato per le richieste riuscite. UnFoodErrorExtension
può essere incluso nelCheckoutResponseMessage
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:
- Il servizio Ordine end-to-end invia un
SubmitOrderRequestMessage
contenente unOrder
all'endpoint del servizio web di evasione degli ordini. Il tuo backend deve eseguire un'altra convalidaCart
prima di continuare. Il servizio web elabora i dati di pagamento trovati in
Order
, solitamente eseguendo le seguenti azioni:- Eseguire la verifica dei token, la verifica di attività fraudolente e altri controlli di idoneità.
- Autorizza e, facoltativamente, addebita l'importo sulla carta.
L'endpoint risponde con un
SubmitOrderResponseMessage
contenente unOrderUpdate
con statoCREATED
("Ordine effettuato"),CONFIRMED
("Ordine accettato") oREJECTED
("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:
- Modifiche a
OrderState
, ad esempio transizioni daCREATED
aCONFIRMED
e daCONFIRMED
aIN_TRANSIT
. - Modifiche agli articoli dell'ordine, ad esempio prezzo o disponibilità.
- 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.
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.