How to set up Shopify inventory two-way sync
To set up Shopify inventory two-way sync in Final, go to Settings → Integrations → Shopify → Inventory, map each Shopify fulfillment location to a Final Outlet, then enable Two-way inventory sync. Sales on either platform update the other in real time, and a background process corrects any discrepancies automatically.
Shopify inventory two-way sync
With Shopify inventory two-way sync enabled, every stock movement on either platform is reflected on the other automatically. Sales on Shopify decrement your Final inventory; sales at your Final Station update Shopify. A background reconciliation process corrects any discrepancies that arise from missed events, so your counts stay accurate without manual intervention.
This guide covers setup, location mapping, the audit log, and how to handle conflict alerts.
Before you start
Your Shopify store must already be connected to Final. If you haven't done that yet, go to Settings → Integrations → Shopify and complete the connection first.
You need at least one Outlet configured in Final that corresponds to a fulfillment location in Shopify.
You must have admin access to both your Final account and your Shopify store.
Step 1: Open the Shopify integration settings
Sign in to the Merchant Hub.
Go to Settings → Integrations → Shopify.
Select the Inventory tab.
Step 2: Map your Shopify locations to Final Outlets
Final fetches your active Shopify fulfillment locations automatically.
In the Inventory Location Mapping section, you'll see a row for each Shopify fulfillment location.
Use the dropdown next to each Shopify location to select the corresponding Final Outlet.
Repeat for every location you want to keep in sync.
Click Save configuration.
Any Shopify location that is not mapped will be skipped — inbound stock events from that location are logged but do not update your Final inventory.
Step 3: Enable two-way sync
Once your locations are mapped, toggle Two-way inventory sync to on. Both directions activate together:
Shopify → Final: Sales and adjustments on Shopify update your Final stock in real time.
Final → Shopify: Sales and stock adjustments in Final are pushed to the mapped Shopify fulfillment location.
How the sync works
Real-time updates Each sale or adjustment triggers an immediate sync event. The system processes updates as deltas — the change in quantity — rather than overwriting the full count, which prevents stale data from replacing accurate figures when two events arrive close together.
Automatic drift correction A background process periodically compares inventory levels across both platforms. If a discrepancy is detected — for example, because a webhook was delayed — it corrects the count automatically. You don't need to do anything.
Resync on demand If you want to force a full refresh of stock levels from Shopify, go to Settings → Integrations → Shopify → Inventory and tap Resync imported data. This re-baselines all mapped SKUs from the current Shopify state.
Viewing the sync audit log
Every inventory sync event is recorded. To review it:
Go to Dashboard → Inventory → Sync Activity.
The log shows each event's source platform, timestamp, SKU, quantity change, and resolution status.
Use the date filter to narrow the view to a specific period.
The audit log is useful for tracing why a stock count changed and confirming that a specific sale was synced correctly.
Handling conflict alerts
In rare cases, the system may be unable to resolve a discrepancy automatically after several retry attempts. When this happens, a conflict alert appears in Dashboard → Inventory Alerts.
Each alert shows:
The affected SKU
The conflicting quantities on each platform
The retry history
From the alert, you can review the details and use Force sync to manually push one platform's count to the other. Choose the platform whose count you trust as accurate.
Tips and edge cases
Unmapped locations: Stock events from Shopify locations that aren't mapped to a Final Outlet are logged as skipped. They don't affect your Final inventory. Map the location if you want those events to sync.
Shopify API limits: If Shopify's API rate limit is reached, outbound updates are queued and retried automatically. No events are lost.
Reinstalling the Shopify integration: If you disconnect and reconnect Shopify, Final re-baselines inventory from the current Shopify state and revives any archived sync records. Your location mappings are preserved.
Catalog sync is separate: Two-way inventory sync is configured independently from catalog (product) sync. Turning inventory sync on or off does not affect your catalog settings.
