Login
At/cashier, a logged-out cashier sees a login form.
Fields:
- Employee ID (required) — no format rule, just can’t be blank.
- Password (required) — no length or format rule, just can’t be blank. Has a show/hide toggle.
- Wrong password → “Wrong password. Check it and try again.”
- Account deactivated → “This device was turned off. Ask your manager.”
- Any other login rejection → “Wrong Employee ID or password.”
- Anything else goes wrong → “Couldn’t log you in. Try again.”
Taking orders
This screen is the exact same component the QSR owner uses at
/qsr/orders. Everything below — the menu grid, the cart, checkout — works identically for both. The only difference is which login you used to get here.- Pay Now — records the order with sales type “online” and shows a success screen.
- Pay Later — records the order with sales type “pos”. This is the counter/cash path.
Menu Board
At/cashier/menu, the cashier can look at the full menu and turn items on or off for sale.
What a cashier can do: search the menu, and toggle an item’s visibility with the eye icon.
What a cashier can’t do: edit an item, duplicate it, or delete it. There’s also no way to add a new item from this screen — creating menu items isn’t available from the Cashier login.
Tap Back to return to the ordering screen.
My Orders
At/cashier/orders, the cashier sees a history of orders they’ve personally taken — not the whole venue’s orders, just theirs.
Search matches on order ID, customer name, email, phone, or cashier.
Columns: Ticket No., Cashier, Date, Time, Name, Email, Phone No., Food, Total Orders, Amount, Sales Type.
Use Download to export the current list to CSV. The list loads more rows automatically as you scroll.
There’s no payment-type filter (POS vs. Online) on this screen right now, even though the table shows Sales Type per order — that filter isn’t wired up on the Cashier’s My Orders view.

