Integrations

Integrate Shopify with Odoo

Shopify is where your revenue happens; Odoo is where your operation lives. Connecting the two properly means orders, stock, products, payments and refunds move automatically, and your team stops re-keying data between browser tabs.

This is our home turf. We built our own Shopify-Odoo connector rather than reselling someone else’s, and it runs on Shopify’s GraphQL API with scheduled, high-reliability fetching instead of fragile webhooks that drop data during flash sales. The full product has its own section: see the Shopify-Odoo connector for features, pricing and documentation.

What we connect

  • Orders with full fidelity. Line items, exact prices, tax codes, discounts, and separate billing and shipping addresses with resolved country codes. Optional auto-validation allocates stock and preps the picking ticket the moment an order lands.
  • Two-way product and stock sync. Pull an existing Shopify catalogue into Odoo in one click, including variants and descriptions, with automatic weight unit conversion (grams, ounces and pounds normalised to kilograms for freight accuracy).
  • Invoice automation modes. Choose per store: no invoices, draft for finance sign-off, auto-posted to the ledger, or fully paid using payment stages. Match the automation to how your accounts team actually works.
  • Refunds without double payouts. Partial refunds generate correct credit notes with recalculated tax and shipping adjustments, and historical sync logs prevent duplicate refund generation.
  • Multi-store from one database. Multiple Shopify storefronts (B2C, B2B, international) against one Odoo instance, each with its own warehouse mapping, pricelist and currency detection.

How a storefront integration goes live

  1. Catalogue audit before anything syncs. SKUs matched across both systems, variant structures resolved, duplicates cleared. A dirty first import is the gift that keeps costing, so this comes first rather than after.
  2. A written mapping document. Which system owns which truth, which direction each object flows, and how taxes, currencies and shipping charges land in the ledger. You approve it before we build.
  3. Staging sync against a copy of your live store. Real products, real order history, and the awkward records included deliberately rather than filtered out to make the demo look good.
  4. Reconciliation before trust. Order counts, stock levels and tax totals compared across both systems until the numbers agree on evidence rather than optimism.
  5. Cutover sized for your peak. Go-live with logging, failure alerting and volumes tested against your busiest trading day, not an average Tuesday.

Common questions

Why scheduled GraphQL fetching instead of webhooks?
Webhooks silently drop under load, and Black Friday is exactly when you can't afford missing orders. Scheduled GraphQL bulk queries are verifiable, replayable, and stay inside Shopify's rate limits.
We already have another connector installed. Can you switch us over?
Yes. We audit what the existing connector synced, reconcile the data, and cut over without losing order history. This is a common engagement.
Does it work with Shopify POS?
Yes. POS-linked stores sync like any other store, which is how we consolidated a client's online, retail POS and B2B stores into one Odoo instance.
How long does a Shopify-Odoo integration take?
With our maintained connector and a clean catalogue, days to two weeks including testing. Catalogue cleanup is almost always the schedule variable, not the software. Messy variant structures and duplicate SKUs add the time, not the sync itself.
What happens to our order history from before the integration?
We backfill to an agreed depth so reporting has continuity, and reconcile the imported orders against Shopify's own totals. Going back further is possible but rarely worth the effort beyond a year or two of trading.
Which parts break during Black Friday, honestly?
The failure mode we design against is order volume outpacing the sync window. Scheduled GraphQL fetching with resumable batches handles this predictably, which is precisely why we don't rely on webhooks. We also raise sync frequency for the peak period and watch it.

Not sure where to start? Book a free discovery call and we’ll map your current setup, or request a free Odoo health check if you’re already running Odoo.

Next step

Ready to fix your ops?

Book a free discovery call. We'll look at your current setup and tell you honestly whether Odoo is the right move and what it would involve.