构建适用于预订的可用性数据

若要在预订流程中成功显示您的空闲时段,您必须发送准确且最新的商品目录映射。由于餐饮场所的性质以及拼桌或聚餐人数的灵活性,在单次预订后,可预订的空位数量可能会发生显著变化。本文档中的示例将指导您如何正确维护和映射可用商品目录。

以下是 Availability definition 中指定的参数:

  • party_size:商家在此时间段可容纳的团体人数。本文中的图表展示了配置同行人数的各种方式。
  • spots_open:特定空闲时段和就餐人数目前可预订的餐桌数量。
  • spots_total:商家针对相应配置拥有的餐桌总数,包括不可用的餐桌。

这三个参数共同用于构建楼层平面图的数字表示形式。party_size 是每张桌子可容纳的人数。每个表格可容纳的尺寸都对应一个条目。spots_openspots_total 是可容纳相应 party_size 的餐桌数量。

空楼层平面图示例

假设某餐厅的平面图如下,且没有有效预订:

图 1. 没有有效预订的楼层平面图

图 1. 没有有效预订的楼层平面图。

party_sizespots_openspots_total 的值如下所示:

party_size spots_open spots_total
4 3 3
5 3 3
6 4 4
7 1 1
8 1 1

此商家的一个时间段的可用性 Feed 如下所示:

{
  "availability": [
        {
          "spots_total": 3,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 4
          }
        },
        {
          "spots_total": 3,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 5
          }
        },
        {
          "spots_total": 4,
          "spots_open": 4,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 6
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 7
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 8
          }
        }
      ]
}

包含预订信息的楼层平面图示例

之前预订过其中一个圆桌的餐厅如下所示:

图 1. 包含一个有效预订的楼层平面图

图 2. 包含一项有效预订的楼层平面图。

party_sizespots_openspots_total 的值如下所示:

party_size spots_open spots_total
4 2 3
5 2 3
6 3 4
7 1 1
8 1 1

此商家的一个时间段的可用性 Feed 如下所示:

{
  "availability": [
        {
          "spots_total": 3,
          "spots_open": 2,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 4
          }
        },
        {
          "spots_total": 3,
          "spots_open": 2,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 5
          }
        },
        {
          "spots_total": 4,
          "spots_open": 3,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 6
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 7
          }
        },
        {
          "spots_total": 1,
          "spots_open": 1,
          "duration_sec": 3600,
          "service_id": "1000",
          "start_sec": 1535806800,
          "merchant_id": "merch1",
          "resources": {
            "party_size": 8
          }
        }
      ]
}

指定支持合并餐桌的就餐空位

餐厅可以通过多种方式合并餐桌,以容纳更多顾客。您需要以准确反映是否可以接受特定人数的预订的方式指定 spots_openspots_total

以下示例展示了如何指定要合并的表格。您的 Feed 可能会因所用的计算方法而有所不同。您可以根据自己的业务逻辑指定 spots_openspots_total

如果餐厅支持合并餐桌以容纳更多人数的聚餐,您可以更新 spots_openspots_total 以反映这一点。

例如,一家餐厅可以将两张小桌子拼在一起,供 7-10 人用餐:

图 1. 没有有效预订的楼层平面图

图 3. 没有有效预订的楼层平面图。

如果没有有效预订,party_sizespots_openspots_total 的值如下所示:

party_size spots_open spots_total
4 3 3
5 3 3
6 4 4
7 1 1
8 1 1
9 1 1
10 1 1

现在,在同一楼层平面图上,预订了 10 人聚餐,需要合并两张小桌。

图 1. 包含一个跨越两张餐桌的有效预订的平面图

图 4. 包含一项跨两张餐桌的有效预订的平面图。

然后,party_sizespots_openspots_total 的值如下所示:

party_size spots_open spots_total
4 1 个 3
5 1 3
6 2 4
7 1 1
8 1 1
9 0 1
10 0 1