Skip to content
All insights

Keeping a shop selling when the internet goes down

How a till can keep recording sales during an outage, then catch up safely afterwards without ever recording the same sale twice.

Shops and selling. 23 October 2026. 6 min read.

Plate · NoteOne technical decision, traced through the system.

For a shop with several branches, an internet outage can stop the counter dead, or push staff back to pen and paper. Counterbase is the till system we built to avoid that. Its phone app keeps every sale on the phone itself, then sends it on when the connection comes back. The hard part is not selling during the outage. It is catching up afterwards without recording the same sale twice. This article follows a sale from the counter to the central record and explains the checks along the way.

The phone is the record while you are offline

When a cashier completes a sale, the app saves the whole sale on the phone: what was sold, the amount and the receipt number. The sale is given its own unique number on the phone, because there is nobody to hand one out while the internet is down. The sale shows in the day's takings at once, the branch's stock goes down, and the receipt prints. Nothing at the counter waits for a reply from the internet.

That is the key idea. During the shift, the phone's own record is the one to trust. The central record is the one to trust for history. A cashier never stares at a spinning wheel where a receipt should be.

Every action joins a to-do list

Alongside each sale, the app adds a line to a to-do list. The line says what happened, to which record, and in what order. Sales, cancelled sales, refunds, stock changes, supplier invoices, supplier payments and customer edits all join the same list, so nothing needs a special route.

The order is kept for each phone. It does not pretend to be a single clock shared by every branch. Each line also carries a unique number of its own, which lets the central system recognise it if it ever arrives twice.

Sending, and checking for news from others

Catching up happens in three ways. When the connection returns, the app starts sending the waiting lines straight away. While the phone is online, it keeps sending on a regular timer. And every couple of minutes it also asks for news from the other tills in the same branch: a sale made at counter two, stock received in the storeroom, a price change. Without that check, a sale made on one till would only show up on another till when that second till happened to make a sale of its own.

Phone clocks drift, and a till whose clock runs ahead could silently miss records. So each check deliberately looks back a little further than strictly needed. This means a few records are seen twice, which the central system simply ignores, and in return nothing is missed.

There is also a safety sweep. If the app is closed in the instant between saving a sale and adding it to the to-do list, the sale could sit unsent forever. So at the start of every catch-up, the app looks for any sale that was never added to the list and adds it. Problems like this are treated as ordinary work, not as rare emergencies.

The same sale must never exist twice

The classic problem with selling offline is duplication. The app sends a sale, the connection drops just after the central system saved it, the app never hears back, tries again, and the customer is charged twice. The system is built so that trying again is always safe. The central system keeps a note of every line it has already handled, and checks that note before doing anything.

If the same line arrives a second time, the central system recognises it, answers as it did the first time, and does not record anything new. The sale's own unique number also travels with it, so even a line rebuilt by the safety sweep cannot create a second sale.

Clear rules when two tills disagree

Two tills can change the same record while both are cut off. A good design decides what happens in advance, instead of letting whichever message arrives last win. Four situations need their own rules.

  • Both tills changed the same record: combine the changes only where they cannot affect each other. Where money or stock is involved, send the clash to a person or follow a written rule about which change wins.
  • The record was removed centrally: keep a note of the removal long enough for every till to find out about it, and never bring the record back without a deliberate decision.
  • A newer version already exists: compare them and decide whether to reject, combine or ask a person, instead of overwriting the newer one without looking.
  • The same new record arrives twice: use its unique number to spot the repeat, and point to the record that already exists.

Anything that cannot be settled automatically is marked as a clash and shown to someone who can make the business decision. Nothing is thrown away quietly, and the person in charge gets a clear way to confirm that everything has been sorted out.

What to ask before you believe a claim like this

Selling without internet is easy to promise in a sales meeting and hard to get right. If a supplier claims it, ask four questions. Where is the sale saved first, and can I see the receipt seconds after the connection dies? What happens if the app is closed halfway through catching up, and does anything ever get stranded? Can the same sale reach the central record twice by any route? When two tills disagree, who wins, and who is told? If the answers are vague, the claim is marketing.

Done properly, the result is boring in the best way: the counter keeps moving through the outage, and the waiting sales quietly go through when the line returns.

Related articles

Talk through the problem.

Tell us about the workflow, the connection between tools, or the move you are planning.

Start a project

Shops, tills & selling