
Summarize with AI
Odoo Shopify Connector: Sync Orders, Products, and Inventory in Real Time
Key takeaways:
- An Odoo Shopify connector moves orders, products, stock, and fulfillment status between the storefront and the ERP without manual entry.
- Shopify marked its REST Admin API as legacy in October 2024, so new connectors should be built on the GraphQL Admin API.
- Webhooks give near real-time sync, but a scheduled reconciliation job is still needed to catch missed or delayed events.
- Inventory sync works best when Odoo owns stock and pushes available quantities to each Shopify location.
- Refunds, payouts, and Shopify fees need their own accounting rules, which many basic connectors skip.
Shopify is built to sell. Odoo is built to run the business behind the sale, from purchasing and warehousing to invoicing and accounting. Many growing brands use both, and that works well until order volume rises. Then stock levels drift apart, orders are copied by hand, and finance spends the month-end matching Shopify payouts to invoices.
An Odoo Shopify connector solves this by keeping both systems in sync automatically. However, connectors differ widely in what they sync, how they handle failures, and which Shopify API they use. This guide explains what a reliable Odoo Shopify integration should cover, how the sync works in practice, and how to choose and set up the right connector for a growing store.
Why connect Shopify and Odoo
Running Shopify and Odoo side by side without a connector creates two versions of every number. Shopify shows one stock level, Odoo shows another, and nobody is sure which one is right. As order volume grows, the gaps turn into real costs:
- Overselling: A product sells out in the warehouse but stays live on Shopify, which leads to cancelled orders and unhappy customers.
- Slow fulfillment: Orders wait for someone to copy them into Odoo before picking can start.
- Accounting gaps: Shopify payouts arrive net of fees and refunds, so they rarely match invoice totals without manual work.
- Blind purchasing: Buyers reorder stock based on figures that are already a day old.
The scale of the problem is large across retail. IHL Group’s 2025 inventory distortion study puts the global cost of out-of-stocks and overstocks at $1.73 trillion a year, equal to about 6.5% of retail sales. The same research found that fewer than one in four retailers have rolled out AI or machine learning in the areas most affected by inventory distortion. In short, inaccurate stock data still costs retailers far more than the tools that fix it.
A connector closes this gap only if Odoo itself is set up well, with clean products, warehouses, and taxes. That foundation is usually the first job for Odoo ERP development services before any sync goes live.
What an Odoo Shopify connector syncs
A complete Odoo Shopify synchronization covers more than orders and stock. The table below shows the usual scope, the direction of each flow, and which system should own the data.
| Data | Direction | Owner |
|---|---|---|
| Products, variants, and images | Odoo to Shopify | Odoo |
| Prices and price lists | Odoo to Shopify | Odoo |
| Available stock per location | Odoo to Shopify | Odoo |
| Orders and customers | Shopify to Odoo | Shopify |
| Fulfillment status and tracking numbers | Odoo to Shopify | Odoo |
| Refunds and returns | Shopify to Odoo | Shopify |
| Payouts, fees, and gift cards | Shopify to Odoo | Shopify |
The ownership column matters most. Each record should be edited in one system only. For example, if a team changes product prices directly in Shopify while Odoo also pushes prices, the next sync overwrites one of them without warning.
Notice that inventory appears as a one-way flow from Odoo. Sales still reduce stock in both systems, because each Shopify order reaches Odoo and creates a delivery. Odoo then recalculates and pushes the new available quantity back to Shopify. In practice, this behaves like two-way sync while keeping one clear source of truth.
How real-time sync actually works
A reliable Odoo Shopify API integration rests on three parts: the right Shopify API, webhooks for speed, and reconciliation for accuracy.
Why the GraphQL Admin API matters
Shopify marked its REST Admin API as legacy on 1 October 2024 and now directs all new apps and integrations to the GraphQL Admin API, according to Shopify’s developer documentation. This has practical effects for merchants:
- Variant limits: The REST API cannot read or write products with more than 100 variants, while the GraphQL product model supports up to 2,048 variants per product.
- New features: Shopify builds new capabilities, such as the latest product and inventory features, only for GraphQL.
- Bulk operations: GraphQL can export or update large catalogs in bulk, which is faster for stores with thousands of SKUs.
Therefore, a connector still built on REST may work today but can block catalog growth later. This is one of the first questions to ask any vendor.
Webhooks plus reconciliation
Webhooks deliver near real-time updates. When a customer places an order, Shopify sends an event to Odoo within seconds, and the order appears ready for fulfillment.
Webhooks, however, are not guaranteed. They can arrive late, arrive twice, or fail during an outage or server restart. A dependable connector therefore adds a scheduled reconciliation job, often every 15 to 60 minutes, that compares recent orders and stock levels and fixes anything that was missed. It also checks each order ID before creating it, so duplicate events never create duplicate orders.
The Shopify side may need attention too. Custom checkout fields, metafields, or a headless storefront often require small store changes, which Shopify development services can handle alongside the integration.
Shopify inventory management with Odoo
Inventory is where most connectors succeed or fail. A few design choices make the difference:
- Push available stock: Odoo should send the quantity that can actually be sold, which means on-hand stock minus units already reserved for other orders.
- Map locations to warehouses: Each Shopify location should match one Odoo warehouse or stock location, so a store with two warehouses never shows combined stock it cannot ship.
- Use a safety buffer: Holding back a small quantity on fast-moving items protects against overselling during flash sales.
- Handle kits and bundles: When a bundle sells, Odoo should reduce stock of each component and update every related listing.
Shopify order integration with Odoo
Orders also carry accounting details that basic connectors often ignore:
- Fulfillment flow: A Shopify order becomes an Odoo sales order and delivery. Once shipped, tracking numbers return to Shopify, which notifies the customer.
- Refunds and returns: Refunds in Shopify should create credit notes in Odoo, and returned items should go back into stock only after inspection.
- Payouts and fees: Shopify Payments deposits a net amount after fees. The connector should record fees as expenses and match each payout to the right invoices, which makes bank reconciliation far faster.
- Taxes and currencies: Tax lines and Shopify Markets currencies need fixed mappings to Odoo taxes and price lists.
Ready-made connector or custom integration?
Most businesses start with a ready-made Shopify ERP connector from the Odoo Apps Store. These modules are affordable and quick to install, and they cover standard flows well. Custom development becomes the better choice when the business has multiple Shopify stores, B2B pricing, complex bundles, high order volumes, or links to marketplaces and 3PL warehouses.
A middle path often works best. Experienced Odoo integration services can start from a proven connector and extend only the parts that differ, which keeps costs down without forcing the business into a generic setup.
Before choosing any option, check these points:
- API version: Does it use the GraphQL Admin API and support more than 100 variants per product?
- Odoo version: Does it support the current Odoo release, and is there an upgrade plan for the next one?
- Failure handling: Are failed syncs logged, visible, and retryable, with a reconciliation job behind the webhooks?
- Multi-location stock: Can it map several Shopify locations to separate Odoo warehouses?
- Accounting scope: Does it handle refunds, payouts, fees, and gift cards, or only orders?
- Multi-store support: Can one Odoo database connect to several Shopify stores or regional storefronts?
- Support: Who fixes a stuck sync during a sale weekend, and how fast?
How to set up an Odoo Shopify integration

A careful setup prevents most future problems. The usual sequence looks like this:
- Clean the catalog: Give every product variant a unique SKU in both systems, because the SKU is how the connector matches products. Mismatched SKUs are the most common cause of duplicate products.
- Create a custom app in Shopify: Generate API credentials with only the permissions the connector needs, such as products, orders, inventory, and fulfillments.
- Map the structure: Link Shopify locations to Odoo warehouses, taxes to Odoo taxes, payment methods to journals, and markets to price lists.
- Test on a staging copy: Run a small sync with a few products, then test refunds, partial shipments, cancelled orders, and a bundle sale.
- Go live in stages: Start with products and stock, then turn on orders, and finally add payouts and refunds once the first flows are stable.
- Monitor the first weeks: Review the error log daily and spot-check stock levels on top-selling items.
Importing historical orders
Most connectors can import past Shopify orders by date range. However, older orders should be imported carefully. Bringing them in as open sales orders can trigger new deliveries or double-count stock. A safer approach is to import them as completed, already-invoiced records, mainly for customer history and sales reporting.
For custom mappings, ongoing upgrades, or stores that keep adding channels, many businesses choose to hire an Odoo developer who already knows the integration and can maintain it over time.
Conclusion
An Odoo Shopify connector turns two separate systems into one connected operation. Orders reach the warehouse faster, stock stays accurate across every Shopify location, and finance can match payouts without spreadsheets. The results, however, depend on the details: a connector built on Shopify’s GraphQL API, webhooks backed by reconciliation, clear data ownership, and proper handling of refunds and fees.
Businesses that get these basics right can scale from hundreds to thousands of orders a day without adding manual work. In short, the right Odoo Shopify connector becomes the backbone of a growing eCommerce operation.
FAQs
Similar Blogs


Is XML-RPC removed in Odoo 20? The updated JSON-2 API timeline

Odoo WooCommerce connector: how to connect, sync, and automate your store (2026 guide)

Top Odoo Modules for AI & Automation: Best Apps for Business





