新增 Retail Ordering v1 整合功能的可用性

本教學課程會逐步說明下列主題:

  1. 關於使用者如何查看供應情形以及必要的資料類型
  2. 有關如何將供應情形資料編碼至動態饋給中 action_link 的具體指示
  3. 如何在可用情況下更新供應情形資訊
  4. 可用性準確度的期望

除了供應情形中繼資料外,您也必須提供與外送或取貨相關的費用中繼資料,以及最低訂單金額。如需查看供應情形、費用和最低訂購量的完整動態饋給範例,請參閱零售訂購 v1 動態饋給範例一文。

必須提供哪些供應情形資訊

這項服務的零售訂購可用性會依日間細分。系統會根據提供最早的日期,向使用者顯示費用供應資訊、費用和最低訂單金額,並顯示訊息,如「今天推出」、「可購買」或「可用 DD/MM」。

在動態饋給中提交這項資料時,您將一併傳送未來的日期,以及使用者可下單的最近日期,並安排每個日期的自取或外送時間。這兩項資訊分別為出貨日期和最後訂購時間。

舉例來說,如果今天的日期是 2021 年 3 月 23 日,而且只要使用者今天到下午 4 點前預訂,明天就會提供廣告放送,那麼您為了代表這個供應情形而提供的資料將會是:

  • 履行日期:2021/03/24
  • 最後訂訂為期:2021/03/23 4:00PM

包含上次排序時間,因此,過了此時間後,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 格式的動態饋給範例,請參閱零售訂購 + 中繼資料的動態饋給範例一節。

透過即時更新更新有空與否狀態

如果在傳送每日動態饋給的時段之間,地點的外送或自取服務供應情形有所變動,可以使用即時更新 REST API 來更新向使用者顯示的供應情形。

每個商家同時更新。更新時,您必須指定要更新的商家,以及要在 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 要求成功,回應會包含 Merchant Center 物件,以及更新過的資料。

如需商家更新方法的完整參考規範,請參閱:方法:inventory.partners.merchants.patch

供應情形正確

「透過 Google 預訂」瞭解供應情形的細節會根據許多因素而改變。這些因素包括:

  • 供應情形因訂單大小而異
  • 供應情形的變動依據為完成訂購和結帳的時間
  • 透過動態饋給或即時更新來更新供應情形的延遲時間

上述任何因素都可能會使使用者一開始看到的供應情形,不是使用者結帳時會看見的最終供應情形。可用性實作的目標並非要完全消除這些異動,而是盡可能向使用者提供清楚的資訊。

合作夥伴應提供最佳的實作方式,盡可能以最準確的方式向使用者顯示正確供應情形。此外,如果訂單的詳細資料因訂單詳細資料而有所變動,請務必讓使用者清楚看見相關資訊。如果不確定具體情況為何,請與「透過 Google 預訂」聯絡人聯絡。