What you’re looking at
The offline bar sits in the POS header, and when everything is healthy it renders nothing at all — no chip, no button, no badge. That is the empty state, and it is the one you should normally see. If anything is showing, there is something to know:What works, and what does not
Capture works offline. Completion does not — and that boundary is deliberate.Works offline
- Ringing up and completing a sale on any payment method, including part-payment and credit
- Barcode scanning and product search, against the cached catalogue — the whole sellable list, not just the tiles on screen
- Holding and resuming carts
- Interaction screening against the cached ruleset, including a pharmacist’s acknowledgement
- Printing the receipt
- The calculator
Needs a connection
- Account balance as a tender — “Account balance needs a connection — take cash or card, or wait for the network.”
- Searching for a registered customer
- Redeeming a loyalty reward (it stays available for next time)
- Everything outside the till: dispensing workflow, receiving stock, billing and reports
Sell through an outage
Notice the bar
Ring the sale up as normal
Complete it
Give the customer their slip
Keep going
What happens when the connection returns
Sales sync on their own, one at a time, in the order you took them. You do not have to press anything; Sync now simply forces a drain if you would rather not wait. Every sale carries its own key from the moment you complete it, and that key travels with it through every retry. That is what makes all three outcomes safe:- Online — the sale gets a real number immediately and the toast reads Sale completed successfully!
- Offline — it is stored on the terminal with a provisional number and syncs later. It is a real sale from the moment you complete it; only its number is provisional.
- The connection died mid-request — the sale reached the server but the reply never got back to the till. Because the retry carries the same key, the server recognises it and reports This sale was already processed instead of recording a second one. The customer is charged once.
- Anything that failed to reach the server is retried automatically, with a growing gap between attempts so a flapping connection is not hammered.
- A sale the server actively refuses is not retried silently. It goes to Need review and waits for a person, because repeating a refused write forever is how quiet data loss happens.
- Stock shortfalls are not rejections. A sale that went beyond recorded stock syncs fine and shows up on Inventory › Reconciliation to be squared off later.
- An expired session parks the queue rather than failing it: “Your session expired. Sign in again to sync {n} saved sale(s).” Sign in and the drain resumes — nobody is asked to store a password to keep syncing.
Stale figures are labelled, always
While you are offline the cached catalogue is treated as stale regardless of its age, and the header says stock as of HH:MM so the number never pretends to be live. Low-stock badges are muted for the same reason. Read the label and trust it: another till may have sold the last box at 14:40.Before the outage: prime the terminal
A device can only work offline if it has loaded the till at least once while online — that is when it takes its copy of the catalogue and the screening rules. Open POS on every counter machine on the day you set it up. See The desktop app.Who can do this
Selling offline is not a separate privilege — it is the same act as selling, on a terminal that happens to have no network. Anyone who can work the till can work it during an outage.- Enforcement is opt-in, per person. Someone never saved in the permissions sheet is unrestricted, whatever their role bundle. The sheet warns “Saving starts enforcing”.
- A denied action is recorded; an allowed one is not. A refused reversal leaves a line in the audit trail; the sales you were entitled to take do not.
Check it worked
- During the outage: sales complete, receipts print, and the status button counts what is waiting.
- After it: the status button reads Synced, Waiting to sync is zero, and every sale appears in Sales History with a real receipt number and an Offline badge showing where it was captured.
- Sales taken offline count towards the day’s totals and reports exactly like any other.
Common issues
The count is not going down
The count is not going down
Sales are sitting in 'Need review'
Sales are sitting in 'Need review'
'Account balance needs a connection — take cash or card, or wait for the network.'
'Account balance needs a connection — take cash or card, or wait for the network.'
I cannot find a customer to attach
I cannot find a customer to attach
The provisional receipt will not scan
The provisional receipt will not scan
'Can't reach ClinikEHR' on the desktop app
'Can't reach ClinikEHR' on the desktop app
FAQ
What happens to queued sales if the till is switched off?
What happens to queued sales if the till is switched off?
Do offline sales count towards today's takings?
Do offline sales count towards today's takings?
Can a colleague on another till see my offline sales?
Can a colleague on another till see my offline sales?
Old synced sales have vanished from the queue — is that a problem?
Old synced sales have vanished from the queue — is that a problem?
How many sales can I take before I should stop?
How many sales can I take before I should stop?