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_notifications for 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_events so 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.