bookings:* 权限范围。它仅适用于 Maple 原生门店;由第三方管理的门店会返回 422 capability_unsupported。
所有客人短信都由 Maple 发送。 通知一组客人会发送 Maple 的“餐桌已备好”短信,并开始计算门店的响应时间窗口。您无需自己给候位客人发消息。
面向客人的应用通常需要
bookings:read 和 bookings:write。前台接待或 POS 应用还需要 bookings:manage。
请按 接受预订 中的方式设置 MAPLE_BASE 和 MAPLE_KEY。
1. 读取队列
waitlist 按排队顺序先列出有效条目,open 表示远程客人是否可以加入。每个 waitlist_entry 带有其 position、给出的 quoted_wait,以及客人的联系方式。
在客人加入之前报价等待时间:
parties_ahead 统计争用同类餐桌的前面客人组数,wait_minutes 给出 min–max 范围。超过 50 人的组会返回 422 party_size_out_of_bounds。
2. 添加客人组
远程客人只能加入已开启的候位。门店通过POST /v1/locations/{locationId}/waitlist/open(bookings:manage)开启它。
phone为必填:这是 Maple 通知客人餐桌已备好的唯一途径。Maple 会将其规范化为 E.164 格式存储(美国号码可省略+1)。Maple 无法发短信的号码(例如带分机号的号码)会返回400。- 候位已关闭会返回
409 waitlist_closed。 idempotency_key的工作方式与预订写入相同:用相同的密钥和请求体重试丢失的响应,即可得到同一个条目,即使候位此后已关闭。该密钥的范围是您的应用在其所有门店中:相同的密钥搭配不同的请求体,或发送到另一个门店,会返回409 idempotency_key_reused。见幂等性。
3. 通知与安排入座
当一张桌子即将空出时,通知该客人组:notified。如果客人在门店的响应时间窗口内没有回应,条目会以 expired_no_response 过期。通知一个已不在等待中的条目,会原样返回该条目。Maple 不向客人发短信的门店会返回 422 guest_messaging_unavailable:该门店尚未开通客人短信,或门店已将其关闭。请改为安排入座或移除该组客人。
客人到达时,安排入座:
seated,并带有 booking_id。这个散客预订(channel: walk_in)可通过 GET /v1/bookings/{bookingId} 读取,并像其他预订一样出现在预订列表中。
- 现在没有空桌会返回
409 slot_unavailable;请先通知客人或再等一会儿,然后重试。 - 已经离开队列的条目会返回
409 illegal_transition。
4. 让客人组离开队列
两者都会返回该条目。已经离开队列的条目(无论是已入座、已移除还是已过期)会原样返回。
POST /v1/locations/{locationId}/waitlist/close 会阻止远程客人加入。已在等待的客人组仍留在队列中。
条目状态
条目处于有效状态(
waiting、notified、on_my_way)时会设置 position,之后为 null。
保持数据最新
订阅候位事件(waitlist_entry.created、.notified、.seated、.removed、.expired),了解门店或其他应用所做的变更。每个事件都内嵌该条目的最新状态。若要在出现间断后对账,请读取 GET /v1/locations/{locationId}/waitlist;请避免以短于 15 秒的间隔轮询。候位相关调用共享预订的额度,即每个应用和环境每分钟 300 次请求;见速率限制。