Ringkasan ini merangkum alur Pemesanan Lengkap dan cara alur tersebut berinteraksi dengan layanan web fulfillment Anda.
Pengurutan
Antarmuka pengguna Pemesanan Lengkap menangani semua interaksi dengan pengguna
saat mereka menambahkan item menu ke pesanan dan memutuskan pengambilan atau pengiriman,
bergantung pada layanan yang ditawarkan oleh restoran. Pengalaman ini didukung
oleh entity Restaurant
, Service
, dan Menu
yang ditemukan di
feed data Anda.
Langkah berikutnya adalah tahap validasi keranjang tempat Cart
yang dihasilkan
oleh pengguna diproses oleh layanan web Anda.
Tindakan Checkout
Tindakan checkout adalah panggilan pertama yang dilakukan oleh Google ke endpoint layanan web Anda.
Layanan web Anda bertanggung jawab untuk memvalidasi Cart
. Anda harus
mengonfirmasi ketersediaan dan harga item, menghitung dan menampilkan pajak,
diskon, dan biaya, serta memvalidasi alamat pengiriman pesanan.
Proses checkout mengikuti urutan ini:
- Layanan Pemesanan End-to-End mengirimkan
CheckoutRequestMessage
yang berisiCart
ke endpoint layanan web fulfillment Anda. - Layanan web Anda harus memvalidasi item di
Cart
berdasarkan harga, ketersediaan, dan penyedia layanan saat ini. Kemudian, Anda menghitung harga total, yang mencakup diskon, pajak, dan biaya pengiriman. - Endpoint Anda merespons dengan
CheckoutResponseMessage
yang berisiCart
yang tidak diubah untuk permintaan yang berhasil.FoodErrorExtension
dapat disertakan dalamCheckoutResponseMessage
untuk memunculkan error pemrosesan atau mengusulkan perubahan kecil, jika diperlukan.
Setelah Cart
divalidasi, pengguna dapat memilih untuk melanjutkan ke tahap
pengiriman pesanan dalam alur.
Mengirim Tindakan Pesanan
Tindakan kirim pesanan dipicu saat pengguna melakukan pemesanan. Layanan web Anda harus memvalidasi ulang keranjang, memproses token kartu jika pembayaran online diaktifkan, dan terakhir memperbarui status pesanan.
Proses pengiriman pesanan mengikuti urutan ini:
- Layanan Pengiriman Urutan mengirim
SubmitOrderRequestMessage
yang berisiOrder
ke endpoint layanan web fulfillment Anda. Backend Anda perlu melakukan validasiCart
lain sebelum melanjutkan. Layanan web Anda memproses detail pembayaran yang ditemukan di
Order
, biasanya melakukan tindakan berikut:- Melakukan verifikasi token, penipuan, dan pemeriksaan kelayakan lainnya.
- Beri otorisasi dan, jika perlu, tagih kartu.
Endpoint Anda merespons dengan
SubmitOrderResponseMessage
yang berisiOrderUpdate
dengan statusCREATED
("Ordered" purchase status),CONFIRMED
("Accepted" purchase status), atauREJECTED
("Declined" purchase status).
Setelah pesanan dilakukan, pengguna berharap menerima pembaruan status pesanan dari Anda dan antarmuka pengguna Pemesanan Menyeluruh. Anda harus mengirim email konfirmasi pesanan kepada pengguna. Selain itu, Anda menggunakan Asynchronous Order Update API untuk mengirim pembaruan pesanan yang relevan ke Google.
Tindakan Pembaruan Pesanan Asinkron
Terlepas dari notifikasi pengguna di pihak Anda, Anda juga harus mengirimkan info terbaru status pesanan ke Google untuk peristiwa berikut:
- Perubahan pada
OrderState
seperti transisi dariCREATED
keCONFIRMED
, danCONFIRMED
keIN_TRANSIT
. - Perubahan pada item pesanan, seperti harga atau ketersediaan.
- Setiap kali pengguna memicu permintaan dukungan dari salah satu saluran dukungan pelanggan Anda.
Update dikirim dari endpoint layanan web Anda sebagai
AsyncOrderUpdateRequestMessage
yang berisi OrderUpdate
. Google akan merespons
dengan AsyncOrderUpdateResponseMessage
.
Diagram urutan
Ilustrasi berikut menunjukkan cara tindakan fulfillment berinteraksi dengan layanan web Anda. Klik untuk memperbesar.
Menyiapkan endpoint fulfillment
Tindakan Pemesanan Lengkap menggunakan pesan JSON untuk berkomunikasi dengan layanan web Anda dan menangani pemrosesan, konfirmasi, dan pembaruan pesanan makanan. Saat mendesain layanan web Pemesanan Lengkap, Anda harus menentukan endpoint URL yang menerima pesan permintaan dari layanan Pemesanan Lengkap dan dapat menampilkan pesan kembali ke layanan Google. Implementasi Anda harus memenuhi persyaratan berikut:
- Layanan web Anda harus dapat menerima pesan JSON sebagai permintaan
POST
dari layanan Pemesanan End-to-End. - Layanan web Anda harus menyediakan endpoint URL yang dapat diakses secara publik, yang disebut URL fulfillment, yang Anda tentukan di Actions Center. URL fulfillment digunakan untuk melakukan checkout dan mengirimkan pesanan. Implementasi Anda harus menangani kedua jenis permintaan.
- Layanan web Anda harus dapat memverifikasi pesan dari Google menggunakan metode Verifikasi pesan.
- Implementasi endpoint URL Anda harus dapat menangani checkout dan fulfillment pesanan dengan satu endpoint. Anda tidak dapat memiliki satu endpoint URL untuk checkout dan endpoint terpisah untuk pengiriman pesanan.
Library Klien
Generator kode klien di bagian Alat tersedia untuk memvalidasi layanan web Anda berdasarkan spesifikasi Fulfillment API.