Offline Mode
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 Data | Purpose |
|---|---|
| Products | Product catalog for browsing and adding to cart |
| Categories | Category filters for the product grid |
| Customers | Customer records for lookup and attachment |
| Store settings | Tax rates, payment methods, enabled features |
| Promotions | Active sale campaigns and freebie rules |
| Label templates | Templates for offline label printing |
| Quality tier settings | Quality tier pricing matrices |
| Loyalty rewards | Available loyalty rewards for redemption |
| Loyalty tiers | Tier definitions and thresholds |
| Completed sales | Recent completed sales for compliance tracking |
| Pending time actions | Queued clock-in/out and break actions |
| Pending cash drops | Queued 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:
| Indicator | Meaning |
|---|---|
| Online | Connected to the server, all features available |
| Offline | No server connection, operating from local cache |
| Syncing | Reconnected and syncing queued data to the server |
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
- You ring up items and complete payment as normal.
- Instead of sending the sale to the server, Brother POS saves it to the offline queue in local storage.
- A pending sale counter appears showing how many sales are waiting to sync.
- When the connection returns, the sync manager automatically sends queued sales to the server in order.
- Successfully synced sales move from the pending queue to the server database.
What Is Saved Offline
Each offline sale stores the complete transaction:
| Data | Stored? |
|---|---|
| Line items (products, quantities, prices) | Yes |
| Payment method and amount | Yes |
| Customer (if attached and cached) | Yes |
| Discounts (item and order level) | Yes |
| Tax calculations | Yes |
| Timestamp | Yes |
| Cashier/register info | Yes |
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:
- Pending sales are sent to the server one at a time, in chronological order.
- Each sale is confirmed by the server before the next one is sent.
- If a sale fails to sync, the error is recorded and the sale remains in the queue for retry.
- After all pending sales are processed, a full data refresh occurs to pick up any changes made while offline.
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.
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.
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
| Feature | Notes |
|---|---|
| Product browsing | Uses cached product catalog |
| Category filtering | Uses cached categories |
| Adding items to cart | Full functionality |
| Weight selection | Presets and manual entry work; USB scale still works locally |
| Discounts (manual) | Percentage and dollar discounts work |
| Tax calculation | Calculated using cached tax rates |
| Cash payments | Full functionality |
| Debit/card payments | Recorded (actual card processing depends on your terminal's offline capability) |
| Receipt printing | Works if the printer is on the same local network |
| Label printing | Works using cached templates and local command generation |
| Barcode scanning | Full functionality |
| Time tracking | Clock-in/out and break actions are queued locally when offline and synced when connectivity returns |
Limited Offline
| Feature | Limitation |
|---|---|
| Customer lookup | Only cached customers are available; new customers added elsewhere will not appear |
| Loyalty points | Points are calculated from cached data; may not reflect the most recent balance |
| Sale campaigns | Uses cached campaign data; newly created or expired campaigns may be stale |
| Stock levels | Displayed from cache; may not reflect sales made on other registers |
| Purchase limits | Daily totals from cache; sales on other registers may not be reflected |
Not Available Offline
| Feature | Reason |
|---|---|
| WooCommerce orders | Requires server connection to fetch online orders |
| Integrated terminal payments | Requires 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 verification | Some restricted actions may have limited functionality offline |
| Returns processing | Requires server to look up original sale |
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.
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.
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
- The POS automatically switches to offline mode.
- Continue processing sales normally. Each sale is saved to the local queue.
- When the internet returns, sales sync automatically in the background.
- 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:
- Open the POS in the browser.
- Any pending sales from before the power loss are still in the queue.
- When online, they sync automatically.
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
| Problem | Solution |
|---|---|
| POS shows "Offline" but internet is working | Try 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 syncing | Check 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 wrong | Prices are from the cache. If prices were updated while offline, they refresh on the next sync. |
| Customer not found | The 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" message | The 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 sync | Safari 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
- Do not clear browser data on registers. This deletes the local cache including any pending sales.
- Monitor the pending sales counter. A growing count means sales are not syncing. Investigate sooner rather than later.
- Reconnect as soon as possible. While offline mode works reliably, keeping the cache fresh reduces the chance of stale data causing issues.
- Use a wired network connection when possible. Ethernet is more reliable than Wi-Fi for registers that need consistent connectivity.
- Check pending sales at end of shift. Before closing the drawer, verify that all sales have synced. If any are stuck, retry or escalate.
- 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?
- Time Tracking -- Clock in/out at the POS
- Manager Override -- How authorization works, including offline considerations
- Sales History -- View pending and completed sales