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