この概要は、Order with Google のフローと、フルフィルメント ウェブサービスとのやり取りの概要をまとめたものです。
注文
Order with Google のユーザー インターフェースは、ユーザーがメニューに商品を追加したときや、受け取りまたは宅配を決定する際に、レストランで提供しているサービスに応じて、ユーザーとのすべてのやり取りを処理します。このエクスペリエンスでは、データフィードにある Restaurant
、Service
、Menu
エンティティが使用されます。
次のステップは、ユーザーが作成した結果の Cart
がウェブサービスによって処理されるカート検証ステージです。
決済アクション
決済アクションは、Google がウェブサービス エンドポイントに行った最初の呼び出しです。ウェブサービスは、Cart
の検証を行います。商品アイテムの在庫状況と価格を確認し、税金と割引の計算と返品、割引、手数料を確認し、注文の配送先住所を確認する必要があります。
決済プロセスの流れは次のとおりです。
- Order with Google サービスは、
Cart
を含むCheckoutRequestMessage
をフルフィルメント ウェブサービス エンドポイントに送信します。 - ウェブサービスでは、現在の価格、在庫状況、サービス プロバイダに基づいて、
Cart
内のアイテムを検証する必要があります。次に、割引、税金、配送料を含む合計金額を計算します。 - エンドポイントから
CheckoutResponseMessage
が返され、リクエストが成功すると、変更されていないCart
が含まれます。CheckoutResponseMessage
にFoodErrorExtension
を含めると、必要に応じて、処理エラーを発生させたり、軽微な変更を提案したりできます。
Cart
が検証されたら、ユーザーはフローの注文送信ステージに進むことができます。
注文を送信
注文の送信アクションは、ユーザーが注文するとトリガーされます。ウェブサービスで、カートの再検証、オンライン支払いが有効な場合はカードトークンの処理、注文ステータスの更新を行う必要があります。
注文の送信プロセスは、以下の順序に従います。
- Order with Google サービスは、
Order
を含むSubmitOrderRequestMessage
をフルフィルメント ウェブサービス エンドポイントに送信します。続行する前に、バックエンドで別のCart
検証を行う必要があります。 ウェブサービスは、
Order
にある支払いの詳細を処理します。通常、次の操作を実行します。- トークンの検証、不正行為、その他の適格性の確認を行います。
- カードを承認し、必要に応じてカードに請求する。
エンドポイントのレスポンスで、
OrderUpdate
が格納されているSubmitOrderResponseMessage
が返されます。ステータスは、CREATED
(&があります)と(購入ステータス)、CONFIRMED
(&を確認してください)またはREJECTED
(不承認)です。
注文後、ユーザーはお客様と Google の注文ページの両方で注文ステータスの更新を受け取ることを期待します。ユーザーに注文確認メールを送信する必要があります。また、Aasync Order Update API を使用して、関連する注文の更新を Google に送信します。
非同期注文更新アクション
お客様側の通知にかかわらず、次のイベントについては、注文ステータスの更新を Google に送信する必要があります。
OrderState
への変更(CREATED
からCONFIRMED
、CONFIRMED
からIN_TRANSIT
への移行)。- 注文アイテムの変更(価格、在庫状況など)。
- ユーザーがいずれかのカスタマー サポート チャネルからサポート リクエストをトリガーしたとき。
更新は、OrderUpdate
を含む AsyncOrderUpdateRequestMessage
としてウェブサービス エンドポイントから送信されます。Google は AsyncOrderUpdateResponseMessage
で応答します。
シーケンス図
次の図は、フルフィルメント アクションがウェブサービスとどのようにやり取りするかを示しています。クリックして拡大。
フルフィルメント エンドポイントを設定する
Order with Google アクションは、JSON メッセージを使用してウェブサービスと通信し、料理の注文の処理、確認、更新を処理します。Order with Google ウェブサービスを設計するときは、Order with Google サービスからリクエスト メッセージを受信して Google サービスにメッセージを返すことができる URL エンドポイントを定義する必要があります。実装は次の要件を満たす必要があります。
- ウェブサービスは、Order with Google サービスから
POST
リクエストとして JSON メッセージを受信できる必要があります。 - ウェブサービスでは、一般公開されている URL エンドポイント(フルフィルメント URL)が必要です。このエンドポイントはパートナー ポータルで指定します。フルフィルメント URL は注文の精算と送信に使用されます。実装では、両方のタイプのリクエストを処理する必要があります。
- ウェブサービスでは、メッセージの確認方法を使用して、Google からのメッセージを確認できるようにする必要があります。
- URL エンドポイントの実装は、単一のエンドポイントで購入手続きと注文処理の両方を処理できる必要があります。精算用の URL エンドポイントと、注文送信用のエンドポイントを 1 つずつ指定することはできません。
クライアント ライブラリ
[ツール] セクションのクライアント コード生成ツールを使用すると、Fulfillment API 仕様に照らしてウェブサービスを検証できます。