Billing that keeps working when the internet does not
A supermarket chain with 22 stores across two states
A chain whose cloud POS stopped billing during every connectivity outage, in a business where a stalled counter empties the store.
- Client
- A supermarket chain with 22 stores across two states
- Industry
- Retail & Ecommerce
- Duration
- 10 weeks
- Team
- 3 engineers, 1 designer
- Year
- 2024
The situation
The incumbent cloud POS required connectivity for every transaction, and outages of 10 to 40 minutes were routine at several stores.
During an outage, staff wrote bills by hand and re-entered them later, producing both queues and stock inaccuracies.
Head office stock and store stock disagreed constantly, making replenishment guesswork.
Per-terminal subscription costs across 22 stores had become a significant recurring expense.
What we did
Local-first billing with queued synchronisation
Each terminal holds a local catalogue and writes bills locally. Sync is a background concern. The counter never waits on the network, which inverts how the previous system behaved.
Getting GST invoice numbering right offline
GST requires unbroken sequential invoice numbering, which is straightforward centrally and genuinely difficult when terminals bill offline in parallel. We allocated per-terminal number ranges in advance, so sequences remain valid and non-overlapping without terminals needing to coordinate.
Stock reconciliation designed around conflicts
Two terminals selling the last unit of a SKU while both offline is not an error to prevent but a reality to reconcile. Conflicts surface to the store manager with both transactions intact rather than one being silently discarded.
Store-by-store rollout
Two pilot stores ran for three weeks before the remaining twenty. Nearly all issues found were hardware and habit rather than software, and finding them across 22 stores at once would have been considerably worse.
The parts that were actually hard
Problem
Existing barcode scanners and thermal printers were a mix of six brands accumulated over a decade.
How we handled it
We normalised on standard protocols rather than per-device drivers, and tested every model in use before rollout. Two of the oldest printers were genuinely incompatible and were replaced, which was cheaper than supporting them.
Problem
The chain's product catalogue had duplicate barcodes across stores from years of independent entry.
How we handled it
We built a deduplication and reconciliation pass with store-manager review for genuine ambiguities, rather than merging automatically. About 1,400 conflicts needed a human decision, and automating that would have corrupted the catalogue.
What shipped
- Offline-first POS across 22 stores and 60-plus terminals
- GST-compliant invoicing with offline-safe number range allocation
- Centralised catalogue with per-store pricing and consolidated reporting
- Stock reconciliation with explicit conflict surfacing
- Catalogue deduplication across the full chain
Outcomes
- Billing continues uninterrupted through connectivity outages, which was the project's primary objective
- Head office and store stock now reconcile, making replenishment planning possible
- Per-terminal licensing was replaced with flat per-store pricing, cutting the recurring software cost substantially across 22 stores
- Hand-written bills during outages, and the re-entry they required, stopped entirely
Outcomes are described qualitatively where no clean measured baseline existed before the work started.
Built with
Have a problem shaped like this one?
Tell us what you are dealing with. We will come back with a scoped estimate and an honest view on whether we are the right fit.