建立預訂服務的供應情形資料結構

參數定義

Availability 定義中所指定:

  • party_size:在此時段可接待的用餐人數。餐廳可以同時與多個時段建立關聯,這些時段可分別指定不同的 party_size (例如預訂可接受 2 人、3 人或 4 人入座)
  • 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

這個商家一個時段的預訂情形動態饋給如下所示:

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:附帶一筆有效預訂的樓層平面圖
圖 2:有 1 項有效預訂的樓層平面圖

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

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_openspots_total,準確反映你是否可接受特定人數的團體。以下範例說明如何指定合併資料表。 動態饋給的計算方式可能略有不同,您可以根據業務邏輯指定 spots_openspots_total

如果餐廳支援合併桌位,讓更多人一起用餐,你可以更新 spots_openspots_total 來反映這項資訊。

舉例來說,餐廳可以合併兩張小桌子,供 7 到 10 人入座。

圖 3:沒有有效預訂的樓層平面圖
圖 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 人的聚會預訂座位,並合併兩張小桌。

圖 4:平面圖,顯示一個跨越兩張桌子的有效預訂
圖 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