参数定义
如 Availability
定义中所指定:
party_size
:此时段中可容纳的就餐人数。一家餐厅可以同时与多个空档关联,每个空档可指定一个不同的party_size
(例如,可预订 2 人、3 人或 4 人座位)spots_open
:此可用性条目当前可用的时段数量spots_total
:商家拥有的适用于此配置的广告插播位总数(包括不可用的广告插播位)
这三个参数可以协同工作,构建楼层平面图的数字表示形式。party_size
是每个表可以容纳的人数(每个表可容纳的每种大小都有一个对应的条目)。spots_open
和 spots_total
表示可以容纳该 party_size
的表的数量。
空白楼层平面图示例
假设一家餐厅的楼层平面图如下所示,并且没有有效预订:
![图 1:无有效预订的楼层平面图](https://developers.google.cn/static/actions-center/images/tutorial_dining_flow_1.png?authuser=1&hl=ur)
party_size
、spots_open
和 spots_total
的值将为:
party_size | spots_open | spots_total |
---|---|---|
4 | 3 | 3 |
5 | 3 | 3 |
6 | 4 | 4 |
7 | 1 | 1 |
8 | 1 | 1 |
此商家某个时间空档的可用性 Feed 将如下所示:
JSON
{ "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 } } ] }
包含预订信息的楼层平面图示例
现在,假设预订了一个圆桌:
![图 2:有一个有效预订的楼层平面图](https://developers.google.cn/static/actions-center/images/tutorial_dining_flow_2.png?authuser=1&hl=ur)
party_size
、spots_open
和 spots_total
的值现在将是:
party_size | spots_open | spots_total |
---|---|---|
4 | 2 | 3 |
5 | 2 | 3 |
6 | 3 | 4 |
7 | 1 | 1 |
8 | 1 | 1 |
JSON
{ "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 } } ] }
支持使用组合表指定餐厅空房情况
餐馆可以通过多种方式组合桌子,以支持较大的多人桌。您应在 Feed 中指定 spots_open
和 spots_total
,从而准确反映您能否接受给定规模的各方。以下示例说明了如何指定组合表。
您的 Feed 的计算方式可能略有不同,您可以按照自己业务逻辑的方式来指定 spots_open
和 spots_total
。
一家餐馆支持将餐桌组合起来组成一个大型聚会,您可以更新 spots_open
和 spots_total
以反映这一点。
假设一家餐馆可以组合两张小桌子,以便容纳 7 到 10 人的用餐。
![图 3:无有效预订的楼层平面图](https://developers.google.cn/static/actions-center/images/tutorial_dining_flow_1.png?authuser=1&hl=ur)
如果没有有效预订,party_size
、spots_open
和 spots_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 人且合并了两张小桌子的派对进行预订。
![图 4:一个有效预订横跨两张桌的楼层平面图](https://developers.google.cn/static/actions-center/images/tutorial_dining_flow_3.png?authuser=1&hl=ur)
然后,party_size
、spots_open
和 spots_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 |