Panoramica

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:

  1. Il servizio end-to-end di ordinazione invia un CheckoutRequestMessage contenente un Cart all'endpoint del servizio web di evasione degli ordini.
  2. 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.
  3. L'endpoint risponde con un valore CheckoutResponseMessage che contiene il valore Cart non modificato per le richieste riuscite. È possibile includere un FoodErrorExtension in CheckoutResponseMessage 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:

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

    1. Esegui la verifica dei token, le attività fraudolente e altri controlli di idoneità.
    2. Autorizzalo e, facoltativamente, addebita l'importo sulla carta.
  3. L'endpoint risponde con un SubmitOrderResponseMessage che contiene un OrderUpdate con uno stato CREATED (Stato di acquisto "Ordinato"), CONFIRMED (Stato di acquisto "Accettato") o REJECTED (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:

  1. Modifiche a OrderState, ad esempio transizioni da CREATED a CONFIRMED e da CONFIRMED a IN_TRANSIT.
  2. Modifiche agli articoli dell'ordine, come il prezzo o la 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 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.

Flusso di evasione ordini end-to-end

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.