Discounts
Discounts let your team take money off a bill in a controlled way — a staff meal, a regular’s loyalty cut, a goodwill gesture for a slow kitchen, or the occasional “on the house”. You decide ahead of time which discounts exist and how much each role can give before a manager has to step in, so the floor moves fast without giving away the margin.
What it does
Every venue handles price cuts differently, and most do it badly: a number scribbled on a docket, a manager unlocking the till for every small thing, or no record at all of why the bill came down. This feature replaces all of that with two simple ideas — a list of saved discounts you prepare in advance, and a limit for each role that says how far they can go on their own.
A saved discount is just a name and a value: “Staff meal” at 50% off, “Senior” at 10%, “On the house” at 100%. Your staff tap one instead of typing numbers, so they can’t fat-finger a 90% when they meant 9%, and every discount carries a reason you can read back later. You can let staff enter a one-off custom amount too, with a ceiling so nobody can go wild.
The limits are where the control lives. A cashier might be trusted to take up to 10% off on their own; anything bigger pauses and asks a manager to approve it with their code. Managers and owners have no limit — they’re the ones who sign off. Nothing is ever blocked outright for a manager; the limit just decides who needs to say yes.
The rule
Saved discounts and limits are set once in Settings; the floor only ever picks a discount. Below a role’s limit it just applies — above it, a manager approves. Every discount records who applied it and why.
How to use it
Setting it up (manager or owner, once)
Open Settings → Discounts. The page has two parts.
At the top, Discount rules: turn on Allow custom discounts if you want staff to enter one-off amounts, and set the maximum percent and amount for those. Leave Always require a reason on so your reports stay clean, and list a few reason shortcuts (like “Customer complaint” or “Regular”) that staff can tap instead of typing. Then set the discount limit per role — for example, Cashier up to 10%, Shift lead up to 25%. Leave a box blank for no limit. Managers and owners are always unlimited and are the ones who approve anything over a limit.
Below that, Saved discounts: add each discount your team gives regularly. Give it a name, choose percent or fixed amount, set the value, and choose whether it applies to a single item, the whole bill, or both. You can restrict a discount to certain roles, and you can mark a big one (like “On the house”) as always needs manager approval so it never slips through unnoticed.
Applying a discount at the till
On the order screen, the bottom of the ticket has a Discount the bill button, and each dish has its own small Discount button. Tap either one and pick a saved discount, or enter a custom amount if that’s switched on. The bill updates straight away — you’ll see the discount line, the new service charge and tax, and the new total. A discounted dish shows its original price with a line through it.
If the discount is within your limit, it just applies. If it’s above your limit, the till asks for a manager’s code — the manager taps it in, and the discount goes through with their name attached. To undo one, tap Remove next to the bill discount, or Discount ✕ on the dish.
Worked example
It’s a busy Friday at iO Osteria. A regular, Khun Som, has had a long wait for her Spaghetti alla Carbonara (฿680) and the manager wants to make it right. Anna, the cashier, opens the ticket and taps the Discount button on the Carbonara line. She picks “Regular 20%” from the saved list and adds the reason “Long wait, regular guest”.
Anna’s cashier limit is 10%, and 20% is over it — so the till pauses and shows Manager approval needed. She waves over Marco, the floor manager, who taps in his code. The discount goes through: the Carbonara now shows ฿680 ฿544, and the bill’s service charge and tax recalculate off the lower amount automatically. When Khun Som pays, her printed receipt shows the Carbonara with its original price struck through and a clear Discount line, so there’s no confusion at the table.
At the end of the night, Marco closes his shift and the cashier report shows a “Discounts by reason” line — ฿136 under “Long wait, regular guest” — so the owner can see exactly where the night’s discounts went and that Marco signed off on the over-limit one.
Related features
- Cashier & orders — discounts are applied while building or settling the ticket.
- Reopen a bill — discounts can be changed while a bill is open, not after it’s closed.
- Owner — the owner sets up the saved discounts and each role’s limit.
- Accepted card brands — the discounted total is what the guest actually pays.