Skip to main content

Offline Mode

Cashier Manager

Brother POS is a Progressive Web App (PWA) designed to keep working even when the internet connection drops. Sales are queued locally, product and customer data are cached, and everything syncs automatically when connectivity returns. This page explains how offline mode works, what features are available, and what limitations to expect.


How Offline Mode Works

Brother POS maintains a local database in the browser that contains cached copies of your store's essential data:

Cached DataPurpose
ProductsProduct catalog for browsing and adding to cart
CategoriesCategory filters for the product grid
CustomersCustomer records for lookup and attachment
Store settingsTax rates, payment methods, enabled features
PromotionsActive sale campaigns and freebie rules
Label templatesTemplates for offline label printing
Quality tier settingsQuality tier pricing matrices
Loyalty rewardsAvailable loyalty rewards for redemption
Loyalty tiersTier definitions and thresholds
Store credit balancesPer-customer store credit balances for offline payment
Gift card balancesActive gift card balances for offline lookup
House account balancesPer-customer house account balances
Completed salesRecent completed sales for compliance tracking
Pending time actionsQueued clock-in/out and break actions
Pending cash dropsQueued cash drop records

When the network is available, this cache is kept up to date through periodic synchronization. When the network drops, the POS seamlessly switches to using cached data.


Detecting Network Status

Brother POS monitors your connection status continuously. A status indicator in the POS header shows your current state:

IndicatorMeaning
OnlineConnected to the server, all features available
OfflineNo server connection, operating from local cache
SyncingReconnected and syncing queued data to the server
info

The transition between online and offline is automatic. You do not need to manually switch modes. The POS detects the connection state and adjusts behavior accordingly.


Making Sales Offline

The most critical offline capability is the ability to continue processing sales.

How It Works

  1. You ring up items and complete payment as normal.
  2. Instead of sending the sale to the server, Brother POS saves it to the offline queue in local storage.
  3. A pending sale counter appears showing how many sales are waiting to sync.
  4. When the connection returns, the sync manager automatically sends queued sales to the server in order.
  5. Successfully synced sales move from the pending queue to the server database.

What Is Saved Offline

Each offline sale stores the complete transaction:

DataStored?
Line items (products, quantities, prices)Yes
Payment method and amountYes
Customer (if attached and cached)Yes
Discounts (item and order level)Yes
Tax calculationsYes
TimestampYes
Cashier/register infoYes

Cached Balances and Local Decrement

Brother POS caches customer store credit, gift card, and house account balances locally so these payment methods keep working while offline.

How It Works

  • At login and on the background sync tick, the POS pre-caches each customer's non-zero store credit and house account balances and active gift card balances.
  • When offline (or when the server is unreachable), store credit, gift card, and house account lookups fall back to the cached balance instead of failing.
  • After every sale that uses one of these methods -- online or offline-queued, single payment or split -- the POS decrements the cached balance locally.

This local decrement keeps the cache accurate during an offline run. If the same customer makes a second offline sale, the POS already reflects the balance deducted by the first sale, so it cannot over-spend a depleted balance within the offline session.

The server is always authoritative

Local decrement only keeps the on-device cache aligned. The server recalculates and confirms the real balance when sales sync, and the next full sync overwrites the cached values. Balances can still be slightly stale relative to activity on other registers.


Data Synchronization

Initial Sync

When you first load the POS, a full sync downloads:

  • All active products with prices and stock levels
  • All categories
  • Recently active customers
  • Store settings and tax configuration
  • Active promotions and campaigns
  • Label templates (if label printing is enabled)

Sync metadata (last sync time, record count, duration) is tracked for each data type.

Ongoing Sync

While online, the POS periodically checks for updates:

  • Products and categories -- refreshed based on sync interval
  • WooCommerce orders -- fetched from the server when the WooCommerce tab is viewed; the general sync manager runs periodically
  • Pending sales queue -- attempted immediately when connectivity is detected

Sync After Reconnection

When the POS detects that the network has returned:

  1. Pending sales are sent to the server one at a time, in chronological order.
  2. Each sale is confirmed by the server before the next one is sent.
  3. If a sale fails to sync, the error is recorded and the sale remains in the queue for retry.
  4. After all pending sales are processed, a full data refresh occurs to pick up any changes made while offline.
Offline cash sales are not blocked by rounding drift

An offline sale is already completed and paid at the register before it syncs. When it reaches the server, the server re-derives the total from the line items, and small differences (for example, discount or tier-pricing recompute drift) can make that total differ slightly from the cash the cashier actually collected. For sales that originated in the offline queue, Brother POS accepts the sale and logs the difference for audit instead of rejecting it -- this prevents an already-paid sale from getting stuck forever in the retry loop. Online sales are still validated strictly.


Viewing Pending Sales

You can monitor the offline queue from the POS:

The pending sales count is shown as a badge on the sync status indicator in the POS header. This tells you how many sales are waiting to sync.

info

Individual pending sales cannot be viewed in detail from the POS. The sync status badge in the header is the primary way to monitor how many sales are waiting to sync.

Automatic Retry

The sync manager automatically retries failed sales multiple times. When connectivity returns, pending sales are sent to the server one at a time in chronological order.

info

The sync manager handles retries automatically. No manual intervention is needed.


Feature Availability Offline

Not all POS features work identically when offline. Here is what to expect:

Fully Available Offline

FeatureNotes
Product browsingUses cached product catalog
Category filteringUses cached categories
Adding items to cartFull functionality
Weight selectionPresets and manual entry work; USB scale still works locally
Discounts (manual)Percentage and dollar discounts work
Tax calculationCalculated using cached tax rates
Cash paymentsFull functionality
Debit/card paymentsRecorded (actual card processing depends on your terminal's offline capability)
Receipt printingWorks if the printer is on the same local network
Label printingWorks using cached templates and local command generation
Barcode scanningFull functionality
Time trackingClock-in/out and break actions are queued locally when offline and synced when connectivity returns

Limited Offline

FeatureLimitation
Customer lookupOnly cached customers are available; new customers added elsewhere will not appear
Loyalty pointsPoints are calculated from cached data; may not reflect the most recent balance
Store credit / gift card / house accountBalances are read from the cache and decremented locally; may not reflect activity on other registers until the next sync
Sale campaignsUses cached campaign data; newly created or expired campaigns may be stale
Stock levelsDisplayed from cache; may not reflect sales made on other registers
Purchase limitsDaily totals from cache; sales on other registers may not be reflected

Not Available Offline

FeatureReason
WooCommerce ordersRequires server connection to fetch online orders
Integrated terminal paymentsRequires server to communicate with payment processor API
Sales history (server)Only pending offline sales are visible; completed server-side sales are not available
Manager override verificationSome restricted actions may have limited functionality offline
Returns processingRequires server to look up original sale
warning

If your store relies on compliance features like daily purchase limits, be aware that offline mode cannot guarantee real-time enforcement across multiple registers. The limits are checked against cached data, which may be stale.


Cart Calculation on Flaky Connections

Cart totals are calculated by the server while online so that pricing, discounts, and promotions are always exact. To keep the register responsive when the connection is poor, cart calculation:

  • Uses a fast 3-second timeout per request (much shorter than the multi-minute timeout used for bulk product sync). A slow server no longer leaves the cart stuck on stale numbers.
  • Falls back to the offline calculation when the server request times out, hits a network error, or returns a server (5xx) error. Validation and authentication errors (4xx) still surface normally.

The net effect on flaky-internet stores is that the cart always reaches a correct total within a few seconds -- either from the server or from the local offline mirror.

The offline calculation carries each line item's weight preset through the calculation, so offline sales of preset weights (e.g., 14g and 7g of the same flower) keep their correct tier-aware prices when they sync.


Offline Tax Calculation

When offline, Brother POS calculates taxes locally using cached store settings:

  • Standard tax (e.g., 13% HST) is applied as configured.
  • Split tax (GST/PST) uses cached rates for each component.
  • Additional taxes (e.g., vapour products tax) use cached rates.

Tax calculations are identical to online mode as long as the tax configuration has not changed since the last sync.


Offline Promotions

Active sale campaigns and freebie rules are cached and evaluated locally:

  • Percentage and dollar-off campaigns -- applied based on cached rules.
  • Freebie campaigns -- spend threshold tracking and free item injection work offline.
  • Date-range campaigns -- start and end dates are checked against the local device clock.
info

If a campaign was created or modified while you were offline, those changes will not take effect until the next sync. Similarly, a campaign that expired while offline may still appear active until the cache refreshes.


Common Scenarios

Internet Drops During a Busy Period

  1. The POS automatically switches to offline mode.
  2. Continue processing sales normally. Each sale is saved to the local queue.
  3. When the internet returns, sales sync automatically in the background.
  4. The pending sales counter decreases as each sale is confirmed.

Register Loses Power While Offline

Locally cached data persists across browser restarts. When you restore power:

  1. Open the POS in the browser.
  2. Any pending sales from before the power loss are still in the queue.
  3. When online, they sync automatically.
tip

Offline data is stored in the browser profile. If you clear browser data (cookies, site data), the pending sales queue is lost. Never clear browser data on a register with pending sales.

Multiple Registers Offline Simultaneously

Each register maintains its own independent offline queue. When connectivity returns, sales from each register sync independently. There is no conflict between registers -- each sale gets a unique identifier.

Prolonged Offline Period

If the POS remains offline for an extended period (hours or days):

  • Sales continue to queue without limit.
  • Product prices and stock levels become increasingly stale.
  • Customer data may not reflect recent changes.
  • When connectivity returns, all queued sales sync in order.

Troubleshooting

ProblemSolution
POS shows "Offline" but internet is workingTry refreshing the browser. The connection check may need to re-establish. Verify you can reach the Brother POS server from this device.
Pending sales not syncingCheck the sync status indicator in the header for error information. Common issues: server unreachable, authentication expired (re-login), or data validation errors.
Product prices seem wrongPrices are from the cache. If prices were updated while offline, they refresh on the next sync.
Customer not foundThe customer was added on another register or from the admin panel while this register was offline. They will appear after the next sync.
"Storage error" messageThe browser's local storage may be full or corrupted. Check available disk space. In extreme cases, the browser profile may need to be reset (back up pending sales first).
iOS Safari hangs on syncSafari on iOS can occasionally hang on storage operations. The POS has a built-in timeout to prevent permanent hangs. Force-close and reopen the browser if this occurs.

Best Practices

  1. Do not clear browser data on registers. This deletes the local cache including any pending sales.
  2. Monitor the pending sales counter. A growing count means sales are not syncing. Investigate sooner rather than later.
  3. Reconnect as soon as possible. While offline mode works reliably, keeping the cache fresh reduces the chance of stale data causing issues.
  4. Use a wired network connection when possible. Ethernet is more reliable than Wi-Fi for registers that need consistent connectivity.
  5. Check pending sales at end of shift. Before closing the drawer, verify that all sales have synced. If any are stuck, retry or escalate.
  6. Install the POS as a PWA. Installing the POS to the home screen or desktop provides an app-like experience and additional offline resilience.

What's Next?