Every sale at the till had to go through, connection or not. WooCommerce was already running the store so the POS just needed to plug into it cleanly, sync back without duplicates, and never hold up a queue because the router dropped.
A PWA on the cashier’s laptop that autosync and works fully online. The catalog (products, variations, stock) syncs read-only from WooCommerce. Each sale gets a client-generated ULID at the moment it’s created, so the sync queue is idempotent: push it once, push it ten times, one order lands. Cash and manual MoMo work fully offline; live MoMo (Moolre) and card (Paystack) switch on when a connection returns.
A sale is never blocked and never lost. Stock conflicts are flagged rather than refused; the till keeps moving, and the discrepancy gets resolved later. A dropped connection mid-push can’t create a duplicate order in WooCommerce.