Keep tender and completion unmistakable.
While offline, tender is cash only; cards, debit, rewards wallet, and split tender wait for a connection. A local queue is not a completed sale; the sale is complete only after the server accepts replay. The receipt remains pending until server acceptance.
The browser exposes pending, syncing, failed, and completed states. Staff keep the workstation available, protect its browser storage, explain the pending receipt, and assign one owner to any replay that remains in the queue.
Let current server rules rebuild the result.
The server ignores the queued client price, reloads the current server catalog, and recalculates pricing, discounts, and tax. Referenced products, modifiers, permissions, tax, age-verification attestation, customer context, tip, and explicit cash still enter current validation.
Replay requires a current open register session at the selected location; without one, the sale remains unsynchronized. That keeps accepted cash attached to an actual drawer instead of assigning it to a convenient register after the fact.
Retry one identity, then reconcile one accepted sale.
A client transaction identity gives the server duplicate replay protection. Automatic sync and Sync Now can retry the same pending identity without intentionally creating a fresh sale for every attempt, while every retry still faces current product, permission, pricing, tax, location, and drawer checks.
After reconnect, Sync Now retries pending sales; accepted replays clear from the queue, while unsuccessful replays remain pending. The product leaves unsuccessful replays pending; its online banner shows the remaining count as pending sync, and on a sync error says “Sync failed for some transactions (N remaining).” Inventory and reporting update only after the server accepts the replay.
After acceptance, compare the booked transaction with cash collected, drawer movement, receipt, inventory, and reporting. The server receipt becomes available after synchronization.
Drill the exact workstation before relying on it.
Use the intended browser, storage policy, network, register, peripherals, and employee roles. Test a clean replay, a simultaneous automatic/manual retry, and a controlled validation problem with seeded data. Document who communicates with the customer and who owns an unresolved queue.
Connect the procedure to cash drawer management, inventory, reporting, and permissions. Then qualify the store context for retail, convenience, smoke shops, vape shops, liquor stores, restaurants, bars, or cafes.