參數定義
如 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=6&hl=zh-tw)
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 |
此商家某個時段的預訂情形動態饋給看起來可能像這樣:
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=6&hl=zh-tw)
現在 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 } } ] }
指定能使用合併資料表的用餐區
餐廳可以透過許多方式合併資料表,以支援較大型的群組。您應該在動態饋給中指定 spots_open
和 spots_total
,以便準確反映自己是否能接受特定尺寸方。以下舉例說明如何指定合併資料表。您的動態饋給可能以不同的方式計算,您可以依據商業邏輯指定 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=6&hl=zh-tw)
如果沒有有效的預訂,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=6&hl=zh-tw)
接著,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 |