Shopify ConnectorShopify Connector

Live on the Odoo App Store

Shopify Connector for Odoo

Shopify and Odoo, in lockstep. A Shopify store and an Odoo database each hold a version of the truth about the same orders, the same stock and the same customers. This connector keeps both sides in step on a schedule.

  • Odoo 16, 17, 18 and 19. Community or Enterprise, on Odoo.sh or self-hosted.
  • USD 449, one-time purchase per Odoo version, on the Odoo App Store.
Shopify Connector for Odoo by Tripster Developers

Features

What it will not do, which matters as much as what it will

Most connector damage is silent. These are the four cases where this one stops instead of producing a plausible-looking wrong result, and the care it takes with orders and products.

It never imports the same order twice

Whatever happens mid-sync. Identity goes through a mapping table before anything is written, so re-running a job converges on the same single order rather than creating a second one.

It never invents a tax

Anything Shopify sends without an Odoo equivalent stops and asks, rather than quietly producing an invoice short by the tax.

It never attaches a variant to a nearly-matching one

A variant is matched on exact option-set equality. A near match is reported and left unlinked rather than silently bound to the wrong SKU.

It checks every imported order against the total Shopify actually charged

Anything that disagrees stays a quotation, flagged, with the difference spelled out.

Orders, exactly as the storefront recorded them

Line discounts are kept as discounts rather than folded into the price, so margin reports stay truthful. Shipping lines are imported as their own line. Guest checkouts are handled through a fallback customer you choose. Canceled orders are imported for the record but never confirmed. The order date comes from Shopify, not from the moment of import.

Products and variants, without breaking history

Shopify options become Odoo attribute lines. Attribute lines are only ever added, never removed, because removing one deletes variants that historical orders reference. A barcode that already belongs to another product is skipped with a warning instead of aborting the whole catalog.

How it works

How it works

Everything destructive starts switched off. Order confirmation, invoicing, stock publishing, fulfillment and the scheduler are all off until you turn them on, and Shopify's shipping email to your customer stays off with them.

  1. 01

    Connect the store

    Create the API credentials in your store, with read and write access to products, customers, orders and inventory. Add the store in Odoo and press Test Connection: it verifies the credentials, names the store back to you, and says exactly what to fix if anything is wrong.

  2. 02

    Import, then look at what arrived

    Products, then customers, then orders. Nothing is confirmed or invoiced yet: those switches start off on purpose.

  3. 03

    Turn on the schedule and the write-back

    Once you are happy with what came in, enable the scheduled sync, stock publishing and fulfillment individually.

Technical Edge

What syncs, and which way

Products and customers each run in, out or both. Orders come in; stock and fulfillment go back out. A push against a pull-only store is refused with a reason rather than done quietly.

It is built on Shopify's GraphQL Admin API, which Shopify made its primary Admin API when REST became legacy in October 2024, and which new public apps have had to use since April 2025. That matters more than it sounds: REST product endpoints have been deprecated since API version 2024-04 and no longer receive new features. A REST connector is a connector with a rewrite in it.

Technical Stack

Checked in the module code and the live Odoo App Store listing, September 2026

Orders
Shopify → OdooChecked against the total Shopify actually charged.
Products and variants
Both waysMatched on exact option-set equality. Pull only until you choose otherwise.
Customers
Both waysRequired even for order-only imports.
Stock
Odoo → ShopifyAvailable-to-promise is published by default, because publishing on-hand is how the same unit gets sold twice. Stock is written to one named location you choose; a store with several would otherwise have the wrong shelf updated silently. Items not yet stocked at that location are activated first, which Shopify requires and which every newly created product needs.
Fulfillment and tracking
Odoo → ShopifyFires when the delivery is validated, when the invoice is posted, or whichever happens first. Businesses that never run Inventory need the invoice trigger. Tracking number and carrier are passed across. notifyCustomer is off by default: switching it on over a backlog emails real people about orders that shipped weeks ago.
Shopify API
GraphQL Admin API, 2025-07Every GraphQL document in the module was executed against a real Shopify development store on API 2025-07, not only against test stubs.
Rate limits
Query cost, not request countShopify limits query cost from a leaky bucket. The client reads what is left and waits for the refill rather than earning a 429 on a large catalog.
Failures
Failed, or Needs attentionFailed is transient: a dropped connection, a rate limit, a 502, retried automatically with exponential backoff. Needs attention means something has to change first: a tax with no mapping, a product not in Odoo, a revoked key. Those are never retried on a timer, and each carries the sentence saying what to do.
Job log
Every payload keptEvery job keeps the exact payload that caused it, so a retry replays the failure without asking the store for the data again. There is a Retry button on every job, and a dashboard filtered to what still needs a person.
Scheduled action
Shopify: scheduled syncChecks every 15 minutes and runs each store on its own interval, 60 minutes by default, only once you switch the schedule on.
Odoo
16.0 to 19.0, Community and EnterpriseDepends on the free E-Commerce Connector Engine, Sales, Inventory and Invoicing. Adds a Store Sync menu with Stores, Sync Jobs, Linked Records and Shopify Taxes.

Pricing

One price, paid once.

Sold on the Odoo App Store under the Odoo Proprietary License (OPL-1). Each Odoo version is sold separately. The E-Commerce Connector Engine it runs on is free.

Shopify Connector

USD 449

One-time purchase · OPL-1 · Odoo 16.0 to 19.0

  • Orders, products, customers, stock and fulfillment
  • Direction set per record type
  • Orders checked against what Shopify charged
  • Failed and Needs attention kept apart, with Retry
  • Email support from the people who wrote it
View on the Odoo App Store ↗

Custom work

On quote

Scoped with you before any work starts

  • Changes to fit how your store sync is run
  • Built by the team that wrote the module
  • Separate from module support
Talk to us

Odoo stores app prices in euros and shows a converted figure at checkout: US$447.25 on 25 September 2026.

How does it stack up against Odoo's own Shopify module, the free OCA connector and the other paid modules? See our Odoo Shopify connector comparison, checked on 30 September 2026.

Want the whole Shopify and Odoo integration scoped and built for you, not just the connector? See the Shopify Odoo integration service at Tripster Developers.

Built For

Built for a Shopify store run from Odoo.

Keeping a store and an ERP in agreement by hand does not scale past the first busy week. This connector keeps both sides in step on a schedule, and is explicit about the cases where it would rather stop than guess.

  • A careful first sync. Import, look at what arrived, and only then switch on confirmation, invoicing and write-back, one at a time.
  • Order-only imports. Direction is set per record type, so a store can pull orders into Odoo without anything being pushed back to Shopify.
  • Businesses without Inventory. Fulfillment can follow the posted invoice instead of a validated delivery.

FAQ

Questions

Does this use the REST API that Shopify is retiring?

No. It is built on the GraphQL Admin API, which is what Shopify is moving everything to. Shopify made REST a legacy API on 1 October 2024, and its REST product endpoints have been deprecated since API version 2024-04, so they no longer receive new features.

What happens if a sync is interrupted and I run it again?

Nothing bad. Identity goes through the mapping table before anything is written, so re-running converges on the same single order rather than creating a second one.

Can I import orders without pushing anything back to Shopify?

Yes. Direction is set per record type, independently, and stock publishing and fulfillment are separate switches that both start off.

Which Odoo versions are supported?

Odoo 16, 17, 18 and 19. Every listed Odoo version is certified on each release by installing the module into a real Odoo image of that series and running the full test suite. A version is only listed once it passes.

Does it work on Odoo Online?

Odoo Online cannot run third-party modules that contain Python, which is Odoo's rule rather than ours. Odoo.sh and self-hosted installs are both fine.

How do I get help?

Email hello@tripsterdevelopers.com with your Odoo version, the module version and what you did. If a sync job failed, the job record holds the exact payload and the error, which answers most questions immediately.

Does it work on Community as well as Enterprise?

Yes. Odoo 16, 17, 18 or 19, Community or Enterprise. The same build installs on either edition.

How do I install it?

Buy and download the module from its Odoo Apps Store page, place the folder in your addons path together with the free E-Commerce Connector Engine, restart Odoo, then update the apps list and install it from the Apps menu. Odoo.sh users add it to the repository branch instead.

Will it survive an Odoo upgrade?

Each listed Odoo version has its own build, and the Odoo Apps Store sells each version separately. When you move to a new major version, install the build for that version; the configuration you have already entered is read by the new build.

Where is my data processed?

Inside your own Odoo instance. The module runs on your server and talks to your own systems. We do not host your records and we do not receive a copy of them.

Can I read and adapt the source?

Yes. Odoo modules are distributed as readable Python and XML, so your own developer can review exactly what runs and extend it under the license the module ships with (OPL-1).

What should I send when something is wrong?

Your Odoo version, the module version from the Apps screen, and the message from the job log. Those three together are usually enough to answer in one reply rather than four.

Do you take feature requests?

Yes, at the same support address. Say what you are trying to achieve rather than the field you want added; it is often already possible, and when it is not, the underlying goal is what shapes the change.

Is there a public changelog?

Not as a separate page. The current version for each Odoo series is shown on the module's Odoo Apps Store page and on the Apps screen in your own database; ask the support address what changed between two versions and you will get a straight answer.

Who builds and maintains these modules?

Tripster Developers, a Shopify Partner and Odoo module publisher based in Auckland, New Zealand. The same team writes the code and answers the support mail.

Miko Apps

Keep Shopify and Odoo in step, without the guesswork.

Live on the Odoo App Store, published by Tripster Developers · USD 449 one-time per Odoo version

Miko for Odoo

Other Miko apps for Odoo

Published and maintained by Tripster Developers on the Odoo App Store. See all Odoo apps.

Not on Shopify yet?

Start a free Shopify trial, then add Miko apps when you are ready.

Set up your store in minutes and try it with your own products. Loyalty, wholesale pricing, AI descriptions and the rest of the Miko apps install in one click once your store is live.