增加零售订购 v1 集成的可用性

本教程详细介绍了以下内容:

  1. 简要说明如何向用户显示可用性以及所需数据类型
  2. 关于如何将可用性数据编码到 Feed 中的 action_link 的具体说明
  3. 有关如何更新可用性(如果全天发生变化)的说明
  4. 可用性准确性预期

除了库存状况元数据之外,您还应提供与送货或自提相关的费用的元数据,以及最低订单金额。如需查看完整的 Feed 示例(其中显示了库存状况的使用情况以及费用和最低订单金额),请参阅零售订购 v1 Feed 示例

必须提供哪些信息

这种体验的零售订购是否提供是以天级粒度收集的。此可用性数据会随费用和最低订单金额显示,并显示“立即提供”、“明天提供”或“提供日期/月”等消息,具体取决于最早提供的日期。

在 Feed 中提交此数据时,您要发送的是未来日期,并且这些日期具有库存状况,以及用户下订单和安排在每个日期自提或送餐的最近时间。这两个信息分别是履单日期和上次下单时间。

例如:如果今天是 2021 年 3 月 23 日,并且只要用户在下午 4:00 之前订购,明天就可以发货,那么您表示将提供的数据如下:

  • 履单日期:2021 年 3 月 24 日
  • 上次订购时间:2021/03/23 4:00PM

由于包含上次订购时间,因此在该时间过去后,Google 前端会在上次订购时间过后自动更新到下一个可用日期。

每天在上传新的商家 Feed 时,都应包含新的库存状况数据。由于前端仅显示当前可用性,因此只需为任何位置提供接下来的 3-5 个可用性日期。这样,前端就可以显示当前可用性,以及在上次排序时间过后显示下一个可用性。

通过 Feed 指定库存状况

操作链接的可用性包含在 order_online_metadata 字段的 Merchant Feed action_link 消息中。对于每个商家和每个执行方式选项,路径中都有一个 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 的参考定义,请参阅商家 Feed 参考文档。如需查看包含 JSON 格式的库存状况的 Feed 示例,请参阅 Feed 示例零售订购 + 元数据

通过实时更新更新库存状况

如果某个营业地点的送货或自提时间与发送每日 Feed 的时间有差异,则实时更新 REST API 可用于更新向用户显示的库存状况。

一次只能更新一个商家。进行更新时,您需要指定要更新的商家,以及应在 API 端点中更新的字段。然后,在请求正文中包含这些字段的新数据。正在更新的任何字段都将替换为提供的信息。

如需更新可用性,您需要向以下端点发出修补请求:

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

然后,请求的正文将是仅包含 action_link 的 Merchant 对象(由于我们已将 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 预订”知道库存状况的具体变化取决于多种因素。这些因素包括:

  • 基于订单大小的库存状况变化
  • 根据完成订购和结算的时间更改库存状况
  • 更新可用性更改之间的延迟(通过 Feed 或实时更新)

所有这些因素都可能导致以下情况:最初向用户显示的库存状况并非用户在结账时看到的最终库存状况。可用性实现的目标不是完全消除这些变更,而是尽可能多地向用户提供明确的信息。

合作伙伴应尽可能提供一种实现,以便尽可能准确地向用户显示库存状况。此外,如果库存状况因订单详情而发生变化,则应明确地向用户显示。如果您不确定具体情况,请与您的“通过 Google 预订”联系人联系。