选择可用性格式
您可以通过以下两种方式指定可用性数据:(1) Spot 打开或 (2) 定期重复。请只选择一种方法来您的所有商家和服务。选择方法后,您必须在整个集成(Feed、预订服务器和实时更新)中坚持使用该方法。
以下指南可帮助您确定哪种可用性格式更合适:
- 在您的系统中,是否将可用性存储为显式槽位(例如,上午 8:00 - 8:30)?
- 使用 Spots Open
- 在您的系统中,您是否以周期性格式存储库存状况,这意味着商家的服务频率一致,并且偏差很少?例如,每 15 分钟上午 9:00 至下午 5:00 进行一次空档,每 15 分钟增加一次(只有一个座位)。
- 使用重复周期
- 对于您的商家服务,一次可以有多个营业点吗?例如,课程 30 个开放时段
- 使用 Spots Open
- 以上选项均不适用?
- 使用 Spots Open
- 注意:虽然使用重复周期更高效,且可以减小 Feed 大小,但如果数据模型本身不支持重复周期,则不建议使用重复周期,因为每次实时更新都需要重新计算一整天的周期性槽。
开放地点数
参数定义:
- spot_open:此可用性条目当前可用的空档数。
- spot_total:此配置的商家总数,包括不可用的广告插播位。
Spot 打开方法会明确指出每个空档的可用性,并且支持为同一服务添加多个插播位的模型。这两个参数协同发挥作用,构建服务容量的数字表示法。
当预订发生时,Spot_open 的数量应通过实时更新减少 1(spot_total 数量应保持不变)。一旦 spot_open 为 0,广告位便不会再显示。
示例服务
瑜伽馆或美容院有以下楼层平面图,无有效预订
这些商家的 2 个空档的库存状况 Feed 应如下所示:
JSON
{ "availability": [ { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
需要预订的服务示例
现在,用户预订其中一个地点。发生预订时,系统会发出实时更新以更新可用性。在下一个每日可用性 Feed 中,应反映此预订。对于 2018 年 9 月 1 日下午 4:00:00(格林尼治标准时间),这些商家的库存状况 Feed 的 spot_open 会减少 1。2018 年 9 月 1 日晚上 8:00:00(格林尼治标准时间)保持不变。
包含预订信息的 Feed 代码段
JSON
{ "availability": [ { "spots_total": 6, "spots_open": 5, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
重复周期
参数定义
- 重复周期:表示始终重复的可用性空档。
- repeat_until_sec:可用性重复的最后槽的结束时间的 UTC 时间戳。
- repeat_every_sec:连续可用性空档之间的秒数。例如,如果 repeat_every_sec = 1800(30 分钟),start_sec 从上午 9:00 开始,那么槽将每 30 分钟上午 9:00、9:30 和 10:00 重复,等等。
- 注意:无需指定 spot_open 和 spot_total;除非存在 schedule_exception,否则系统会假定这两者都为 1
重复周期方法表示定期提供的服务(例如每天上午 9:00 - 下午 5:00 每 30 分钟发生的服务)的可用性。对于重复周期,您可以指定槽的时长、槽首次发生的时间、槽的重复频率,以及在同一天该槽何时停止重复。注意:您需要为每一天分别指定一组新的周期性槽。如果相应时间范围内的空档已被预订,您将需要指定安排例外情况。例如,每半小时上午 9 点至晚上 9 点重复一次,但上午 11:00 至上午 11:30 除外。每项服务都有自己的重复周期和安排例外情况。
示例服务
美容院具有以下楼层平面图,无有效预订
这些商家的 1 个空档的库存状况 Feed 应如下所示:
Feed 代码段:
JSON
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", # haircut "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT } } ] }
需要预订的服务示例
现在,假设一位用户在 12:30 通过 Sally 预约了理发。发生预订时,系统会发出实时更新以更新可用性。在下一个每日可用性 Feed 中,应反映此预订。这些商家的库存状况 Feed 在中午 12:30 到下午 1:00 期间出现例外,且服务时长为 30 分钟。
包含预订信息的 Feed 代码段:
JSON
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT }, "schedule_exception": [ { "time_range": { "begin_sec": 1493901000, # May 4, 2017 12:30:00 PM GMT "end_sec": 1493902800 # May 4, 2017 1:00:00 PM GMT } } ], } ] }