Phase 7

Table Map And QR Menu

Phase 7 publishes customer-safe table maps, generates per-table QR codes, opens guest table sessions, builds QR carts, and keeps waiter approval mandatory before POS and KDS.

Plan Gate And Routes

  • The SaaS feature key is qr_ordering. Pro is enabled; lower plans show a locked state.
  • Tenant command center: /r/{tenant}/table-map.
  • QR manager: /r/{tenant}/qr/tables.
  • Approval queue: /r/{tenant}/qr/orders/pending.
  • Customer mobile menu: /qr/{token}.

Workflow

  • Design a floor in the visual lab, then publish it as a customer-safe table_layouts snapshot.
  • Generate or regenerate QR codes per table. Disabled QR codes cannot open customer sessions.
  • Guests scan the QR, start a table session, browse only QR-available menu items, add cart items, and submit for approval.
  • Waiters or managers approve pending requests. Approval creates a tenant POS order and sends items to KDS.
  • Payments remain in POS cashier; Phase 7 does not add customer online payments.

Smart Upsells And Heatmap

  • Upsell rules support cart thresholds, item pairs, category pairs, and unavailable alternatives.
  • Every shown suggestion writes an upsell_impressions row for later analysis.
  • Heatmap data combines paid POS orders, QR scans, submitted carts, approved requests, and rejected requests.
  • Heatmap snapshots stay lightweight and do not replace the future reporting module.

Testing Checklist

  • Run php artisan test.
  • Run php artisan route:list --path='r/' and php artisan route:list --path='qr'.
  • Run npm run build.
  • Smoke flow: publish map, regenerate QR, open customer menu, submit cart, approve request, confirm KDS ticket.