Questa panoramica riassume il flusso end-to-end dell'ordine e la sua interazione con il servizio web di evasione degli ordini.
Ordine
L'interfaccia utente end-to-end di ordinazione gestisce tutte le interazioni con l'utente
quando aggiunge voci di menu al suo ordine e decide se ritiro o consegna,
a seconda dei servizi offerti dal ristorante. Questa esperienza si basa sulle entità Restaurant
, Service
e Menu
presenti nei tuoi feed di dati.
Il passaggio successivo è la fase di convalida del carrello, in cui il conseguente Cart
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 servizio web è responsabile della convalida del Cart
. Devi confermare la disponibilità e il prezzo degli articoli, le tasse di calcolo e di reso, gli sconti e le commissioni e convalidare l'indirizzo di consegna dell'ordine.
La procedura di pagamento segue questa sequenza:
- Il servizio end-to-end di ordinazione invia un
CheckoutRequestMessage
contenente unCart
all'endpoint del servizio web di evasione degli ordini. - Il tuo servizio web deve convalidare gli articoli in
Cart
in base ai prezzi, alla disponibilità e ai fornitori di servizi attuali. Viene quindi calcolato il prezzo totale, che include sconti, tasse e spese di spedizione. - L'endpoint risponde con un valore
CheckoutResponseMessage
che contiene il valoreCart
non modificato per le richieste riuscite. È possibile includere unFoodErrorExtension
inCheckoutResponseMessage
per generare un errore di elaborazione o proporre modifiche di minore entità, se necessario.
Dopo la convalida di Cart
, l'utente può scegliere di procedere alla fase di invio
dell'ordine del flusso.
Invia azione ordine
L'azione di invio dell'ordine viene attivata quando l'utente effettua l'ordine. Il servizio web deve riconvalidare il carrello, elaborare il token della carta se sono abilitati i pagamenti online e, infine, aggiornare lo stato dell'ordine.
La procedura di invio dell'ordine segue questa sequenza:
- Il servizio end-to-end di ordinazione invia un
SubmitOrderRequestMessage
che contiene unOrder
all'endpoint del servizio web di evasione degli ordini. Il backend deve eseguire un'altra convalidaCart
prima di continuare. Il tuo servizio web elabora i dettagli di pagamento trovati nel
Order
, in genere eseguendo le seguenti azioni:- Esegui la verifica dei token, le attività fraudolente e altri controlli di idoneità.
- Autorizzalo e, facoltativamente, addebita l'importo sulla carta.
L'endpoint risponde con un
SubmitOrderResponseMessage
che contiene unOrderUpdate
con uno statoCREATED
(Stato di acquisto "Ordinato"),CONFIRMED
(Stato di acquisto "Accettato") oREJECTED
(Stato di acquisto "Rifiutato").
Una volta effettuato l'ordine, l'utente si aspetta di ricevere aggiornamenti sullo stato dell'ordine sia da te sia dall'interfaccia utente end-to-end dell'ordine. Devi inviare un'email di conferma dell'ordine all'utente. Inoltre, puoi usare l'API Asincrono Order Update per inviare aggiornamenti pertinenti degli ordini a Google.
Azione aggiornamento ordine asincrono
Indipendentemente dalle notifiche utente da parte tua, devi inviare a Google anche aggiornamenti dello stato dell'ordine per i seguenti eventi:
- Modifiche a
OrderState
, ad esempio transizioni daCREATED
aCONFIRMED
e daCONFIRMED
aIN_TRANSIT
. - Modifiche agli articoli dell'ordine, come il prezzo o la 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
che contiene un OrderUpdate
. Google risponde con un AsyncOrderUpdateResponseMessage
.
Diagramma di sequenza
La seguente illustrazione mostra come le azioni di evasione interagiscono con il servizio web. Fai clic per ingrandire.
Configurare l'endpoint di fulfillment
Le azioni end-to-end dell'ordine utilizzano messaggi JSON per comunicare con il servizio web e gestire l'elaborazione, la conferma e gli aggiornamenti degli ordini di cibo. Quando progetti il tuo servizio web end-to-end di ordinazione, devi definire un endpoint URL che riceva i messaggi di richiesta dal servizio end-to-end di ordinazione e possa restituire i messaggi al servizio Google. La tua implementazione deve soddisfare i seguenti requisiti:
- Il tuo servizio web deve essere in grado di ricevere un messaggio JSON come richiesta
POST
dal servizio end-to-end di ordinazione. - Il servizio web deve fornire un endpoint URL accessibile pubblicamente, chiamato URL di fulfillment, che tu specifichi nel Centro azioni. L'URL di evasione degli ordini viene utilizzato per effettuare il pagamento e inviare gli ordini. La tua implementazione deve gestire entrambi i tipi di richieste.
- Il tuo servizio web deve essere in grado di verificare i messaggi di Google utilizzando il metodo Verifica dei messaggi.
- L'implementazione dell'endpoint URL deve essere in grado di gestire sia il pagamento sia l'evasione degli ordini con un singolo endpoint. Non puoi avere un endpoint URL 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.