Every shop owner who has taken payments in person knows the feeling: the card machine works, the customer is waiting, and the till has just stopped responding because the internet dropped. If your point of sale lives in a browser tab and talks to a server on every keystroke, an outage does not slow you down — it stops you completely.
This is the single biggest objection people raise about running a WooCommerce POS. Your products, stock and orders live on a web server, so surely the register needs a connection? Not necessarily. A properly built offline mode lets the register keep ringing up sales, and syncs everything back the moment the connection returns.
What “offline mode” actually has to do
The phrase gets used loosely. A POS that shows a cached product list but cannot complete a sale is not offline-capable — it is just slow to fail. For a register to genuinely survive an outage it needs four things:
- A local copy of the catalogue. Products, prices, tax rates and barcodes have to be on the device before the connection drops, not fetched on demand.
- Local order storage. Completed sales are written to the device and queued, not thrown away.
- Local receipt printing. The printer is on your counter, not on the internet, so there is no reason a receipt should depend on a server round trip.
- A sync process that cannot lose orders. When the connection returns, every queued order goes to WooCommerce exactly once.
OpenPOS is built as a Progressive Web App, which is what makes this possible. The register caches its own code and the product catalogue on the device, so an outage looks like a status indicator changing colour rather than a blank screen.
What you can and cannot do while offline
Being honest about the boundaries matters more than a marketing checklist. Here is where the line falls.
Works without a connection
- Adding products to the cart, by search, by category grid, or by barcode scan
- Applying per-item and per-cart discounts
- Taking cash payments and calculating change
- Printing receipts to a local thermal printer and opening the cash drawer
- Recording the sale so it reaches WooCommerce later
Needs a connection
- Card payments through an online gateway or a cloud-connected terminal — the payment processor is on the internet, and nothing on your counter can change that
- Validating a coupon that has usage limits, since only the server knows how many times it has been redeemed
- Live stock levels shared between two registers, because that number lives in one database
- Cloud printing services such as PrintNode or Star CloudPRNT, which by definition route through a remote server
The practical takeaway: if you expect outages, keep a local USB or network receipt printer on the counter rather than relying solely on cloud printing, and be ready to take cash while the card terminal is unreachable.
The stock question everyone asks
“If I sell offline, what happens to my inventory?” The honest answer is that stock is decremented when the order reaches WooCommerce, not when the offline sale is rung up. During an outage the register works from the stock figures it cached before the connection dropped.
For the overwhelming majority of shops this is a non-issue: you are selling from shelves you can see, and a short outage does not move enough stock to matter. The edge case to be aware of is the last unit of a product being sold offline in-store at the same moment an online customer buys it. That is an oversell, and no offline system can prevent it — the two registers cannot agree on a number they cannot both reach.
If your margins depend on never overselling a scarce item, keep that item off the POS product grid, or reserve a buffer of stock in WooCommerce. Everything else syncs cleanly.
How syncing back works
Orders taken offline sit in a queue on the device. When the register detects a connection it pushes them to WooCommerce one at a time, each becoming a normal WooCommerce order — visible in WooCommerce → Orders, counted in your reports, and eligible for refunds and exchanges like any other.
Two rules protect you here. First, the queue is not cleared until the server confirms the order was written, so a sync that fails halfway leaves the order queued rather than lost. Second, each queued order carries its own identifier, so a retry cannot create a duplicate.
Do not close the browser mid-outage
The queue lives in the browser’s storage on that specific device. Clearing site data, using a private window, or reinstalling the app before the queue has drained will take unsynced orders with it. Train staff to check that the register shows a clear queue before shutting a device down at the end of a day that had connection trouble.
Testing offline mode before you need it
Do not discover your offline setup on the day the fibre gets cut. Fifteen minutes of testing gives you a procedure your staff can follow under pressure.
- Open the register and let the catalogue finish loading.
- Turn off Wi-Fi on the device, or unplug the router.
- Ring up a sale, take cash, print the receipt.
- Ring up two more, so you can confirm the queue counts correctly.
- Restore the connection and watch the queue drain.
- Check WooCommerce → Orders: three orders, correct totals, correct stock movements.
Write the result down as a one-page procedure and tape it inside the till drawer. The staff member on shift during the next outage will not be the one who read this article.
Frequently asked questions
How long can the register stay offline?
There is no built-in time limit. The constraint is device storage and your own comfort with holding unsynced revenue on a tablet. Sync at least once a day.
Can I take card payments offline?
Not through an online gateway. Some standalone card terminals will store and forward transactions on their own network, independent of your POS — check with your acquirer. From the register’s point of view you would record that as an external payment.
Does offline mode work on a phone?
Yes. OpenPOS installs to the home screen on Android and iOS as a PWA. Phones are fine for a market stall or a pop-up; a tablet is easier to use for a full shift.
What if two registers are offline at once?
Both queue independently and both sync when they reconnect. Orders are never lost. Stock is reconciled in the order the syncs arrive.
Try it yourself
The fastest way to judge an offline mode is to break the connection and see what happens. Open the live OpenPOS demo (login admin / admin123), turn off your Wi-Fi, and try to complete a sale.
If you are still deciding whether WooCommerce can serve as your till at all, start with Can I use WooCommerce as a POS system? When you are ready, OpenPOS is a one-time purchase with no monthly fee and no per-register charge.