Beta — Automatic sync is currently in beta. We're still refining it — if something doesn't work as expected, please let us know so we can fix it.
Supported Integrations
Auto-sync works with the following integrations:
Shopify (draft orders or confirmed orders)
Lightspeed R-Series (layby or regular sales)
Lightspeed X-Series (sales)
Xero (invoices)
Saledock (sales orders)
Getting Started
1) Navigate to your integration settings
Go to Configuration > POS & Accounting Integrations and scroll to your connected integration.
2) Enable automatic sync
Find the Automatic Sync section and turn on the master toggle: "Enable automatic sync to [Integration]".
Once enabled, additional settings will appear below.
Auto-Sync Settings
When the master toggle is on, you can fine-tune exactly when syncing happens.
When to Sync
These settings control the default behaviour of the "Sync to POS" option that appears when creating jobs, invoices, and sales. You can still override the default per action.
Setting | What it does |
Sync when a job is created | New jobs will default to syncing their invoice. You can turn this off for individual jobs when creating them. |
Sync when products/services are changed | When you add or change items on an invoice, the order in your POS updates automatically. |
Sync when creating an invoice | Invoices created from the Create Invoice dialog will default to syncing. Overridable per invoice. |
Sync when completing a sale | Sales from the Create Sale flow will default to syncing. Overridable per sale. |
Sync on online bookings | Online bookings can trigger a sync. When enabled, a dropdown appears to choose when: "When booking is created" or "When job is accepted". |
When to Mark as Deleted
Setting | What it does |
Mark order as deleted when job is cancelled/rejected | When a job is cancelled or rejected, the linked POS order will be voided, archived, or deleted in the external system. |
Integration-Specific Settings
Each integration has additional settings below the auto-sync section. Here's what to look for.
Shopify
Setting | What it does |
Use draft orders | Creates draft orders instead of confirmed orders. Recommended for auto-sync — draft orders support in-place updates. If you enable auto-sync without this, a warning dialog explains that orders will be cancelled and replaced on each sync. |
Create products automatically if missing | Auto-creates products in Shopify when they're referenced on an invoice but don't exist yet. |
Complete draft order when invoice is "Paid" | When an invoice is marked as Paid in BikeBook, the linked Shopify draft order is converted to a confirmed order and marked as paid. Requires "Use draft orders" to be enabled. |
Reserve inventory on draft orders | Reserves stock in Shopify when the draft order is created. Requires "Use draft orders". |
Reservation expiry (hours) | Hours until the inventory reservation expires. Set to 0 to use Shopify's default (midnight). |
Webhook settings (under a separate "Webhook Settings" header):
Set invoice to "Paid" when order is paid — When a Shopify order is marked as paid, the linked BikeBook invoice is set to paid automatically.
Set job to "Completed" when order is paid — When a Shopify order is paid, the job status updates to Completed.
Xero
Under the auto-sync section, Xero has additional default options:
Setting | What it does |
Default Xero invoice status | Choose whether auto-synced invoices are created as Draft or Authorised in Xero. You can override this per invoice from the sync dialog. |
Sync payments to Xero by default | When enabled, payments recorded in BikeBook are automatically pushed to Xero alongside invoice updates. |
Below auto-sync, Xero also has:
Setting | What it does |
Enable Xero end-of-day summary | Creates one aggregated Xero invoice at a configurable time, covering all paid invoices not yet sent. Has sub-settings for contact name and send time. |
Lightspeed R-Series
Setting | What it does |
Enable layaway sales | When on, sales are marked as layaway in Lightspeed and include any partial payments from the invoice. When off, regular incomplete sales are created. |
Lightspeed X-Series
No additional settings beyond the auto-sync section.
Saledock
Setting | What it does |
Set invoice to "Paid" on completion | When a Saledock order is completed, the BikeBook invoice is marked as paid automatically. |
Set job to "Completed" on completion | When a Saledock order is completed, the job status updates to Completed. |
How Auto-Sync Works
Once enabled, here's what happens behind the scenes:
You create or update a job/invoice/sale as normal.
If the "Sync to POS" option is on (defaulted by your settings above), changes are queued automatically and synced in the background.
The sync status is visible on the invoice — look for the POS sync icon next to the invoice.
Each invoice has its own per-invoice auto-sync toggle, so you can turn syncing off for a specific invoice without changing the global setting.
The Sync Dialog
Click the POS sync icon on any invoice to open the sync dialog. This is your control centre for that invoice's sync status.
What you'll see:
Sync status — Whether the invoice is synced, syncing, pending, failed, or not yet sent.
External reference — The order/invoice ID in the external system, with a link to view it directly.
Auto-sync toggle — Enable or disable auto-sync for this specific invoice.
Manual actions — Re-sync, send as new, retry (see below).
Sync history — A log of every sync event with timestamps and details.
Manual Actions
Even with auto-sync enabled, you can always take manual action from the sync dialog.
Re-Sync to [Integration]
Push the latest invoice data to the existing order in your POS. Use this if you've made changes and want to force an immediate sync rather than waiting for the background worker.
Send as New [Order Type]
Create a brand new order in your POS. You'll be asked whether to cancel/void the existing order first. Use this if the original order is corrupted or you need a clean start.
View in [Integration]
Opens the linked order directly in your POS system (Shopify admin, Lightspeed back office, Xero, etc.).
Retry
Appears when the last sync failed. Retries the failed operation. You can also expand the failed event in sync history to see the error details.
Xero Send Options (Per-Invoice)
When sending to Xero manually (not via auto-sync), the sync dialog shows additional options:
Save as Draft — The invoice is created in Xero as a draft. Review and approve it in Xero before payments are applied.
Save as Authorised — The invoice is created as authorised and ready for payments.
Sync payments to Xero — Push BikeBook payments to Xero for this invoice. Only available when the status is Authorised.
These options use your business-level defaults (from Settings) but can be overridden per invoice. When auto-sync is active on the invoice, the worker uses the business defaults automatically — the per-invoice options are hidden to avoid confusion.
Understanding Sync History
The bottom of the sync dialog shows a log of sync events for that invoice. Click Show More to see the full history.
Event Statuses
Status | Meaning |
Synced | Successfully synced to the POS. |
Failed | Something went wrong. Expand the event to see the error. |
Syncing... | Currently being processed. |
Pending | Queued and waiting to be processed. |
Superseded | A newer event replaced this one before it was processed. |
Event Details
Expand any event to see:
Trigger — What caused the sync (e.g. "Invoice item added", "Payment added to invoice", "Invoice marked as paid").
Response summary — For successful syncs: line count, order total, order status, POS reference.
Change details — What changed: items added/removed, discount changes, customer changes, payment details.
Error message — For failed syncs: a friendly explanation and the raw error from the POS.
Troubleshooting
"Why isn't my invoice syncing?"
Check that both the global auto-sync toggle (in Settings) and the per-invoice auto-sync toggle (in the sync dialog) are turned on. Also make sure the relevant "When to sync" sub-settings are enabled.
"The dialog says auto-sync is paused (disabled in settings)"
The per-invoice toggle is on, but the global setting is off. Go to Configuration > POS & Accounting Integrations and enable the master toggle. There's a shortcut button in the dialog that takes you straight there.
"Sync failed — what do I do?"
Open the sync dialog and expand the failed event to see the error. Common causes:
Credentials expired — Reconnect your integration in Settings.
Order not found — The order may have been deleted in the POS. Try "Send as new".
Rate limited — The POS is temporarily limiting requests. The sync will retry automatically.
You can always click Retry or Send as new to recover.
"Lightspeed register doesn't show updated items"
If the sale is currently open in the Lightspeed register, you may need to dismiss it and re-open it from Sales History to see the updated items. This is a Lightspeed register caching behaviour, not a sync issue.
"Sync is stuck on 'Syncing...'"
If a sync was interrupted (e.g. you stopped the server mid-request), stuck events auto-recover within 2 minutes. The background worker detects stale processing events and resets them to Pending for retry.
Still stuck?
Feel free to reach out to support and they will be happy to help you.
Tips
Use auto-sync for day-to-day work — Let it handle the routine. Use manual send for one-off corrections or edge cases.
Shopify: enable draft orders — Draft orders support in-place updates, which is much smoother than cancelling and replacing confirmed orders on every change.
Xero: use "Authorised" status if you want payments to sync automatically. Draft invoices in Xero cannot receive payments.
Check the sync dialog if something looks off — the sync history tells you exactly what happened, when, and why.
NEED HELP?
If you're still unsure about any of these settings, start by checking your auto-sync settings under Configuration. Most sync issues are caused by a setting being off or a credential that needs refreshing.
Any issues please feel free to reach out to support and they will be happy to help you.















