All guides

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.

14 min readCashierWaiterManager

Open the till

Branch → Open POS

  1. 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.

  2. Open the branch and click Open POS.

  3. Check the two tabs.

    Menu builds the order. Orders reviews what has already been rung up at this branch.

A sale, from first tap to receiptyesnonoyesonesplitOpen the POSClock in firstAdd itemsScan, search, tap acategory, or resume a heldorderItem has variants?Pick the size orportionPrice adjusts by thevariant deltaCapture name, phone,tablePhone matches loyalty andhistoryTip, discount code,points to redeemServer reprices thebasketSubtotal, discount, tax,service, loyaltyTotal finishedcalculating?Wait — placing isblockedOne tender or a split?Choose a payment methodAdd tender lines untilnothing remainsPlace OrderOr Ctrl/⌘ + EnterCart clears for thenext customerRestored if the serverrejects it

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

  1. Use + and − on the item card to set how many.

    Each change is reflected in the cart panel immediately.

  2. 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.

  3. Remove a line from the cart panel if it was rung up in error.

What happens when you scanyesnonoyesyesyesnoKeystrokes arriveIs a text fieldfocused?Faster than a human cantype?Treated as typingScanner logic stays out ofthe wayCollect into the scanbufferEnter pressed, at least3 characters?Look the barcode up inthis branch's catalogMatch found?Item added to the cartTold nothing matchedSearch for it by nameinstead

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

  1. Click the pencil beside the customer name to open Edit Customer Information.

  2. 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.

  3. Restaurants: set the Table Number and dine-in status.

    The table number rides along with the ticket to the kitchen.

  4. Save Changes.

What the phone number unlocks

  1. Phone entered

    Nine digits or more, so partial numbers do not trigger a search.

  2. Customer matched

    Existing record found for this organization.

  3. Balance shown

    Their redeemable loyalty points appear in the cart.

  4. 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

  1. Check the total and the payment method.

  2. Click Place Order — or press Ctrl/⌘ + Enter.

  3. Cash, card and similar tenders settle at once.

    The order is recorded as paid and stock comes off immediately.

  4. 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.

  5. 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.

Holding and resuming a basketyesnoBasket in progressSave OrderParked; cart clearsSits under Held OrdersCustomer comes back?ResumeLoads back into the cartDiscardConfirmed, and cannot beundonePlace the orderParked copy released

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
  1. Build the cart, then click Save Order.

    The basket is parked and the cart clears for the next customer.

  2. To bring it back, click Held Orders.

    Each parked ticket shows its number, customer and total.

  3. Click Resume to load it back into the cart.

  4. Finish the sale as usual.

    Placing a resumed order discards the parked copy, so the same basket cannot be sold twice.

  5. 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

  1. 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.

  2. Change quantities, add or remove lines.

  3. 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

  1. Subtotal

    Item price plus variant delta, times quantity.

  2. − Discount

    Code, or the best auto-apply discount that qualifies.

  3. + VAT

    Per line, on the discounted amount.

  4. + Service charge

    Branch rate on the discounted subtotal.

  5. + Tip

    Whatever was entered.

  6. − 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.

What the till does when the network dropsyesnoreadingwritingCashier actsOnline?Works as normalOffline banner shownReading or writing?Screens keep loadingfrom cacheOrder cannot be savedTake it on paper; ring itup on reconnect

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.