Customer Display
A second screen that shows the customer the items being rung up, the running total, and a thank-you panel after payment. Built into LaundryVerse — no extra hardware beyond a second monitor or tablet.
1. What the Customer Sees
The display has three states:
| State | Shown when | Content |
|---|---|---|
| Idle | No active cart | "Welcome" message + store name |
| Cart | Cashier is ringing items | Item list with quantities and prices, customer name + loyalty points (if attached), running total, "You saved" line if any discount/coupon/points are applied |
| Paid | Receipt was just charged | Big green checkmark, "Thank you!", amount paid, change due — sticks for 5 seconds before going back to idle |
The display reflects the cart in real time as the cashier adds items, attaches a customer, or applies a discount. There is no setup, no pairing code, and no separate login.
2. How to Open It
From any POS screen:
- Tap the menu icon (top-left) to open the side menu
- Tap Customer Display near the bottom
- A new browser window opens at
/customer-display - Drag that window to your second monitor and F11 (Chrome / Edge) to make it fullscreen
The window is named — your OS / browser remembers the monitor you put it on, so the next time you open it from the menu it should pop up on the same screen.
If your tablet has Android desktop mode or you've connected it to a TV via HDMI, you can use the second display the same way — just open the menu, tap Customer Display, then drag the window over.
3. How It Stays in Sync
The Customer Display reads cart updates from the same browser the cashier is using:
- It uses BroadcastChannel when both windows are in the same browser (the normal case)
- Falls back to the browser's local storage event when BroadcastChannel isn't available
That means both windows must be on the same device, in the same browser. You can't put the cashier's POS on one tablet and the customer display on a different one — they wouldn't share state.
4. What the Customer Doesn't See
The display is intentionally read-only and shows only what the customer needs to verify before paying:
- No prices for individual modifiers — only the line total
- No payment type breakdown — paid / change only after charge
- No employee name — the customer doesn't need it
- No order number, no receipt number, no QR codes — those are for the cashier
The display has no inputs and cannot be tapped to do anything — it's purely a view.
5. Items, Customer, Discounts
Once the cashier:
- Adds items to the cart — each item appears with quantity, name, variant (if any), and line total
- Attaches a customer — their name and loyalty points balance show in the right rail
- Applies a discount, coupon, or redeems points — each shows as a separate line with a green minus, then a green "You saved ₱X.XX today 🎉" appears below the total
If no customer is attached, the right rail simply shows "Walk-in customer".
6. Paid State
When the cashier completes payment, the display switches to a celebratory thank-you screen showing:
- ✅ Big green checkmark with confetti
- Paid — total amount charged
- Change — if the customer paid in cash and got change back; otherwise shows "Complete"
This screen sticks for 5 seconds, then returns to the idle "Welcome" message, ready for the next customer.
7. Permissions
The Customer Display is a tenant-wide page with no auth — it pulls cart state from the cashier's browser via BroadcastChannel, not from the server. There's no separate permission to enable it, and no employee role can be locked out of opening it.
What's Next?
- The Register — How the cashier rings items, attaches a customer, and charges a sale
- Attaching a Customer — Customer name and points show on the display once attached
- Hardware Requirements — Recommended second monitor / TV for the display
