← All guides

Operational deep-dive

When the register goes offline — what survives, what doesn’t

Internet drops happen — Comcast outage, router reboot, ISP migration, the building’s power blip that took the modem with it. A cannabis dispensary running cash sales should not stop selling because the link to the cloud went dark. The honest write-up of what a POS can survive offline, what synthesizes back when the link returns, and what staff should say when the spinner appears.

By CannAgent6 min read

Why offline mode is a cannabis-specific problem

Most retail POS vendors built around card-present transactions. When the internet drops, the card terminal can’t auth — the sale can’t happen — the register stops being useful. That model leaks straight into how cannabis POS is built, even though the cannabis register doesn’t need card auth at all (cash-only by design in WA + OR + MI). The register is doing inventory decrement + tax math + receipt print + audit log + traceability sync. Three of those five can run on the local register without ever touching the cloud.

What survives offline (and how)

The register is local-first. Local means the register keeps its own copy of what it needs and writes there first, then syncs. Concretely:

  • Inventory lookup. The product catalog (every SKU + price + tax category + on-hand qty) is mirrored locally on every register. Lookup is instant; no network round-trip.
  • Cart build. Add product → cart updates. Apply discount (loyalty / heroes / first-visit) → math runs locally against rules cached at start-of-shift. The cart never waits on the cloud.
  • Tax math. State-by-state rates baked in (WA 37% / OR 17%-20% / MI 10%) — not pulled per-transaction.
  • ID scan + age verification. Local scanner + local rule (21+ recreational / patient lookup against locally cached endorsement list). Sale-to-minor block enforced offline.
  • Receipt print. Receipt printer is USB to the register, not networked. Prints regardless of upstream link.
  • Cash drawer open. Drawer trigger is wired to the register, not to the cloud. Open / close / balance happen locally.
  • The transaction record is written on the register itself. Nothing is lost.

What does NOT survive offline

Honest list. These all wait for the link to come back.

  • WSLCB-CCRS / METRC traceability submit. WAC 314-55-083(4) requires the information be “kept completely up-to-date” and sets no interval — no real-time rule, no stated deadline. Transactions queue locally; they push to CCRS / METRC the moment the link returns. The state doesn’t know whether the row arrived in 2 seconds or 47 minutes — the receive timestamp is what matters, not whether it crossed the wire instantly. (End-of-day reconciliation is the practical bar we hold ourselves to, and the 2026 CCRS technical guide is the place to check the transport contract.)
  • Cross-store inventory transfer. Same-licensee inventory transfer to a sibling store needs both sides online for the manifest to commit. If one side is offline, the transfer queues; the manifest commits when both are reachable.
  • Loyalty point accrual via cloud rules engine. If the loyalty rules are cloud-side only, the customer earns the points retroactively when the link returns. Better: rules-cache locally so the receipt shows the point earn in real-time. (CannAgent caches; many vendors don’t.)
  • Online order claim. Customer ordered ahead via the public site? The pickup pre-reservation lives in the cloud. Offline registers can still complete a walk-in cash sale of the same product, but the ‘mark online order picked up’ sync waits.
  • Vendor portal sibling-store hop. A vendor logging in to look at the other store from this register’s screen is a cross-store auth flow — needs the cloud.
  • Real-time dashboard for the owner phone. The owner’s phone dashboard shows whatever the cloud knew at last sync. Lag is the price.

What synthesizes back when the link returns

The order matters. Sync isn’t one batch — it’s a priority queue.

  1. Audit-log rows first. Compliance writes are the highest-priority sync target. The state doesn’t care about the timing within reason; it cares that the row exists.
  2. Inventory decrement reconciliation. If two registers were offline simultaneously and both sold the last unit of a SKU, the sync detects + flags the conflict for the inventory team to resolve manually. Better than silently double-selling.
  3. Cash-drawer close + variance. The till count for the offline window flows up the moment the link returns. A variance over your threshold gets the standard review.
  4. Loyalty point accruals. Customer’s account updates retroactively. Customer-facing communication: ‘Your points from earlier today have posted’ — never ‘our system was down.’
  5. Online-order pickup status. Last to sync. The customer who walked in for an online order while the link was down already left with the product; the marker just catches up.

What staff should say to a customer while offline

Tone matters. The customer doesn’t need to hear ‘our system is down.’ They need to hear that the sale is going through.

  • Right: ‘Cash sale, easy — register handles this locally.’ (For the cash-only customer, internet is irrelevant. Don’t make them anxious about something that doesn’t affect their purchase.)
  • Right (loyalty member): ‘Points will post in a few minutes — receipt shows what you earned.’ (Honest + reassuring; the receipt math is local + trustworthy.)
  • Right (online order): ‘Your online order is in our local system. We can hand it to you now; the “picked up” flag updates when our connection comes back.’ (Honest about the queue without making it the customer’s problem.)
  • Wrong: ‘Our system is down — I’m not sure if I can ring you up.’ (Telegraphs panic; loses the sale.)
  • Wrong: ‘Sorry, can’t do anything until our internet comes back.’ (False — the register can almost certainly do this transaction.)

What this replaces

  • Cloud-only POS that locks the register on a network blip. (Several vendors still ship this; ask before signing.)
  • Manual paper-tracking of offline sales. (Some shops keep a notebook for outages — recipe for variance + audit trouble.)
  • ‘Sorry, our system is down’ sign on the door. (Walks customers to a competitor.)
  • Owner phone calls to the IT vendor mid-outage. (The register architecture should make this irrelevant.)

Takeaways

  • Cash-only cannabis register doesn’t need internet for the transaction itself — only for the state traceability submit + cross-store sync
  • A local copy of the catalog, tax rules and age check lets the register clear sales offline; the sync catches up when the link returns
  • Average two-lane shop loses $1,200/hour of revenue when the register stops — the architecture choice compounds across every outage of the year
  • Sync priority order: audit-log first / inventory reconciliation / cash variance / loyalty accruals / online-order pickup status
  • Staff script during an outage frames the local-resilience as routine — never ‘our system is down’

Frequently asked

If the internet drops during a rush, can my registers still ring up cash sales?
Yes. The register is local-first, with the product catalog, tax rules, age verification, and audit log mirrored in a local SQLite database next to the till, so transactions clear offline. Inventory lookup, cart build, tax math, ID scan, receipt print, cash drawer, and the audit-log write all run without touching the cloud. When the link recovers, those transactions sync back to the cloud and WSLCB-CCRS within seconds.
What actually stops working while the register is offline?
State traceability submits to WSLCB-CCRS and METRC wait for the link, queuing locally and pushing the moment connectivity returns. Cross-store inventory transfers, the vendor portal sibling-store hop, and the owner phone dashboard also depend on the cloud. Online-order pickup can still be handed over as a walk-in cash sale, but the mark picked up flag syncs later.
When the connection comes back, what order does everything sync in?
Sync is a priority queue, not one batch. Audit-log rows go first as the highest-priority compliance write, followed by inventory decrement reconciliation, then cash-drawer close and variance, then loyalty point accruals, with online-order pickup status last. If two offline registers both sold the last unit of a SKU, the sync detects and flags the conflict for the inventory team to resolve manually rather than silently double-selling.

Related guides

Ready to talk through your migration?

30-minute demo. We end by quoting the cutover from your current setup — fixed scope, no hourly games.