订单
订单标签页是客户下达的每个餐厅订单的实时控制台。它每3秒轮询一次云端,并通过桌面通知、音频提醒和标签页标题上的待处理计数徽章显示新活动。
布局
订单页面有两个区域:
| 区域 | 目的 |
|---|---|
| 状态标签 | 按订单状态筛选:全部、已下单、已确认、准备中、已准备、已送达。取消和退款的订单默认被过滤掉。 |
| 订单列表 | 每个订单一个卡片,按最新排序。每个卡片显示桌号、客户电话(如果提供)、项目、总计和操作按钮。 |
实时轮询
订单控制台每3秒轮询一次/v1/cafeteria/admin/orders/poll。每个新订单会触发:
- 包含桌号和项目数量的桌面通知。
- 如果在设置 > 餐厅中启用了声音通知,服务器扬声器会发出音频提醒。
- 订单标签页上的待处理计数徽章增加。
- 如果打印机配置了新订单自动打印,则自动打印收据。
徽章会一直显示,直到所有已下单或已确认状态的订单被推进到后续状态或被忽略。徽章在侧边栏的餐厅部分全局可见,无需打开订单标签页即可查看。
订单生命周期
每个订单都会经历一系列定义好的状态。
| 状态 | 含义 |
|---|---|
| 已下单 | 客户提交了订单。尚未有员工操作。 |
| 已确认 | 员工已确认订单。 |
| 准备中 | 厨房正在准备订单。 |
| 已准备 | 订单已准备好可服务或取走。 |
| 已送达 | 订单已送达客户。 |
| 已取消 | 员工取消了订单。它会从实时视图中移除,但会保留在历史记录中。 |
| 已退款 | 已发出付款后的退款。 |
每个订单卡片上的操作栏显示下一个可用状态。推进只需点击一次。UI使用乐观更新模式:新状态会立即显示。如果服务器拒绝更改,状态会恢复并出现错误通知。
单项状态
某些订单包含多个项目,完成时间不同。例如,汉堡比披萨先准备好。单项状态允许您独立跟踪每个项目。
每个项目都有自己的下拉菜单,提供五个选项:已下单、准备中、已准备、已送达、已取消。每个项目还包含三个时间戳:
created_at在订单到达时设置。ready_at在项目首次进入已准备时设置。served_at在项目进入已送达时设置。
客户菜单在每行旁显示一个徽章,以便客户查看哪些项目已准备好或正在路上。
取消订单
- 打开订单卡片。
- 点击取消。
- 在出现的对话框中确认。
- 订单转为
已取消。它保留在历史记录中,但从默认实时视图中消失。
取消是全订单操作。要取消单个项目,请将该项目的单项状态更改为已取消。
结算(结账)
结算一步关闭桌上的所有未结订单。当客户离开并想支付整个账单时使用此功能。
- 从桌子页面或平面图操作菜单打开桌子。
- 点击结账。
- 模态框列出桌上所有未
已送达的订单。 - 选择一种支付方式。选项有:现金、卡、在线、其他。
- 确认。
服务器执行以下原子操作:
- 桌上的每个未结订单转为
已送达,并设置payment_status=paid。 - 创建一个
cafeteria_settlements记录,包含总金额、支付方式和创建时间。 - 结算订单审计记录哪些订单属于此次结算。
- 桌子安全码失效,二维码失效。
- 桌子返回
空闲状态。
如果选择在线作为支付方式,结算记录标记为在线支付。此操作不会触发Stripe扣款。客户侧的在线支付在下订单时处理;结算操作记录现金流以便记账。
开台时间计时器
每个桌子都有一个opened_at时间戳,在客户入座时设置。平面图和桌子页面显示自那一刻起的实时计时器。这有助于员工识别长时间未点单的桌子,或可能接近会话结束的桌子。
在关闭桌子或结账时,计时器重置为零。
动态准备时间显示
当产品启用动态准备时间时,订单卡片在项目名称旁显示估算时间。即使客户的菜单上关闭了显示准备时间,员工仍能看到估算时间。
每次下新订单和订单完成时,估算时间都会更新。系统从实际厨房节奏中学习。
新订单通知行为
通知在整个应用中触发,而不是按标签页。这意味着即使您在浏览HandyCafe服务器的其他部分(例如管理面板或设置),也会收到提醒。音频提醒可以在设置 > 餐厅 > 声音通知中启用或禁用。
桌面通知需要操作系统授予HandyCafe通知权限。如果在新订单后未看到通知,请检查操作系统的通知设置。
提示
- 使用状态标签分配工作量。一个屏幕过滤到
准备中显示厨房队列。另一个屏幕在已准备显示需要送达的订单。 - 结账是关闭桌子的最快方式。仅对明确错误的订单使用取消。
- 培训员工一致地推进状态。动态准备时间估算器从这些信号中学习,因此跳过状态会降低其准确性。
- 定期从管理端点审核已取消和已退款订单,以发现员工错误模式。