Ecom Store Pro

How to Connect Shopify to Odoo: Native Connector or App

Connect Shopify to Odoo with Odoo's own connector for 19 and 20 or a third-party app: who can use each route, setup steps, what syncs and how often.

Listen to a short brief of this article
Hands-free while you multitask

The short version

Odoo has its own Shopify connector for versions 19.0 and 20.0, which pulls Shopify orders, products and customers into Odoo, pushes stock back and syncs deliveries and, under set conditions, returns and refunds, with orders pulled every 10 minutes by default.

It runs on Odoo.sh, which Odoo's App Store listing extends to on-premises hosting, not on Odoo Online, and its Odoo module is a paid Odoo Apps Store listing, shown at €177.79 for version 19.0, including the eCommerce Engine module it requires, in euros for our location on November 8, 2026; its author calls the fee recurring.

US and Canadian stores can link it through Odoo's Public app on the Shopify App Store, listed at $100 a month on November 8, 2026; everywhere else you connect it with a custom app built in Shopify's Dev Dashboard.

On Odoo Online, on Odoo 18 or older, or when you need webhooks, look at third-party connectors on the Shopify App Store; the five we compare had entry plans from $9 to $35 a month on November 8, 2026, so check each listing's versions and hosting.

If your stock, orders and books already live in Odoo, the real question is which connection route your setup allows. Odoo's own connector moves orders, products and customers from Shopify to Odoo, syncs stock and deliveries both ways and, under set conditions, brings in returns and refunds, according to Odoo's connector documentation, but only on some versions and hosting types.

It doesn't fit every Odoo setup, though. Your route depends on where your Odoo runs, which version it is, where your business is based and what has to sync. This guide covers who can use the native connector, the two ways to connect it, what it syncs and how often, and where to go when it doesn't fit.

Four Ways to Connect Shopify and Odoo

Key takeaway

Each route installs in a different place, and that place decides what it can reach. A module lives inside Odoo, so it needs hosting that accepts modules; an App Store app installs on the Shopify side, and of the five we compare only OdooSyncO's listing says whether it needs an Odoo module (it says no); an iPaaS tool runs the triggers you build.

The four routes
RouteWhere you get itOdoo hostingOdoo versionsHow it syncsWhat it costs
Odoo's own connectorThe Shopify module on the Odoo Apps Store; in the US and Canada, also Odoo's Public app on the Shopify App StoreOdoo.sh in Odoo's docs; Odoo.sh or on-premises in its App Store listing; not Odoo Online19.0 and 20.0Scheduled: orders every 10 minutes by default, no webhooksModule shown at €177.79 for version 19.0, including the eCommerce Engine module it requires, in euros for our location on November 8, 2026; its author calls the fee recurring. The Public app lists $100 a month
Third-party Shopify App Store appShopify App StoreVaries; two of the five we compare name Odoo OnlineVaries; the listings we read name versions from 13 to 20Varies; several listings say real timeFrom $9 to $35 a month at the entry plan, for the five we compare
Third-party Odoo Apps moduleOdoo Apps StoreInstalled in Odoo; Odoo's Apps FAQ says third-party apps sold on the Odoo Apps Store can't be used on Odoo Online unless they are data-modulesVentorTech 13 to 20; Emipro 8.0 to 20.0VentorTech says webhooksPriced on each module's Odoo Apps page
iPaaS: Zapier or n8nZapier or n8nZapier's Odoo CRM integration works with instances cloud hosted at odoo.com, and Zapier also lists an Odoo ERP Self Hosted app; n8n's page doesn't name Odoo hostingn8n's page data says API-key sign-in requires Odoo 19+, though its visible text and Zapier's page name no versionsTriggers and actions you buildThe iPaaS plan

Odoo 19.0 documentation, the Shopify App Store and the Odoo Apps Store, read November 4 and 8, 2026. App Store prices are the listings' base prices in US dollars; third-party details are what each vendor states about its own product.

A fifth option, building your own integration on Shopify's Admin API, is outside this guide: what such a build involves, and what it costs next to a connector, is covered in the custom build route of our ERP integration guide.

Who Can Use Odoo's Own Shopify Connector?

Key takeaway

Odoo's setup page states the conditions in one line: the integration only works with Odoo-SH and requires version 19.0 or 20.0. When we checked on November 4, 2026, the connector's page existed only in Odoo's 19.0 documentation. You also need a Shopify account and the Shopify connector app, and the Odoo Sales app installs with it.

That connector app is a module, Shopify by Odoo IN Pvt Ltd on the Odoo Apps Store, for versions 19.0 and 20.0. That store tags the module Third Party, and its page calls it “the only third-party Shopify app supported by Odoo”, while Odoo's documentation and YouTube channel present it as the Shopify connector. Odoo's four connector pages don't name an edition, Community or Enterprise, and neither they nor the Odoo and Odoo.sh pricing pages we read say the module is included in a subscription.

When we read its page on November 8, 2026, it showed €177.79 for version 19.0, in euros for our location, and it says that displayed price includes the eCommerce Engine module it requires.

Asked on that page whether the fee is one-time or recurring, the module's author answered on November 4, 2026: “Recurring as we maintain the future version and bug fixes.” The page shows no billing period next to that price, so ask the module's author, through the page's support link (it asks you to sign in), what recurs and how often.

The second piece is regional. Odoo Inc's Odoo Integration app on the Shopify App Store is the Public app, and its listing says it is only available to merchants in the US and Canada.

On November 8, 2026 it listed $100 a month with a 15-day free trial. Neither the module's page nor the listing says whether the Public app's monthly charge replaces the module's fee, so ask Odoo before you budget; the listing adds that Odoo Inc may bill external charges separately from your Shopify invoice.

Outside the US and Canada, the same connector is linked through a custom app you create yourself, described under manual setup.

Odoo's docs and its App Store listing disagree on hosting

Odoo's setup page, read November 4 and 8, 2026, says the integration only works with Odoo.sh. Odoo Inc's Shopify App Store listing, read on the same days, says it “Works with Odoo.sh and on-premises hosting only; not supported on Odoo Online (SaaS).” The module's own Odoo Apps page also marks Odoo Online as unavailable and Odoo.sh and On Premise as available.

All three rule out Odoo Online. If your Odoo is self-hosted, confirm support with Odoo before you rely on it, and in the US and Canada use the listing's 15-day free trial to test the connection on a copy of your database.

What the Connector Syncs, and How Often

Key takeaway

Before you pick a route, check that the native connector carries what you need. The three parts below cover the direction of each kind of data, the schedule, and how a stock count reaches Shopify.

Which data moves in which direction

Key takeaway

Odoo's overview page sets out the direction of each data type in one table, reproduced here with what each row means for your setup.

What syncs, by direction
DataDirectionWhat to know
OrdersShopify → OdooOnly orders confirmed in Shopify are imported; a cancellation in Shopify cancels the Odoo order at the next sync
ProductsShopify → OdooMatched by SKU; a product with no SKU in Shopify is not imported
CustomersShopify → OdooMatched by email and billing name; with no match, Odoo creates a new customer
InventoryBoth waysOdoo pushes stock after each order pull; pulling stock from Shopify is for setup or fixing a mismatch
Fulfillments and deliveriesBoth waysDepends on whether deliveries are handled in Odoo or on the e-commerce platform
ReturnsShopify → OdooSynced when deliveries are handled in Shopify; handled manually in Odoo when deliveries are handled in Odoo
Refunds and credit notesShopify → OdooImported as draft credit notes when Create Invoice is on; Odoo's guide says the refund is skipped unless the order has one invoice, in the Posted stage, and lists other exceptions, such as insufficient refund data
Invoices and paymentsCreated in OdooWith Create Invoice on, fully paid orders get an invoice and a registered payment; Odoo's docs name orders with a rounding adjustment line and orders with several payment transactions as cases where the invoice isn't created automatically

Odoo 19.0 Shopify Connector overview, setup, order management and fulfillment pages, read November 4 and 8, 2026.

One field on the account form changes two of those rows. Delivery Handled On takes Odoo or E-commerce Platform: with Odoo, you validate delivery orders in Odoo and the shipment is pushed to Shopify, and returns started in Shopify are handled manually in Odoo; with the platform, fulfillment is created in Shopify and pulled into Odoo, and those returns sync.

Shopify payouts are not on the list. None of the four Odoo 19.0 connector pages we read on November 4, 2026, covering the overview, setup, order management and fulfillment, describes payouts as synced by the native connector.

Scheduled, not real-time

Key takeaway

If your team expects an order to appear in Odoo the moment it is placed, set that expectation now. Odoo's documentation is direct about it:

The Shopify Connector does not perform real-time synchronization and does not rely on webhooks.
Odoo — Shopify Connector — Odoo 19.0 documentation ·

By default, orders are pulled every 10 minutes, deliveries handled in Odoo sync every 10 minutes, and stock goes from Odoo to Shopify after each order pull. An order placed just after a pull waits for the next one, up to 10 minutes at the default setting. To pull straight away, click Fetch Orders in the Operations tab of the account form. Odoo's App Store listing tags inventory management with Real-time sync, but its documentation describes scheduled actions.

How stock reaches Shopify

Key takeaway

Odoo doesn't send its on-hand count. It sends the free quantity, which is Quantity on Hand minus Reserved Quantity at the mapped location. Say Odoo holds 12 units of a product at that location and 3 are reserved for orders: Shopify receives 9 as the available quantity.

Only stock from the mapped Odoo location is pushed, and only stock that changed after the last inventory sync. Pulling stock the other way, from Shopify into Odoo with Fetch Inventory, is something Odoo's guide reserves for the first setup or for fixing a mismatch.

Which Route Fits Your Odoo Setup?

The table at the top answers by route. This answers by combination: where your Odoo runs, its version, where your business is based, when your store was created and what has to sync, crossed. Each answer closes or opens one condition of the native connector.

Which Shopify-to-Odoo route is yours?Five questions about your Odoo hosting, version, location, store and data
Which Shopify-to-Odoo route is yours?Five questions about your Odoo hosting, version, location, store and data
Question 1 of 5
Where does your Odoo database run?

How to Connect the Native Connector

Key takeaway

Whichever way you take, install the Shopify module first and turn on developer mode in Odoo: Odoo's guide says users must be in developer mode to configure the Shopify account form. Then follow the part below that matches your location. We don't have an Odoo database of our own, so the Odoo steps on this page come from Odoo's 19.0 documentation and the module's page, read November 4 and 8, 2026, and we did not run them.

US and Canada: the Public app

Start from Shopify. Open the Shopify App Store from your admin, go to the Odoo Integration listing, click Install and install again in the pop-up, select a payment plan, and approve the charge. Then paste your Odoo database's landing-page URL into the Odoo Instance URL field and click Continue to your Odoo. Odoo opens a blank Shopify account form in Sales, which you set up as described under configure Odoo, then click Connect. Our test store showed this listing as Not compatible on November 8, 2026, so these Public-app steps are Odoo's, not ours.

Everywhere else: a custom app from the Dev Dashboard

Key takeaway

The manual route has two halves, one in each system, and they meet at the end. Keep Odoo and Shopify open in two tabs of the same browser. First, in Odoo:

  1. Open the account list. Go to Sales ‣ Configuration ‣ Shopify: Accounts and click New.
  2. Fill in the basics. Name the account, select Shopify as the E-commerce Channel, and choose Odoo or E-commerce Platform under Delivery Handled On.
  3. Pick the authorization type. In the Credentials tab, choose Oauth or Self Access, as the next part explains; for Oauth, click Copy App URL.

Then, in Shopify. Odoo's guide calls the settings page App development, the heading our test admin showed; Shopify's Help Center names the buttons used here, and the rest is what our test admin showed as of November 8, 2026:

  1. Open the Dev Dashboard. From your Shopify admin, go to Settings › Apps, click Develop apps, then Build apps in Dev Dashboard. The Dev Dashboard opens in a new tab.
In Shopify adminOpen in your store
  1. Settings
  2. Apps
  3. Develop apps
Step 1 in Shopify: Build apps in Dev Dashboard opens the Dev Dashboard in a new tab.
  1. Create the app. Click Create app; with no apps in the list yet, our test admin opened one Create an app form on November 8, 2026, where the name goes in App name. Odoo's guide and Shopify's docs describe a Start from Dev Dashboard choice first; if your screen shows it, name the app there.
  2. Set up the version. In the same form, paste the URL you copied from Odoo as the App URL, turn off Embed app in Shopify admin, and choose the Webhooks API version Odoo's guide names, 2026-10 when we read it on November 8, 2026, and check the Release Notes on the connector's app page for the latest one. In the API access section, paste the scopes below into the Scopes field, then click Create app, then Release in the Release version dialog. Odoo's guide has you click Release at the top of the page and then Release again, so follow your own screen if it differs from these steps.
In Shopify admin
  1. Dev Dashboard
  2. Apps
  3. Create app
Steps 2 and 3 happen in this one form: the app name at the top, the App URL and the Embed checkbox below it.

These are the 15 scopes Odoo's guide lists, comma-separated, ready to paste:

read_assigned_fulfillment_orders,write_assigned_fulfillment_orders,read_customers,write_inventory,read_inventory,read_locations,read_merchant_managed_fulfillment_orders,write_merchant_managed_fulfillment_orders,read_orders,read_products,read_third_party_fulfillment_orders,write_third_party_fulfillment_orders,read_fulfillments,write_fulfillments,read_returns
In Shopify admin
  1. Dev Dashboard
  2. Apps
  3. Create app
  4. API access
Step 3: the scopes from Odoo's guide go into this Scopes field before you click Create app and release the version.
In Shopify admin
  1. Dev Dashboard
  2. Apps
  3. Create app
  4. Release version
Step 3: this dialog appears right after Create app; click Release once.
  1. Link the app to Odoo. On the app's Settings tab, copy the Client ID and Client secret from the Credentials section into the Odoo account form's Credentials tab. Then go back to the Apps list, open the three-dot menu in the app's row and click Install app; Odoo's guide has you click the app's name and then Install app, so follow your own screen. Odoo's guide then has you choose your store and click Install.
In Shopify admin
  1. Dev Dashboard
  2. Apps
  3. Settings
Step 4: the Client ID and Client secret are in the Credentials section of the app's Settings tab.
In Shopify admin
  1. Dev Dashboard
  2. Apps
  3. Row menu
Step 4: Install app sits in the three-dot menu of the app's row in the Apps list.

After you install the app, Shopify redirects you to the account form in Odoo with the Operations tab open. Check the connection status at the top right, then open the Credentials tab and confirm that the Shopify Access Token field has been filled.

Odoo has published its own six-minute walkthrough of this route for Odoo.sh. Its chapter list covers developer mode, the Credentials tab, creating an app in Shopify and linking it to Odoo; where its Shopify screens differ from the steps above, follow your own admin.

Set up the Shopify connector | Odoo.shOdoo's own walkthrough of linking Odoo to its Shopify connector app with a custom app: developer mode, the Credentials tab, the app in Shopify and the link back to Odoo.

OAuth or Self Access: it depends on your store's creation date

Key takeaway

The Authorization Type field in Odoo's Credentials tab has two options. Oauth is mandatory for stores created on or after January 1, 2026. Self Access uses an admin API access token, and stores created before that date can use it. If you follow the Public app process, Odoo pre-selects the Public app option and you skip this step.

The date lines up with a change on Shopify's side, stated in its Help Center page on managing apps:

Starting from January 1, 2026, you can't create any more legacy custom apps.
Shopify — Managing apps — Shopify Help Center ·

Existing legacy custom apps are unaffected and continue to work, Shopify's developer docs say. For a custom app created in the Dev Dashboard, Shopify's Help Center says your developer needs to obtain an access token to make API requests; the admin doesn't show one.

For Self Access, Odoo's guide refers you to Shopify's access token documentation. Where that token comes from, and who on your team can create the app, is covered in our answer on getting an Admin API access token.

Configure Odoo Before the First Sync

Key takeaway

The Configuration tab controls how data is imported and processed. Its settings can be changed at any time, even while the account is connected, but the first orders are booked with whatever is set when they arrive, so set them first.

Warehouses and Shopify locations

Key takeaway

The Stock Location field must point to a location of the selected company. Leave it empty and Odoo creates a dedicated Shopify stock location. With more than one location in Shopify, finish the form and connect, then click Fetch Locations in the Operations tab: Odoo pulls every Shopify location and maps them all to the default warehouse location, and you change the mapping where needed.

To see which locations Odoo will pull, open Settings › Locations in your Shopify admin. How Shopify decides which of them fulfills an online order is explained in the order routing section of our multi-location inventory guide.

In Shopify adminOpen in your store
  1. Settings
  2. Locations
These are the locations Fetch Locations pulls into Odoo for mapping.

One exception matters if you run several stores. If the same Odoo location is synced with locations in more than one Shopify store, those stores share that location's inventory instead of keeping separate stock.

SKUs and variants

Key takeaway

Odoo always looks for a product whose internal reference equals the Shopify SKU, and a product must have a SKU in Shopify to be imported. With Create Products on, a product with no match is created in Odoo from the Shopify data. With the setting off, that product is mapped to the default E-commerce Sale product instead.

Once a Shopify product is mapped, Odoo doesn't update the Odoo product it maps to: cost, description, weight, barcode and image are read only when that product is first created.

Odoo's guide recommends creating products in Odoo first, and the module's page says to create your catalog there, with correct categories and taxes, then fetch from Shopify for SKU matching rather than relying on auto-creation. The same page says product creation and management must happen in Shopify and product data is never pushed from Odoo to Shopify, so a product created in Odoo won't reach your store through the connector.

Variants work differently from Odoo's usual attributes. Each Shopify variant is created as an independent product, not through Odoo attribute lines, so every variant needs its own SKU. Check this on the product page in Shopify, where each variant has its own SKU field.

In Shopify adminOpen in your store
  1. Products
  2. Product
  3. Variant
Each variant's SKU must match the internal reference of its Odoo product.

Taxes, journals and invoices

Key takeaway

Four settings decide how an imported order is booked:

  • Create Taxes imports taxes from Shopify with the sales order and creates a tax when Odoo finds no match. Switched off, taxes come from the order's fiscal position and the product's taxes in Odoo.
  • Payment Journal and Sales Journal are the journals used to register payments and create sales orders during order sync.
  • Create Invoice creates an invoice and registers payment when a fully paid order is imported. Switched off, you create the invoice from the sales order yourself, and Odoo's fulfillment guide describes automatic refund sync only for accounts with it on.
  • Sales Team and Salesperson are assigned to every order imported from Shopify.

Expect small differences on totals. Odoo checks only the final total of each order, and because Shopify may round differently, a gap of a few cents is resolved with an adjustment line.

On an order with that adjustment line, Odoo does not create the invoice automatically, even if the order is marked as paid in Shopify. The logging section of Odoo's order management page gives an order with several payment transactions as another case where the invoice isn't created.

Running the First Sync

Key takeaway

Beyond that product recommendation, Odoo's documentation does not prescribe a fixed order for the first run. For stock, it gives this tip:

Make sure the inventory levels on both platforms are in sync first, to avoid discrepancies during synchronization.
Odoo — Manage Shopify orders and products — Odoo 19.0 documentation ·

The checklist below is our order around that tip. Our own advice on top of that: run the steps on a copy of your database first. Steps one to four come before you connect anything, and step seven is the one that keeps the first stock push from overwriting good counts.

If Shopify holds the correct counts, Fetch Inventory pulls them into Odoo; Odoo's guide says a valid pull needs products, locations and quantities to correspond on both sides.

Shopify-to-Odoo first syncTick each step off as you go. Your progress stays in this browser, so you can come back between sessions.

Shopify-to-Odoo first sync

Tick each step off as you go. Your progress stays in this browser, so you can come back between sessions.

0 of 9 done
  1. Check that Odoo runs version 19.0 or 20.0 on Odoo.sh, or self-hosted once Odoo confirms support, and whether your store can use the Public app.

  2. Every Shopify product and variant needs its own SKU, matching the internal reference of the Odoo product it maps to; Odoo's guide recommends creating products in Odoo first.

  3. Get the Shopify module for your Odoo version from the Odoo Apps Store; the Sales app installs with it.

  4. Decide on Create Taxes, the payment and sales journals, and Create Invoice before the first orders arrive.

  5. Use the Public app in the US and Canada; elsewhere, create the account in Sales and a custom app in the Dev Dashboard, with OAuth or Self Access.

  6. Pick the Stock Location or let Odoo create one; with several Shopify locations, click Fetch Locations and adjust the mapping.

  7. Make inventory levels match on both platforms, using Fetch Inventory if Shopify holds the right counts, then turn on Update Inventory.

  8. Confirm orders arrive, customers match by email and billing name, and recover any failed order with Recover Order.

  9. Each Shopify store needs its own account form in Odoo, with its own configuration.

Third-Party Connectors and iPaaS

Key takeaway

Third-party connectors are the vendors' own products. What each does below is what its listing or module page states; we did not install or test any of them, so run a trial on a copy of your database before you switch.

Connector apps on the Shopify App Store

Key takeaway

On November 8, 2026 we counted ten listings with Odoo in the name in the first result pages of a Shopify App Store search for odoo: Odoo Inc's Public app, the five below, and four tools with a narrower or different focus, namely a contact-only sync (Softhealer), an invoicing connector that can also sync products, customers and stock (Connecteur Odoo), a product-feed tool (HumSync for Odoo 19) and a migration tool (WBL Odoo Migrator Pro).

App Store search changes, so treat the list as a snapshot, not every connector there is.

Shopify App Store results for odoo
Search results for odoo as of November 8, 2026; Not compatible is the label our test store saw on Odoo's own app.

Five third-party Odoo connectors we compared on the Shopify App Store

TM Odoo Integrationby TechMarbles
Two-way sync, Odoo Online

Two-way sync of orders, inventory, products, customers and fulfillment, per its listing, which names Odoo v16 to V20, Odoo Online and Odoo.sh.

From
$35/month
30-day free trial; $35 is its Basic Plan, and it lists higher plans for Shopify's Grow, Advanced and Plus
OdooSyncOby Techspawn Solutions
Listed as “OdooSyncO ‑ Odoo ERP Connector”
No Odoo module

Says it needs no Odoo module and works with Odoo 16+ on Odoo Online, Odoo.sh and self-hosted Odoo.

From
$20/month
14-day free trial; $20 is for stores on the Basic Shopify plan, and higher Shopify plans cost more
Webkul Odoo Connectorby Webkul Software
Older Odoo versions

Syncs products, customers, orders, fulfillment and payments from Shopify to Odoo, per its listing, for Odoo 13, 14, 16, 17, 18 and 19.

Price
$35/month
7-day free trial
OdooStreamby BrainStream Technolabs
Listed as “OdooStream ‑ OdooSync Utility”
Webhooks

Says it syncs in real time via webhooks or scheduled bulk imports; its listing names no Odoo versions.

Price
$20/month
2-day free trial
OdooSyncby Invizo
Listed as “OdooSync ‑ Odoo ERP Sync”
One-way export to Odoo

Syncs orders, products, customers, inventory and refunds from the store to Odoo, per its listing; it had no reviews yet.

From
$9/month
1,000 synced records a month and manual sync on this plan; no free trial shown

Source: each app's Shopify App Store listing, read November 8, 2026. Prices are the listings' base prices in US dollars; the App Store shows other currencies as estimates at the day's exchange rate and bills in your store's billing currency. Features are what the listings state; we did not install or test these apps.

Modules from the Odoo Apps Store

Key takeaway

These modules install in Odoo, not in Shopify. That is why hosting matters: Odoo's Apps FAQ says third-party apps sold on the Odoo Apps Store cannot be used on Odoo Online unless they are data-modules. Each module page shows a price for the Odoo version you pick, and the store showed them in euros for our location.

Two of the third-party Shopify modules for Odoo

Odoo Shopify Connector PRO
VentorTech, Odoo Apps Store
Odoo versions
13 to 20
Odoo Online
Not supported, per its page
New orders
Within seconds via webhooks, per the vendor
Shopify Odoo Connector
Emipro, Odoo Apps Store
Odoo versions
8.0 to 20.0
Data it lists
Products, inventory, orders, fulfilment, returns, refunds, payouts and customers

Zapier and n8n

Zapier's Odoo and Shopify page lists templates such as creating leads in Odoo CRM for new Shopify customers, and n8n's Shopify and Odoo page lists an Odoo node for activities, contacts, opportunities and custom resources, plus an HTTP Request node for any REST API. Zapier's FAQ says a stock change in Shopify can update “the inventory status in Odoo CRM”, but the templates we saw on Zapier's page create leads and neither page describes warehouse or accounting sync, so use Zapier and n8n for CRM jobs or workflows you build yourself; how the two compare with Shopify Flow is in our Flow, Zapier and n8n comparison.

When the Sync Goes Wrong

Key takeaway

Find what you see in the first column. The causes come from Odoo's 19.0 connector documentation and, for inventory tracking, the module's page; the fixes for duplicate customers and an unmapped location are our reading of the documentation's matching and mapping rules. Odoo's connector pages don't list duplicate orders as a failure; the fulfillment page says returns and refunds carry a Shopify identifier to avoid duplication during synchronization.

Symptom, cause, fix
What you seeLikely causeWhat to do
An order is missing in OdooIt isn't confirmed in Shopify yet, or its import failedWait for confirmation and the next pull; for a failed import, run Recover Order from the Actions menu with the order's Shopify reference
An order arrives minutes lateOrders are pulled on a schedule, every 10 minutes by default, not by webhookClick Fetch Orders in the account's Operations tab to pull now
A product didn't importIt has no SKU in ShopifyAdd a SKU that matches the internal reference of the Odoo product
Each variant is a separate product in OdooVariants are created as independent products, not attribute linesExpected; give every variant its own SKU
Stock differs between Odoo and ShopifyLevels weren't aligned before the first sync, or a location isn't mapped, or inventory tracking is disabled in Shopify for a product or location, which can also block other products in its batchAlign the counts, then use Fetch Inventory or Push Inventory, check the location mapping in Odoo and check inventory tracking in Shopify
The same customer appears twiceThe email or billing name differs between the twoCorrect the Odoo contact so both match
A Shopify return isn't in OdooDeliveries are handled in Odoo, where returns are handled manually, or the return is still in progress in ShopifyRecord the return in Odoo; with deliveries handled in Shopify, close the return there and it syncs when the order is next fetched
Order totals differ by centsShopify and Odoo round differentlyExpected; Odoo adds an adjustment line for the difference, and that order's invoice is not created automatically even if it is paid

Odoo 19.0 Shopify Connector overview, setup, order management and fulfillment pages and the connector's Odoo Apps page, read November 4 and 8, 2026.

For Recover Order, open Sales ‣ Configuration ‣ Shopify: Accounts, select the account and choose Recover Order from the Actions menu. The order reference it asks for is the series of numbers after orders/ in the order's URL in your Shopify admin. For order import, stock update or fulfillment failures, Odoo emails the assigned salesperson or administrator, and the account form's Logs smart button, shown in developer mode, lists the details.

If you remove the connector, Shopify's Help Center says integrations that depend on an app stop working once you uninstall it, and a paid app may still bill the current cycle. None of the four Odoo 19.0 connector pages we read on November 4, 2026 describes the Odoo side of disconnecting.

The Bottom Line

Key takeaway

The native connector removes the guesswork of picking a vendor, as long as your hosting and version allow it. What it asks in return is preparation on both sides.

Prepare SKUs before you connect, and align stock before the first sync. Odoo's guide requires a SKU for a product to import and tells you to make stock levels match first.
Your Next Step by Stage
Before you connectSee who on your team can create a custom app and where its access token comes from.Read the access token answer
Several warehousesLearn how Shopify locations hold stock and route orders before you map them to Odoo.Read the multi-location guide
Still weighing the routeCompare a connector, an iPaaS and a custom build by cost and effort for any ERP.Read the ERP integration guide

Not Sure Which Connector Route Fits?

We look at your Odoo hosting, version, location and what has to sync, and tell you which route to take and in what order: the task is estimated first, then billed at $28 an hour. The setup in Odoo and Shopify stays with you or your Odoo partner.

See developer services

Frequently Asked Questions

Yes. Odoo's 19.0 documentation describes a Shopify Connector that moves orders, products and customers into Odoo, syncs inventory and deliveries both ways and, with conditions, brings in returns and refunds. It requires Odoo 19.0 or 20.0; Odoo IN Pvt Ltd sells the module on Odoo Apps. In the US and Canada, Odoo Inc's Public app is on the Shopify App Store.
No. Odoo Inc's Shopify App Store listing says the connector works with Odoo.sh and on-premises hosting only and is not supported on Odoo Online, and Odoo's setup page says it works only with Odoo.sh. On Odoo Online, look at App Store connectors whose listings name Odoo Online, such as TM Odoo Integration and OdooSyncO, or move to Odoo.sh.
Yes, through the manual route. Odoo's Public app on the Shopify App Store is only available in the USA and Canada, so elsewhere you create a Shopify account in Odoo's Sales app and a custom app in Shopify's Dev Dashboard, then paste the app's Client ID and Client Secret into Odoo. Odoo's guide lists 15 scopes for that app.
On a schedule, not in real time. By default Odoo pulls orders every 10 minutes and pushes stock to Shopify after each order pull, and deliveries handled in Odoo also sync every 10 minutes. The connector does not use webhooks, so an order can wait for the next pull; Fetch Orders in the account's Operations tab pulls on demand.
Check the SKU first. Odoo's guide says a product must have a SKU in Shopify to be imported, and Odoo matches products by looking for an Odoo product whose internal reference equals the Shopify SKU. Add a SKU to every product and variant in Shopify, match it in Odoo, then run the next sync.
Each Shopify variant becomes its own product in Odoo. Odoo's documentation says variants are not created with Odoo attribute lines but as independent products, and attribute values are not handled in that flow. Give each variant its own SKU before the first sync, because Odoo matches products by SKU.
No, not through Odoo's connector: its module page says product data is never pushed from Odoo to Shopify, Odoo pricelists are not applied during order import, and order pricing reflects the Shopify order value as received. After a product is first created in Odoo, its cost, description, weight, barcode and image are not read again. On orders, Odoo adds an adjustment line for rounding differences.
Recover it by hand. In Odoo, open Sales ‣ Configuration ‣ Shopify: Accounts, select the account, and choose Recover Order from the Actions menu, then enter the order's Shopify reference, the number after orders/ in the order's admin URL. Remember that only orders confirmed in Shopify are imported at all.
It depends on when your Shopify store was created. Odoo's guide makes OAuth mandatory for stores created on or after January 1, 2026, while older stores can use Self Access, an admin API access token. Since that same date merchants can no longer create new legacy custom apps in the admin; existing ones keep working.
Not as far as Odoo's documentation shows. None of the four Odoo 19.0 connector pages we read on November 4, 2026, covering the overview, setup, order management and fulfillment, describes Shopify payouts as synced. With Create Invoice on, Odoo creates an invoice and registers payment for fully paid orders, with some exceptions. Emipro's Odoo Apps module lists payouts among its data.
Yes. Each Shopify store needs its own account form in Odoo, and orders, products and inventory are scoped to the store they come from, with separate configuration per company in multi-company setups. The exception is an Odoo location synced with more than one Shopify store location: those accounts share that location's inventory.
As read on November 8, 2026, the Shopify module on the Odoo Apps Store showed €177.79 for version 19.0, including the eCommerce Engine module it requires, in euros for our location; its author calls the fee recurring. In the US and Canada, Odoo Inc's Public app on the Shopify App Store lists $100 a month with a 15-day free trial.
Shopify's Help Center says integrations that depend on an app stop working once you uninstall it, and a paid app cancels future charges but may still bill the current cycle. The Odoo side is not covered: none of the four Odoo 19.0 connector pages we read on November 4, 2026 describes disconnecting the Shopify account.
About This Article
Shopify Developer & Editorial Director
9+ years with Shopify since 2017

Front-end developer specializing in Shopify since 2017. Experienced in building custom Liquid themes, optimizing storefront performance, and integrating third-party apps. Directs the editorial process behind Ecom Store Pro: sets its topics and the rules every AI-written page must pass before publication.

This page was written by AI. Separate AI agents that did not write it check its figures and claims against official sources and test its links and interactive tools. A human editor sets the site's editorial direction, topics and rules and checks that pages are complete and display correctly, but does not check their facts or edit their text. Details may change — always confirm critical data at shopify.com.

Editorial Policy

Some links in this article are affiliate links. If you sign up for a Shopify store through these links, we may earn a commission at no extra cost to you. Read our full advertising policy.

Continue Learning

What to Read Next

Stay updated

Get notified about new articles

Subscribe to receive updates when we publish new Shopify guides and insights.