POS Workspace
The POS workspace is the central hub for navigating between work modes and accessing POS features.
Navigation
The POS layout at /pos/[branchId] provides a navigation structure to access all modes and settings:
Primary Navigation
- Counter , Cashier service for pickup/takeout orders
- Floor , Table service with floor plan
- KDS , Kitchen Display System
- QR , QR code display and table management
- Settings , POS configuration
- Analytics , POS performance metrics
Layout Components
PosLayoutClient
The main layout wrapper that provides:
- Sidebar navigation with work mode switching
- Branch context (active branch info)
- Work mode awareness via PosWorkModeContext
- Real-time connection management
PosWorkModeContext
Provides the current work mode and available modes to child components:
- Counter service
- Floor service
- KDS (kitchen)
- WhatsApp dispatch
Multi-Branch Support
The POS is branch-specific , each branch has its own URL at /pos/[branchId]. Staff with access to multiple branches can switch between them using the branch selector in the dashboard sidebar.
Branch Permissions
Access to POS features is controlled by team permissions:
| Permission | Access |
manage_branches | Full POS access and configuration |
view_analytics | Analytics read-only access |
access_pos_counter | Counter mode operations |
access_pos_floor | Floor mode operations |
access_pos_kds | KDS (kitchen) access |
Real-time Updates
The POS uses Supabase Realtime for live updates:
- New orders appear automatically
- Order status changes are pushed in real-time
- Kitchen ticket updates are reflected instantly
- Table status changes sync across floor staff
- Queue updates for counter orders
Offline Resilience
The POS includes an offline mutation queue (usePosMutationOutbox):
- Actions are queued when the network is unavailable
- Queued mutations are retried when connectivity returns
- Critical operations are prioritized in the queue
- Visual indicators show sync status