本教程详细介绍了以下内容:
- 简要说明如何向用户显示可用性以及所需数据类型
- 关于如何将可用性数据编码到 Feed 中的
action_link
的具体说明 - 有关如何更新可用性(如果全天发生变化)的说明
- 可用性准确性预期
除了库存状况元数据之外,您还应提供与送货或自提相关的费用的元数据,以及最低订单金额。如需查看完整的 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 预订”联系人联系。