Inventory alignment

Shopify Odoo inventory mismatch — why it happens and how to fix it

Shopify and Odoo can show different stock counts for the same SKU even with a connector installed. The causes are specific: unmapped locations pooling stock, webhooks arriving out of order, connectors that don't handle Odoo's stock-quant model correctly, or scheduled jobs that run too infrequently. SyncO fixes Shopify Odoo inventory mismatch with explicit warehouse-to-location mapping, version-aware stock-quant writes, and periodic reconciliation that catches drift before it compounds.

4.9 on Shopify App Store200+ Odoo–Shopify storesFrom $15/monthNo card to trial

Shopify Odoo inventory mismatch

Explicit warehouse-to-location mapping eliminates pooling errors

One of the most common causes of Shopify Odoo inventory mismatch is a connector that maps all Shopify locations to the same Odoo warehouse — or worse, to a virtual location that aggregates stock. SyncO requires explicit mapping: each Shopify location is assigned to a specific Odoo warehouse during setup. Stock counts are then read from and written to that warehouse independently.

Shopify Odoo inventory mismatch

Version-aware stock-quant handling for Odoo v16-v19

Odoo's stock.quant model and stock move shapes differ between v16, v17, v18, and v19. A connector that hardcodes one version's inventory write shape sends incorrect adjustments on other versions, causing counts to drift. SyncO detects the running Odoo version at setup and applies the correct stock-quant writers for that version.

Shopify Odoo inventory mismatch

Periodic reconciliation to catch and correct drift

Even well-configured inventory sync can drift over time — a webhook delivered twice, a stock adjustment made directly in Odoo without going through Shopify, or a network gap that caused a retry to double-apply. SyncO runs periodic inventory reconciliation jobs that read current Odoo on-hand quantities and push corrections to Shopify, resetting any accumulated drift.

Implementation path

From install to live sync

01

Connect Odoo

Verify server, database, credentials, version, and company access.

02

Map operations

Choose locations, warehouses, product rules, order rules, and customer behavior.

03

Run queued sync

Move external API work through retry-safe queues instead of fragile inline actions.

04

Monitor records

Use linked identifiers and logs to understand what synced and what needs attention.

Related

Keep exploring

Read more

From the blog

FAQ

Questions merchants ask before connecting Shopify and Odoo

Why do my Shopify and Odoo stock counts diverge even with a connector?

Common causes are unmapped locations pooling stock, webhooks delivered out of order or missed, and connectors that don't handle Odoo's stock-quant model correctly for the running version. SyncO addresses each with explicit mapping, version-aware writes, and periodic reconciliation.

How does SyncO handle multiple warehouses in Odoo?

Each Shopify location maps to a distinct Odoo warehouse during setup. Stock counts are synced per location-warehouse pair independently — no pooling or averaging.

What is the periodic reconciliation job?

A scheduled job that reads current Odoo on-hand quantities and pushes corrections to Shopify. It runs in addition to webhook-driven sync to reset any drift that accumulated between real-time updates.

Start with your store

See how Synco Connector fits your Shopify and Odoo workflow

Open the app flow or enter your Shopify store domain to start configuring Shopify and Odoo sync.