Retail Ordering v1 統合の可用性の向上

このチュートリアルでは、次のことについて説明します。

  1. ユーザーに対する可用性の表示方法と、必要なデータの種類の概要
  2. 在庫状況データをフィード内の action_link にエンコードする具体的な手順
  3. 1 日のうちに変更があった場合に在庫状況を更新する方法
  4. 可用性に関する期待値

在庫状況メタデータに加えて、配送または受け取りに関連する料金、最小注文金額に関するメタデータを提供することも求められます。在庫状況、手数料、最低注文数を示す完全なフィード サンプルについては、Retail Ordering v1 フィード サンプルをご覧ください。

提供する必要のある情報

このエクスペリエンスに対する販売注文の在庫状況は、日レベルの粒度で収集されます。この空室状況データは、提供されている最も早い日付に基づいて、「本日利用可能」、「明日利用可能」、「DD/MM 利用可能」などのメッセージとともに、料金と最低注文金額とともに表示されます。

このデータをフィードで送信すると、将来の日付や、ユーザーが注文したり、各日付の集荷や配送をスケジュール設定した最新の時刻を送信したりします。この 2 つの情報は、それぞれフルフィルメント日と最後の注文時間です。

たとえば、今日の日付が 2021 年 3 月 23 日で、明日 4 時までに配達される予定の場合、在庫状況として指定するデータは次のようになります。

  • 納品日: 2021 年 3 月 24 日
  • 最終注文時間:2021/03/23 4:00 PM

最後の注文日時が含まれているので、その時間が経過すると、Google フロントエンドは最後の注文日時が過ぎると次に利用可能な日付に自動的に更新されます。

新しい販売者フィードを毎日アップロードする場合は、新しい在庫状況データを含めてください。フロントエンドには現在の在庫状況のみが表示されるので、特定の場所の次の 3 ~ 5 つの提供日程を指定するだけで済みます。これにより、フロントエンドは現在の在庫状況を表示するとともに、最後の注文時間の経過後に次の在庫状況を表示できます。

フィードを使用して在庫状況を指定する

アクション リンクを使用できるかどうかは、販売者フィード action_link メッセージの order_online_metadata フィールドの一部として含めます。販売者とフルフィルメント オプションごとに、パスに AvailableDay メッセージのリストがあります。

Merchant.action_link.order_online_metadata.fulfillment_option.available_day

メッセージは次の形式にする必要があります。

{
  "fulfillment_date": {
    "year": "2020",
    "month": "10",
    "day": "1"
  },
  "last_ordering_time":  {
    "seconds": "1601614800"  // 2020/10/1, 10pm
  }
}

この形式の fulfillment_date は、可用性がある年、月、日です。この日付は、この販売者が指定した場所を参照する必要があります。

last_ordering_time は UNIX タイムスタンプ(秒)です。これはタイムゾーンに依存せず、販売者が fulfillment_date で指定された日付で注文を受け付けることができる最後のタイミングを示します。最後の注文時刻は、フルフィルメント日より前または処理中の時間になります。最後の注文期限が過ぎると、Google は指定されたフルフィルメント日の可用性の表示を自動的に停止し、次の利用可能なフルフィルメント日に基づいて在庫状況を表示します。

order_online_metadata のリファレンス定義については、販売者フィード リファレンスをご覧ください。JSON 形式の在庫状況を含むフィード サンプルについては、フィードのサンプル Retail Ordering + Metadata をご覧ください。

リアルタイム アップデートで在庫状況を更新

日次フィードを送信するまでの間に店舗の提供または受け取りの可否が変更された場合は、リアルタイム更新の REST API を使用して、ユーザーに表示される在庫状況を更新できます。

一度に更新できるのは 1 つの販売者です。更新を行う際、更新する販売者と、API エンドポイントの一部として更新する必要があるフィールドを指定します。リクエストの本文に、これらのフィールドの新しいデータを含めます。更新されるすべてのフィールドは、指定された情報に置き換えられます。

可用性を更新するには、次のエンドポイントにパッチ リクエストを行います。

PATCH https://mapsbooking.googleapis.com/v1alpha/inventory/partners/{partnerId}/merchants/{merchantId}?updateMask=action_link

リクエストの本文は action_link のみを含む販売者オブジェクトになります(updateMask に action_link のみを含めるため)。

{
  "action_link": [
    ..., // all required action_link fields here
    "order_online_metadata": {
      "fulfillment_option": [
        "fulfillment_type": "FULFILLMENT_TYPE_DELIVERY",
        "available_day": [ // Include the updated availability here
          {
            "fulfillment_date": {
              "year": "2020",
              "month": "10",
              "day": "1"
            }
            "last_ordering_time": {
              "seconds": "1601614800"  // 2020/10/1, 10pm
            }
          },
          ... // Other updated availability_days
        ]
      ]
    }
  ]
}

API リクエストが成功すると、レスポンスには新しく更新されたデータを含む販売者オブジェクトが含まれます。

販売者更新メソッドの完全なリファレンス仕様については、メソッド:inventory.partners.merchants.patch をご覧ください。

可用性の精度

「Google で予約」では、さまざまな要因によって可用性の詳細が変わります。以下のような要因があります。

  • 注文数に応じた在庫状況の変更
  • 注文や購入手続きの完了までの時間に基づく在庫状況の変化
  • フィードまたはリアルタイム アップデートを使用して在庫状況の変更が更新されるまでのレイテンシ

これらの要因のいずれかが、ユーザーに最初に表示される在庫状況が、ご購入手続きの際に表示される最終的な在庫状況と変わる可能性があります。可用性の実装の目的は、これらを完全に排除することではなく、可能な限り多くの情報をユーザーに明確に提示することです。

パートナーは、ベスト エフォート ベースで可能な限り正確な在庫状況をできるだけ多くユーザーに提供する実装を提供することが求められます。また、注文の詳細に応じて在庫状況が変化する場合は、これをユーザーに明確に示す必要があります。ケースで何をする必要があるかが明確にわからない場合は、「Google で予約」の担当者にお問い合わせください。