Questa panoramica riassume il flusso Ordina con Google e come interagisce con il tuo servizio web di evasione degli ordini.
Ordine
L'interfaccia utente di Ordina con Google gestisce tutte le interazioni con l'utente
quando aggiunge elementi al menu e decide il ritiro o la consegna,
a seconda dei servizi offerti dal ristorante. Questa esperienza si basa
sulle entità Restaurant
, Service
e Menu
presenti nei
feed di dati.
Il passaggio successivo è la fase di convalida del carrello, in cui il valore Cart
risultante creato
dall'utente viene elaborato dal 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 dei Cart
. Devi
confermare la disponibilità e i prezzi degli articoli, calcolare e restituire le tasse,
gli sconti e le commissioni e convalidare l'indirizzo di consegna dell'ordine.
La procedura di pagamento segue questa sequenza:
- Il servizio Ordina con Google invia un
CheckoutRequestMessage
che contiene unCart
all'endpoint del tuo servizio web di evasione. - Il tuo servizio web deve convalidare gli elementi in
Cart
in base ai prezzi, alla disponibilità e ai fornitori di servizi attuali. Dopodiché calcoli il prezzo totale, che include sconti, tasse e spese di spedizione. - Il tuo endpoint risponde con un
CheckoutResponseMessage
che contieneCart
non modificato per le richieste andate a buon fine. È possibile includere un elementoFoodErrorExtension
inCheckoutResponseMessage
per generare un errore di elaborazione o proporre modifiche di minore entità, se necessario.
Una volta che Cart
è stato convalidato, l'utente potrebbe scegliere di passare alla fase di invio dell'ordine del flusso.
Azione di invio ordine
L'azione di invio dell'ordine viene attivata quando l'utente effettua l'ordine. Il tuo servizio web deve riconvalidare il carrello, elaborare il token della carta se i pagamenti online sono abilitati e infine aggiornare lo stato dell'ordine.
La procedura di invio degli ordini segue questa sequenza:
- Il servizio Ordina con Google invia un
SubmitOrderRequestMessage
che contiene unOrder
all'endpoint del tuo servizio web di evasione. Il tuo backend deve eseguire un'altra convalida diCart
prima di continuare. Il servizio web elabora i dettagli di pagamento trovati nel documento
Order
, in genere esegue le seguenti azioni:- Eseguire la verifica del token, le frodi e altri controlli di idoneità.
- Autorizza e, se vuoi, addebita la carta.
Il tuo endpoint risponde con un
SubmitOrderResponseMessage
che contiene unOrderUpdate
con uno stato diCREATED
("Ordinato" stato di acquisto),CONFIRMED
("Accettato" stato di acquisto) oREJECTED
("Rifiutato" stato di acquisto).
Dopo aver effettuato l'ordine, l'utente si aspetta di ricevere gli aggiornamenti sullo stato dell'ordine da te e dall'interfaccia utente di Ordina con Google. Devi inviare un'email di conferma dell'ordine all'utente. Inoltre, puoi utilizzare l'API Assync Order Update per inviare a Google aggiornamenti pertinenti sugli ordini.
Azione di aggiornamento ordine asincrono
Indipendentemente dalle notifiche utente, devi anche inviare aggiornamenti sullo stato dell'ordine a Google per i seguenti eventi:
- Modifiche a
OrderState
come le transizioni daCREATED
aCONFIRMED
e daCONFIRMED
aIN_TRANSIT
. - Modifiche agli articoli degli ordini, come 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 dal tuo endpoint del servizio web come AsyncOrderUpdateRequestMessage
che contiene un OrderUpdate
. Google risponde con un AsyncOrderUpdateResponseMessage
.
Diagramma della sequenza
L'illustrazione che segue mostra come le azioni di evasione degli ordini interagiscono con il servizio web. Fai clic per ingrandire.
Configura l'endpoint di evasione degli ordini
Le azioni Ordina con Google utilizzano messaggi JSON per comunicare con il tuo servizio web e gestire l'elaborazione, la conferma e gli aggiornamenti agli ordini di cibo. Quando progetti il tuo servizio web Ordina con Google, devi definire un endpoint URL che riceva i messaggi di richiesta dal servizio Ordina con Google e può 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 Ordina con Google. - Il servizio web deve fornire un endpoint URL accessibile pubblicamente, chiamato URL di evasione, che hai specificato nel Portale partner. L'URL di evasione viene utilizzato per il pagamento e l'invio degli ordini. La tua implementazione deve gestire entrambi i tipi di richieste.
- Il tuo servizio web deve essere in grado di verificare i messaggi provenienti da Google utilizzando il metodo della verifica dei messaggi.
- L'implementazione dell'endpoint URL deve essere in grado di gestire sia il checkout 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 dell'ordine.
Librerie client
Il generatore di codice client nella sezione Strumenti è disponibile per convalidare il tuo servizio web in base alle specifiche dell'API Fulfillment.