Financial TimesAmericas' Fastest-Growing 2025
Certified PartnerOdoo Gold · Adobe Solution · Shopify Plus partnershipsOdoo Gold · Adobe · Shopify Plus partnerSee all
One business dayA senior architect replies to every inquiry · +1 (631) 897-7276Architect reply within one business dayLet's talkCall us
Inc. Regionals 2025Fastest-growing private companies in AmericaInc. Regionals 2025 honoreeSee awards
Americas' Fastest-Growing Companies 2025Recognized by the Financial TimesFT Fastest-Growing Companies 2025See the rankingRanking
4.8 / 5 on Clutch265 verified client reviews4.8/5 on Clutch · 265 reviewsRead the reviews
4.8 · 265 Clutch reviews
US United States

Odoo Shopify integration: orders and stock in sync

Brainvire connects a Shopify store to Odoo so orders, customers, stock and shipments move on a schedule instead of by hand — and so you know which system owns the number when the two disagree.

OdooGold Partner
2,000+Brands served
95%Client retention
10+Global offices
What it is

A Shopify ERP integration: a link between a Shopify store and an Odoo database so orders, customers, stock and shipments move on a schedule, and the books are kept in Odoo, not rebuilt from exports.

What Odoo ships

A Shopify Connector in Odoo 19. Its setup page states the integration only works with Odoo.sh and requires version 19.0. Odoo 18’s documentation has no Shopify connector at all.

Which way data moves

Orders, products, customers, returns and refunds come from Shopify. Stock and fulfillments move both ways. Invoices and payments are created in Odoo, not synced.

Typical timeline

Scoped inside the Odoo program it belongs to: small 8 to 12 weeks, mid-market 12 to 24 weeks, multi-entity 6 to 12 months. Brainvire’s bands, not Odoo’s.

/ Before you connect anything

Does your Shopify operation look like any of this?

Four patterns we see in stores that outgrew exports and a spreadsheet.

Stock

The count is wrong in both places

The storefront sells what the warehouse already picked, and somebody corrects it by hand twice a day.

Orders

Orders and customer data are re-keyed

A person reads the Shopify admin and types it into the system that actually ships and invoices.

Money

Refunds never reach the books

The customer is refunded in Shopify, the credit note is remembered later, and the month-end difference is unexplained.

Growth

A second store brings the spreadsheet back

Another store, another warehouse or a marketplace, and the workaround you built for one channel stops holding.

Odoo Gold PartnerBest Partner North America 2025 FinalistOutstanding Customer SatisfactionOdoo 19

Trusted by enterprise Odoo teams worldwide

Bay Alarm MedicalTentAndTableFood Bank SingaporeAmerican Tire DepotEden TextileCadarPuma EnergySuper Asia FoodsUltimate ToysAjmal PerfumesPan HomeNike

/ The mapping, before the build

What actually syncs, in which direction, and on what trigger?

“Two-way sync” is a slogan. This is the real shape of it, from Odoo’s own connector documentation.

DataDirection and triggerWhat that means for you
OrdersShopify → Odoo, on a scheduled action every 10 minutesOnly confirmed Shopify orders are imported. Cancel in Shopify and the Odoo order is canceled on the next run.
InventoryBoth ways — pushed to Shopify after every order syncOdoo sends free quantity — on hand minus reserved — at the mapped location. Pulling stock back is a repair action, not a routine.
CustomersShopify → Odoo, with the orderMatched on email and billing name. Addresses become child contacts; a failed country mapping raises an activity.
Fulfillments and trackingBoth ways, depending on where you handle deliveryValidate in Odoo and the shipment is pushed with carrier and tracking. Fulfill in Shopify and both come back.
Products and variantsShopify → Odoo, on the order or product fetchMatched on SKU to the Odoo internal reference. No SKU, no import — and variants arrive as independent products, not Odoo attribute lines.
ReturnsShopify → Odoo, once the return is closed in ShopifyA return still in progress does not sync, and where Odoo handles delivery, Shopify returns do not sync at all.
Refunds and credit notesShopify → Odoo, on the order syncOnly if the order carries one posted invoice. The credit note arrives in draft, carrying Shopify’s refund identifier.
Invoices and paymentsCreated in Odoo — not synced from ShopifyWith Create Invoice on, a fully paid order posts an invoice and registers payment — unless a rounding adjustment line was added.
Payouts, processor fees, chargebacksNot covered by the connectorNone of the three appears in the connector documentation. Reconciling a net settlement is a manual routine or a build.

Directions and triggers follow the Odoo 19 Shopify Connector documentation. Stock in depth: Odoo Inventory and WMS; the ledger side: Odoo Accounting.

/ Native, packaged, or built

How do you integrate Shopify with Odoo ERP?

Four routes, and not interchangeable: your Odoo version and your hosting decide which are open to you.

Brainvire does not publish a Shopify connector — see the App Store listings for who does, and what we do publish. Custom work uses the documented Odoo External API.

/ Delivery

How does Brainvire connect Shopify to Odoo?

Small 8 to 12 weeks, mid-market 12 to 24 weeks, multi-entity 6 to 12 months. A named owner and a working demo at each stage.

01020304

Discovery

We follow one real order end to end — placed, picked, shipped, invoiced, then refunded — and name the system of record for stock, price and the customer. You provide a Shopify admin, a catalog export and a month of orders.

Design

The mapping is written down before anything is built: SKU rules, the location map, taxes and fiscal positions, what a refund does to the ledger, and which exceptions a human is expected to clear.

Build and data

Connector configured or module built, catalog and locations aligned, then real orders replayed into a test database — including a partial fulfillment, a return and a refund, because those are what break.

Cutover

After successful testing, both systems run for a period until stock and the ledger agree, then we switch on a quiet day and stay through the first full refund cycle.

/ Where it goes wrong

What breaks in a Shopify integration, and who owns the number?

Each is a decision, not a defect. Settle it in design and the integration is boring; leave it to the connector and you meet it mid-sale. Shopify’s notes on inventory apps and webhook delivery come first.

Stock

Two systems, one count

Shopify moves units from available to committed the moment an order is placed; Odoo pushes free stock after the sync. Name the owner, or both will adjust it.

Money

Rounding, and the invoice that is not created

Where the totals differ Odoo adds an adjustment line — and an order that needed one is not auto-invoiced, even when Shopify says it is paid.

Currency

Three currencies on one order

Shopify’s Markets documentation carries presentment, shop and settlement, and calls settlement the most appropriate for accounting. Decide which you record.

Mapping

Multiple stores, locations and SKUs

Each store needs its own Odoo account record, each Shopify location a mapped Odoo location, and every variant a SKU. One unmapped location silently drops its stock.

/ Odoo and Shopify, on the record

Where have we connected Shopify to Odoo ERP before?

Three clients: two published anonymously at their own choice, one named. Wider library: retail case studies.

North American Cutting Tools SellerShopify to Odooevery store order arriving in Odoo with its detail intact

North American Cutting Tools Seller

A cutting-tools brand already selling on Shopify, with a field sales team behind it. Brainvire connected the store to Odoo for real-time order detail, built a commission module that pays a representative once the customer’s invoice is paid, automated tax-exemption certificates, added dropship and direct-from-warehouse routes, and moved the books off QuickBooks.

Industrial tools · Shopify order sync, commissions, QuickBooks migrationRead the case →
The Routes list in Odoo Inventory for the cutting-tools seller, showing the named delivery routes its orders are assigned to
Automobile Cleaning Supplies Maker · US4 to 1systems replaced by one Odoo backbone behind the Shopify store

Automobile Cleaning Supplies Maker

A US maker of detailing tools for the marine, RV and automotive trades ran four separate systems. Brainvire replaced them with Odoo for sales, purchase, inventory, accounting, maintenance and helpdesk, added a dispatch screen where staff reserve stock before delivery, automated bin replenishment, built a picker app, and synced every Shopify order into Odoo.

Automotive care · Shopify orders into Odoo, with warehouse and pickingRead the case →
The Odoo application menu delivered for the automobile cleaning supplies maker, with Sales, Purchase, Inventory, Accounting and Helpdesk among the apps in one database
Colosseum Athletics · collegiate apparel9k+daily orders the Odoo platform is built to carry

Colosseum Athletics

A collegiate apparel manufacturer holding more than 400 license agreements, selling through Amazon and Shopify. Odoo runs orders and inventory across both channels, with separate warehouses for Amazon FBA and FBM stock, more than 300,000 historical orders imported, and the platform moved off Odoo.sh to AWS for the volume.

Retail apparel · Odoo behind both Amazon and ShopifyRead the case →
The Colosseum Athletics online store, the collegiate apparel brand whose Amazon and Shopify orders run through Odoo

/ The decision

Odoo’s own connector, an App Store app, or a build?

Every claim about Odoo’s connector comes from Odoo’s documentation, every claim about Shopify from Shopify’s.

CriterionOdoo’s Shopify ConnectorAn App Store app, or a build
Odoo versionDocumented for Odoo 19. The Odoo 18 documentation contains no Shopify connectorAn App Store app publishes per version; a build targets whatever version you run
HostingThe setup page states the integration only works with Odoo.shAn app needs Odoo.sh or on-premise, as Odoo Online is not compatible with non-standard apps; a build calls the External API, which Odoo includes only on Custom plans
TriggerScheduled actions, orders every 10 minutes, and explicitly not webhooksCan subscribe to Shopify webhooks, though Shopify does not guarantee delivery or ordering and advises a reconciliation job anyway
What it coversOrders, products, customers, inventory, fulfillments, returns, refunds, and invoices raised in OdooWhatever you scope, including everything the connector does not name
Payouts, fees, metafields, B2B price listsAbsent from the connector documentationReadable from the Shopify Admin API and the Odoo External API, with the mapping and the error handling yours to own
What you carry at upgradeOdoo’s release cycle, and the Odoo.sh requirementThe maintainer’s cycle, or yours. Shopify ships an API version quarterly and supports each for at least twelve months

Use Odoo’s connector if you run Odoo 19 on Odoo.sh and your flow sits inside what it covers. Use an app or a build if you are on Odoo 18 or earlier, host elsewhere, or need payouts, marketplaces or B2B pricing too. Integrate nothing if you sell on one store, ship from one place and reconcile a payout once a month. Moving the books at the same time: QuickBooks to Odoo.

/ Questions we are asked

Odoo Shopify integration FAQs.

Does Odoo have a built-in Shopify connector?

Only on Odoo 19, and only on Odoo.sh. Odoo's 19.0 documentation describes a Shopify Connector that syncs orders, products, inventory, deliveries, returns and refunds, and its setup page states the integration only works with Odoo.sh and requires version 19.0. Odoo 18's documentation has no Shopify connector, so there the options are an App Store app or a build.

What actually syncs between Shopify and Odoo, and in which direction?

Odoo's supported-features table is specific. Orders, products, customers, returns and refunds move one way, Shopify to Odoo. Inventory and fulfillments move both ways. Invoices and payments are not synced at all: Odoo creates them. So the honest summary is one-way for records, two-way for stock and shipments, and Odoo-side for the money.

Is the sync real time?

No. Odoo states plainly that the connector does not perform real-time synchronization and does not rely on webhooks; every exchange runs on scheduled actions, with orders pulled every ten minutes and stock pushed after each order sync. A custom build can subscribe to Shopify webhooks instead, but Shopify advises apps to run reconciliation jobs anyway.

Which system should own stock?

Pick one, and write it down before anything is built. With Update Inventory enabled, Odoo pushes the free quantity at the mapped location and Shopify's available count follows Odoo. Pulling stock from Shopify is described as a setup or repair action, not a routine. Two systems both adjusting the same number is how overselling starts.

How do refunds and partial fulfillments land in accounting?

A refund syncs only when the order already carries one invoice in the posted state, and the credit note is created in draft so a person reviews it. Partial fulfillments create backorders in Odoo so shipped and remaining quantities stay separate. Where Shopify and Odoo totals differ by rounding, Odoo adds an adjustment line to match the refund exactly.

Can it handle several stores and several warehouses?

Yes, with mapping. Each Shopify store needs its own account record in Odoo and stays scoped to its own orders, products and inventory, and multi-company setups get one configuration per company. Shopify locations are pulled in and mapped to Odoo stock locations. Map one Odoo location to two stores and those stores then share that stock.

What breaks when we sell in more than one currency?

Shopify's Markets documentation sets out three currencies on an order: presentment, which the buyer agreed to and which refunds are based on; shop, which is back-converted and may not sum perfectly; and settlement, the payout currency, which that documentation calls the most appropriate for accounting. Decide which one your ledger records before go-live.

Do Shopify payouts, fees and chargebacks come across?

Not through Odoo's connector. Payouts, processor fees and chargebacks appear nowhere in its documentation, so reconciling a net settlement to the bank statement is either a manual routine or something we build against the Shopify Admin API. Ask for it explicitly in scope; it is the piece finance teams assume is included and usually is not.

Who keeps the integration working when Shopify changes its API?

Whoever owns the route you chose. Shopify's versioning page states that it releases a new API version every three months and supports each stable version for a minimum of twelve months, with at least nine months of overlap. So an integration is not a one-off build: name who watches the deprecations, and line that up with your Odoo upgrade cycle.

When should we not put Odoo behind Shopify at all?

If you sell on one store, ship from one place, carry a catalog you can still count, and your bookkeeper is content reconciling a payout once a month, an ERP behind the storefront adds a system without removing work. The case for Odoo starts at a second channel, a second warehouse, or stock that has to be right in two places.

What is Shopify ERP integration?

It links the store to the ERP software that runs stock, purchasing and the books, so orders, customer data and inventory levels stop being copied by hand. Shopify stays the customer-facing storefront and Odoo ERP runs the back office. Odoo's documentation says its connector considerably reduces the time spent manually entering Shopify orders into Odoo, which is the manual data entry the connector is built to remove.

Can Shopify be integrated with an ERP system?

Yes. Shopify says its Admin API lets you build apps and integrations that extend and enhance the Shopify admin, and its reference covers orders, customers, products and collections, inventory, and shipping and fulfillment. That is the surface any ERP reads and writes. For an Odoo integration there are three working routes: Odoo's own connector, an app from the Odoo App Store, or a build on both APIs.

Is the Shopify connector available in Odoo 20?

Not in Odoo's documentation yet. The Shopify Connector pages sit in the 19.0 documentation, while the 20.0 documentation, as of September 2026, has no Shopify Connector page, even though Odoo 20 was released that month. Before you plan an Odoo 20 project around the native connector, confirm with Odoo that it is available for your version and hosting.

Which Odoo plan does the integration need?

It depends on the route. The connector's setup page says it only works with Odoo.sh, and Odoo's pricing page lists Odoo.sh on the Custom plan, with the Odoo.sh hosting cost not included. A build needs the External API, which Odoo's documentation says is only available on Custom plans. An App Store app needs Odoo.sh or on-premise hosting, because Odoo Online is not compatible with non-standard apps.

Does Odoo have an API for Shopify integration?

Yes. Odoo's External JSON-2 API, new in version 19.0, exposes models over HTTP at the /json/2 endpoint. The older XML-RPC and JSON-RPC endpoints are deprecated, and Odoo's documentation schedules their remaining services for removal in Odoo 22 (fall 2028), so a new build should target JSON-2. Access requires a Custom plan.

Can Odoo push products and prices to Shopify?

Not with Odoo's connector. Its supported-features table lists products as Shopify to Odoo only, and once an offer is mapped, the Odoo product's cost, description, weight, barcode and image are read only when it is first created. Odoo recommends setting products up in Odoo first, each variant with its own SKU, so no Shopify SKU falls through to the default product. Pushing catalog, prices or metafields from Odoo to Shopify is a build on the Shopify Admin API.

Which data fields does the connector match on?

Products match when the Shopify SKU equals the Odoo internal reference; a Shopify SKU with no match links to a default product unless Create Products is on. Customer information matches on email and billing name, with billing and shipping addresses stored as child contacts. Odoo detects the currency from each order. Data accuracy problems often start with a missing or duplicated SKU.

How are taxes handled between Shopify and Odoo?

With Create Taxes on, the default, Odoo looks for a matching tax on each imported order and creates one if none exists. With it off, taxes come from the order's fiscal position and the product's taxes in Odoo. Shipping arrives as separate order lines, and discounts are deducted before the subtotal to reduce rounding differences between Shopify and Odoo totals.

How do order status and fulfillment status sync?

Only orders confirmed in Shopify are imported, and a cancellation in Shopify cancels the Odoo order on the next sync. When Shopify handles delivery, an order tagged Unfulfilled creates an Odoo delivery in the Ready stage, and a Fulfilled order creates it as Done. Split fulfillments, different carriers and partial quantities are supported, and tracking numbers sync both ways.

What happens when an order fails to import?

Odoo's connector writes detailed API logs, visible in developer mode, and emails the assigned salesperson or administrator on critical failures: an order import, a stock update or a fulfillment. A single missing order can be pulled again with the Recover Order action and its Shopify order reference. Whichever Shopify Odoo connector you run, name who will manage those alerts before go-live.

How do we install and connect the connector?

On Odoo 19 on Odoo.sh, install the Shopify connector app, which brings the Sales app with it, then create a Shopify account record for each Shopify instance in developer mode. Odoo says OAuth is mandatory for Shopify stores created on or after January 1, 2026; older stores can use an admin API access token. If no stock location is set, Odoo automatically creates a dedicated Shopify location. Then map locations and run an initial fetch of products and orders.

How does the connector help with preventing overselling?

It narrows the gap rather than closing it. Odoo pushes the free quantity, on hand minus reserved, after each order sync, and only for stock that changed. Odoo advises getting inventory levels in sync on both platforms first. When you restock a return in Shopify, select Restock at: Odoo's documentation warns that skipping it leaves the two stock counts out of step.

Do Shopify collections sync to Odoo categories?

Not through Odoo's connector: collections are not in its supported-features table, and Odoo recommends configuring product categories and sales taxes in Odoo. Shopify's help center says a new collections model is replacing the legacy manual and smart collections, with inclusion and exclusion conditions. If categories must match on both sides, that mapping is part of a build.

Can Shopify B2B catalogs sync with Odoo pricelists?

Not through Odoo's connector, whose documentation does not mention B2B companies or catalogs. Shopify's help center says B2B is available on all plans: on the Basic plan, the Grow plan and the Advanced plan you can assign up to 3 active catalogs across all your B2B markets, and on Shopify Plus an unlimited number. If B2B prices must follow an Odoo pricelist, that sync is a build on both APIs.

Does the connector track marketing attribution?

Yes. Odoo's documentation says the connector fetches UTM campaign, source and medium from Shopify orders during the order sync and stores them on the Odoo sales order, which helps trace each order to ads, email or social. The data only exists when the Shopify order carried UTM parameters in the first place.

Is Odoo better than Shopify?

They do different jobs. Shopify runs the storefront and checkout of your eCommerce operations; Odoo describes itself as a suite of open source business apps covering CRM, eCommerce, accounting, inventory, point of sale and project management. Keep Shopify at the front and run Odoo ERP behind it when the storefront works and the back office does not; move the store onto Odoo when you would rather have no interface to maintain. The right solution follows your sales channels, not the brand.

What does an Odoo Shopify integration cost?

There is no fixed figure; cost follows the route. The native connector needs Odoo.sh on a Custom plan, with the hosting cost not included. An App Store connector adds the vendor's price and upgrade cycle. Implementation adds configuration or development, testing and ongoing support. Odoo Community is open source and Odoo Enterprise is licensed, so the edition you run also shapes the options.

/ Next step

Let’s decide what should sync, and what should not.

  • A senior architect replies within one business day
  • Your details are never shared or sold
  • An NDA can be signed before we hear any detail

US +1 (631) 897-7276 · Gulf +971-54-737-4253 · Singapore +65-9086-0319 · India +91-22-6116-3300.

Fox SportsSouthwestNikeDisneyMcAfeeUnder ArmourSesame WorkshopInsomnia CookiesPan Emirates Home

Trusted by 2,000+ brands worldwide

“Brainvire has helped our business grow. We feel like it’s a true partnership. They’re always present. It’s been seven great years, looking forward to more.”
Mr. Kevin ClorCIO - Tent and Table

Book a working session

Tell us what you sell on Shopify, where it ships from, and what the books must show.

    Ten characters minimum. An NDA can be signed before we hear any detail.