Orus Studio
Retail & Ecommerce

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

01

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.

02

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.

03

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.

04

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

Next.jsPostgreSQLIndexedDBNode.jsDocker

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.

Explore