參與預訂等候名單計畫的合作夥伴必須先完成帳戶設定程序,才能開始進行。不過,即使有一般指南中的某些步驟,您還是可以使用等候名單功能。本頁指南說明有意使用「透過 Google 預訂」等候名單功能的合作夥伴,可執行哪些步驟。建議您先詳閱這份總覽,再執行整合步驟。
發布程序
圖 1 概略說明瞭在 Actions Center 中啟用已啟用等候名單商家的程序。
![圖 1:高階整合步驟](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/reserve_with_google_waitlist_integration.png?authuser=7&hl=zh-tw)
整體而言,您 (合作夥伴) 和 Google 之間的主要資料流程如下圖 2 所示:
![圖 2:整合資料流程圖](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_integration_data_flow_diagram.png?authuser=7&hl=zh-tw)
所有預訂等候名單合作夥伴適用的指南
實作預訂等候名單功能時,請注意下列事項:
- 每個預訂等候名單的商家都必須填入
waitlist_rules
。- 候位名單和預訂要求必須使用相同的服務。也就是說,如果您的餐廳也允許預訂,只要將與預訂服務相關的中繼資料加入服務中即可。
- 在下列情況下,你必須傳送簡訊更新,才能導入等候名單:
- 確認使用者已成功加入等候名單。
- 通知使用者資料表已準備就緒。
- 通知使用者等候名單項目已取消。
- 簡訊必須包含等候名單狀態的頁面連結,供使用者查看。
- 僅限等候名單的商家不需要將供應情形動態饋給提供給 Actions Center。
- 您的預訂伺服器必須執行「導入預訂伺服器」中列出的所有等候名單專屬步驟。如果合作夥伴同時支援預訂和等候名單,可以將新方法加進現有的預訂伺服器。
- Actions Center 會針對預訂伺服器中的等候名單方法執行一組測試案例。
狀態流程圖
這張圖表說明回應
GetWaitlistEntry
呼叫時,必須在
WaitlistEntry.waitlist_entry_state
中回報的狀態。圖表也會說明何時應錄製及填入
WaitlistEntry.waitlist_entry_state_times.*_time_seconds
欄位,以及何時傳送簡訊給使用者,通知使用者已進入新的狀態。
![圖 3:等候名單狀態流程圖](https://developers-dot-devsite-v2-prod.appspot.com/static/actions-center/images/waitlists/waitlist_status_flowchart.png?authuser=7&hl=zh-tw)
常見的邊緣情況
以下是預留項目等候名單整合的常見極端情況,以及他們適用的建議解決方案。
-
如果因為不需等待,導致部分 (但非全部) 派對規模不接受新增候位名單,請在
BatchGetWaitEstimates
回應中傳回所有派對規模的WaitEstimates
,並允許使用者加入這些不須等候的預訂人數等候名單。傳回parties_ahead_count
為 0 的WaitLength
和/或estimated_seat_time_range
為 0 的estimated_seat_time_range
,針對party_size
傳回 0end_seconds
,無須等候start_seconds
-
如果一或多張預訂人數因等候時間過長而不接受新增候位名單,建議在
BatchGetWaitEstimates
回應中省略這些預訂人數的WaitEstimates
。
因此建議您採用這些方法,因為即使商家的等候名單可能未完全開放,仍可為使用者提供選項。
僅限預訂等候名單合作夥伴規範
如果預訂伺服器僅用於等候名單,請注意下列事項:
- 僅限預訂等候名單的合作夥伴不會向「透過 Google 預訂」提供供應情形動態饋給。
- 僅限預訂等候名單的合作夥伴不得在預訂伺服器中導入預訂方法,而是依照等候名單導入操作說明導入預訂伺服器。
- 僅限預訂等候名單的合作夥伴不會向 Google 發出 API 呼叫。也就是說,僅限預訂等候名單的合作夥伴不需要設定雲端專案,也不必提供開發人員電子郵件地址。您不需要完成即時 API 更新。不過,商家和服務動態饋給仍須提供給 Actions Center。
商家必須手動接受/拒絕新增等候名單的合作夥伴適用規範
如果商家必須手動接受或拒絕 Google 新增的候位名單,請務必完成額外步驟:
- 如果是需要手動確認的預訂人數,請在
wait_estimate
中將waitlist_confirmation_mode
設為WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
。必須在BatchGetWaitEstimateResponse
和GetWaitlistEntryResponse
中設定。 - 使用者已要求、但商家尚未接受的等候名單項目,狀態應為
PENDING_MERCHANT_CONFIRMATION
。
預訂等候名單測試案例
Google 會測試下列用途,確保預訂伺服器導入的等候名單方法功能能正常運作。Google 也會測試及監控延遲情況。這些測試必須全數通過,商家才能上線。
WaitEstimate 擷取
- 系統會針對
BatchGetWaitEstimatesRequest
中要求的各組人數傳回預估等待時間。 - 對於商家可選擇接受或拒絕新增等候名單的派對尺寸,請將 waitlist_confirmation_mode 設為
WAITLIST_CONFIRMATION_MODE_ASYNCHRONOUS
。
建立等候名單項目
- 您可以透過
CreateWaitlistEntry
要求建立等候名單項目。 - 如果無法建立等候名單項目,回應中會顯示商業邏輯錯誤。
- 如果
CreateWaitlistEntry
嘗試成功,當再次收到相同的CreateWaitlistEntry
時,系統會傳回相同的回應。 - 如果
CreateWaitlistEntry
嘗試失敗,伺服器會在再次收到相同的CreateWaitlistEntry
時重試。 - 等候名單項目會顯示在商家的介面中。
- 呼叫
GetWaitlistEntry
成功傳回已建立的等候名單項目。
等候名單項目狀態和時間戳記
- 確認
GetWaitlistEntry
回應的等候名單項目中是否已正確傳回每個等候名單項目狀態。 - 確認
GetWaitlistEntry
回應中等候清單項目的適當時間戳記欄位,均已設定每個狀態時間戳記。
刪除等候名單項目
- 您可以刪除現有的等候名單項目。成功刪除的回應必須為空白 proto
{}
。
選擇禁止顯示
- 確認已按照「商家選擇退出」中所述的方式處理選擇退出的商家。
範例等候名單服務動態饋給 (JSON)
等候名單服務動態饋給商家選擇退出
對於先前已啟用等候名單但後來選擇退出的商家,Google 預期會收到特定回應。
立即選擇退出
- 針對
BatchGetWaitEstimates
要求傳回CLOSED_OTHER
。 - 針對
CreateWaitlistEntry
要求傳回WAITLIST_CLOSED
。 - 為等候名單中的使用者正確傳回
GetWaitlistEntry
要求。
延時選擇退出
- 如果商家未選擇停用預訂功能,請從商家的服務動態饋給中移除
waitlist_rules
。 - 如果商家選擇不採用所有 Google 整合服務,請從商家動態饋給中移除該商家。