The POS — taking a sale
The full checkout flow: search and scanning, variants, customer capture, tips, discount codes, loyalty redemption, split payments, held orders and shortcuts.
Open the till
Branch → Open POS
Clock in first.
Dashboard → Shifts → Clock in. Sales taken inside a shift can be reconciled against the drawer at close; sales taken outside one cannot.
Open the branch and click Open POS.
Check the two tabs.
Menu builds the order. Orders reviews what has already been rung up at this branch.
The two gates before Place Order — the total finishing its calculation, and split tenders covering the bill — are the ones that stop money going wrong.
Read this diagram as text
- Open the POS → Add items
- Add items → Item has variants?
- Item has variants? → Pick the size or portion (yes)
- Pick the size or portion → Capture name, phone, table
- Item has variants? → Capture name, phone, table (no)
- Capture name, phone, table → Tip, discount code, points to redeem
- Tip, discount code, points to redeem → Server reprices the basket
- Server reprices the basket → Total finished calculating?
- Total finished calculating? → Wait — placing is blocked (no)
- Wait — placing is blocked → Server reprices the basket
- Total finished calculating? → One tender or a split? (yes)
- One tender or a split? → Choose a payment method (one)
- One tender or a split? → Add tender lines until nothing remains (split)
- Choose a payment method → Place Order
- Add tender lines until nothing remains → Place Order
- Place Order → Cart clears for the next customer
On a phone or small tablet the cart is behind the floating cart button in the bottom-right corner; the badge shows how many items are in it. On desktop the cart is a permanent panel down the right-hand side.
Add items to the cart
Four ways to find a product
- Scan it. A hardware barcode scanner adds the matching product straight to the cart.
- Search it. Type in the search box; results filter as you type.
- Tap a category, then the item.
- Resume a held order — the whole basket comes back at once.
Setting quantities
Use + and − on the item card to set how many.
Each change is reflected in the cart panel immediately.
If the item has variants, pick one when prompted.
Choose a variant means choosing a size or portion — the price adjusts by the variant's delta, and stock is drawn down by the variant's base quantity.
Remove a line from the cart panel if it was rung up in error.
Scanning and typing share one keyboard safely: the speed of the keystrokes is what identifies a scanner.
Read this diagram as text
- Keystrokes arrive → Is a text field focused?
- Is a text field focused? → Treated as typing (yes)
- Is a text field focused? → Faster than a human can type? (no)
- Faster than a human can type? → Treated as typing (no)
- Faster than a human can type? → Collect into the scan buffer (yes)
- Collect into the scan buffer → Enter pressed, at least 3 characters?
- Enter pressed, at least 3 characters? → Look the barcode up in this branch's catalog (yes)
- Look the barcode up in this branch's catalog → Match found?
- Match found? → Item added to the cart (yes)
- Match found? → Told nothing matched (no)
How scanning knows it is a scanner
A barcode scanner types very fast and finishes with Enter. The POS treats a burst of keystrokes arriving faster than a human could type as a scan, and ignores anything slower. It never fires while you are typing in a text field, so scanning and typing can share the same screen safely.
Capture the customer
Click the pencil beside the customer name to open Edit Customer Information.
Enter the Customer Name and Phone Number.
Phone is what identifies a returning customer. Without it the sale is recorded as a walk-in and earns no loyalty.
Restaurants: set the Table Number and dine-in status.
The table number rides along with the ticket to the kitchen.
Save Changes.
What the phone number unlocks
Phone entered
Nine digits or more, so partial numbers do not trigger a search.
Customer matched
Existing record found for this organization.
Balance shown
Their redeemable loyalty points appear in the cart.
Sale attributed
Spend, order count and new points land on their record.
Adjust the bill
In the cart summary
- Payment Method
- Cash, Card, M-Pesa, Visa, Debit Card, Credit Note, plus any custom tenders your organization has enabled.
- Tip
- Added on top of the bill and shown as its own line on the total.
- Discount Code
- Type the code and click Apply. It is validated on the server — an expired, out-of-window or used-up code is rejected with the reason.
- Redeem points
- Only appears when a matched customer has a balance. Enter how many points to spend; the credit comes off the bill.
- Split Payment
- Click Add to enter a tender line — a method and an amount. Add as many as you need.
The summary recalculates on the server as you go, so what you see is what will be charged: subtotal, discount, loyalty credit, VAT, service charge, tip and total. While it is recalculating the total reads Calculating… and placing the order waits for it to finish.
Split payments must cover the total exactly
The tender lines have to add up to at least the total, and cannot exceed it. Place Order stays disabled while a shortfall exists, and the Remaining to pay line shows what is still owed in red.
Place the order
Check the total and the payment method.
Click Place Order — or press Ctrl/⌘ + Enter.
Cash, card and similar tenders settle at once.
The order is recorded as paid and stock comes off immediately.
M-Pesa sends an STK push to the customer's phone.
The order stays pending until the customer approves it and the confirmation reaches Wezo. If the push could not be started you are told immediately, and the order is still saved.
The cart clears so the next customer can be served.
Why the cart clears before the server replies
The queue does not wait for the network. If the server rejects the order, the basket is restored exactly as it was — unless you have already started ringing up the next customer, in which case your new work is protected instead.
Hold and resume an order
Use a held order when a customer steps away, a table is not ready to pay, or the queue needs to move. A held order is parked without charging anything and without touching stock.
A held order charges nothing and touches no stock. Placing a resumed ticket discards the parked copy, so one basket can never be sold twice.
Read this diagram as text
- Basket in progress → Save Order
- Save Order → Sits under Held Orders
- Sits under Held Orders → Customer comes back?
- Customer comes back? → Resume (yes)
- Customer comes back? → Discard (no)
- Resume → Place the order
- Place the order → Parked copy released
Build the cart, then click Save Order.
The basket is parked and the cart clears for the next customer.
To bring it back, click Held Orders.
Each parked ticket shows its number, customer and total.
Click Resume to load it back into the cart.
Finish the sale as usual.
Placing a resumed order discards the parked copy, so the same basket cannot be sold twice.
Click the bin icon to discard a held order you no longer need.
You are asked to confirm; this cannot be undone.
Edit an order you already placed
Open the order from the Orders tab and start editing it.
The cart shows an Editing Order banner so nobody mistakes it for a new sale.
Change quantities, add or remove lines.
Click Update Order to save, or Cancel to abandon the changes.
Cancelling asks for confirmation because the changes are lost.
Editing is time-boxed
Unpaid orders stay editable for the grace period set in Dashboard → Settings → Point of sale. After that, correct the sale with a refund and a fresh order so the money trail stays intact.
How the total is worked out
Subtotal
Item price plus variant delta, times quantity.
− Discount
Code, or the best auto-apply discount that qualifies.
+ VAT
Per line, on the discounted amount.
+ Service charge
Branch rate on the discounted subtotal.
+ Tip
Whatever was entered.
− Loyalty
Points redeemed, applied last.
Prices come from the catalog, not the terminal
The server re-reads every price from the menu or inventory record and recomputes tax, discount and total. A price typed at the till is only honoured for members holding the Change prices permission. This is why a compromised terminal cannot undercharge.
Keyboard shortcuts
- /Jump to the search box
- Ctrl / ⌘ + KJump to the search box
- Ctrl / ⌘ + EnterPlace — or update — the current order
- Ctrl / ⌘ + Shift + BackspaceClear the cart (asks first)
The shortcuts work even while a field is focused, so a fast cashier never has to reach for the mouse between sales.
When the network drops
A banner tells the cashier the terminal is offline. The screen keeps loading from cache so you are not staring at a blank page, but orders and payments cannot be saved until the connection returns.
Reads keep working from cache; writes fail closed. Queuing a sale offline could double-charge, oversell stock or apply a stale price — so it is refused rather than risked.
Read this diagram as text
- Cashier acts → Online?
- Online? → Works as normal (yes)
- Online? → Offline banner shown (no)
- Offline banner shown → Reading or writing?
- Reading or writing? → Screens keep loading from cache (reading)
- Reading or writing? → Order cannot be saved (writing)
Offline sales are blocked on purpose
Queuing a sale and replaying it later risks double-charging a customer, overselling stock another terminal already sold, and applying stale prices. Until Wezo can guarantee none of that happens, the till fails closed and tells you plainly. Take the sale on paper and ring it up when you reconnect.