POS Cashier Phase 4
Phase 4 adds a tenant-local, touch-first POS cashier terminal for paid restaurant tenants. It covers dine-in, takeaway, delivery, table carts, shift enforcement, local tenders, sandbox pay-links, split bills, manager-approved refunds/voids, receipt print views, and inventory event hooks.
Access And Shift Rule
POS routes live under /r/{tenant}/pos and remain behind tenant login and active subscription middleware. Users can browse the terminal without a shift, but creating orders, adding items, sending, payments, refunds, voids, and cash movements require an open shift.
Cashier Workflow
- Open
/r/{tenant}/pos, choose branch and service mode, then open a shift. - Create a table order from the floor map or a takeaway/delivery order from the quick action.
- Add menu items from the order workspace. Prices, modifiers, tax flags, branch settings, and station routes are snapshotted.
- Send the order to the KOT print preview, hold/resume when needed, or transfer the table.
- Apply discounts, split bills, record local payments, or create a sandbox pay-link.
- Print the 80mm receipt and close the shift after cash count.
Data Model
orders,order_items,order_bills, andorder_bill_itemsstore the cart, split bills, item snapshots, and optimistic version.order_payments,order_discounts,refunds, andvoidsstore local tenders and manager-approved financial actions.shiftsandcash_drawer_movementsstore cashier open/close and cash drawer audit trails.order_eventsrecords lifecycle events, andpos_inventory_eventswrites setup-only inventory hooks for Phase 8.
Payments
Phase 4 supports local tenant tenders: cash, manual card, bank transfer, wallet, complimentary, and sandbox pay-link. Sandbox pay-links create central payment requests with tenant/order metadata; when a simulator or real sandbox payment becomes paid, the reconciliation hook initializes the tenant database and marks the matching POS payment paid idempotently.
Manager PIN
Manager approval uses a hashed tenant-local PIN stored on staff users with approve pos manager actions. PIN approval is required for refunds, voids, shift close overrides, cash out, safe drop, correction, and high-value discounts. The PIN is never displayed.
Receipts And KOT
Receipts and KOT are browser-based 80mm print views. They use branch receipt settings, order item snapshots, tax/service charge lines, payment splits, and station grouping. No direct ESC/POS hardware integration is required in this phase.
Verification
php artisan test
php artisan route:list --path='r/'
npm run build