Phase 6
Waiter PWA
Phase 6 adds a tenant-local mobile waiter workspace for assigned tables, order drafts, kitchen send, bill request, table transfer, KDS ready alerts, and daily waiter metrics.
Access And Plan Gate
- Route prefix:
/r/{tenant}/waiter. - Tenant auth and active subscription middleware still apply.
- The SaaS feature key is
waiter_pwa; Starter is blocked, Growth and Pro are enabled. - Owner and Manager can see all waiter tables. Waiter users see explicit table assignments, or active branch fallback when enabled.
Mobile Workflow
- The command screen shows assigned tables, active orders, branch service shift state, ready alerts, sync status, and KPI tiles.
- Waiters can create dine-in orders, edit draft items, hold/resume, send to kitchen, request bill, transfer assigned tables, split bills, and merge unpaid bills.
- Kitchen-ready KDS events are materialized into
waiter_notificationsfor polling and acknowledgement. - Waiter actions reuse POS order pricing, snapshots, optimistic locking, table state changes, and KDS ticket sync.
Offline Drafts
- The PWA registers a tenant-scoped manifest and service worker.
- IndexedDB stores offline-safe draft payloads and sync operations.
- Offline mode is limited to draft work. Kitchen send, table transfer, bill request, merge, and payment actions require online server confirmation.
- Sync uses idempotency keys in
waiter_sync_eventsso duplicate pushes do not duplicate server records.
Operational Rules
- Waiters do not open cash drawer shifts.
- Order mutations require an open branch service shift owned by cashier or manager.
- Payment capture remains in POS cashier screens.
- No QR customer ordering, inventory deduction, loyalty, reservations, or reports are introduced in this phase.