OdooBots
Loading
Integration · Shopify

Odoo Shopify integration

A Shopify store and an ERP disagree about stock within days of being connected badly. The storefront oversells because it is reading a number that was true an hour ago; the warehouse ships against a reservation Shopify has never heard of.

A good integration is mostly agreement, not code. Which system owns the product record, how stock is published, what an order becomes on arrival, and who gets told when a record will not go through.

Arun KumarOdoo Functional Consultant, 8+ years| Reviewed by Karthik Raj| Updated 20 October 2026| Covers Odoo 16–19, Community & Enterprise
0Odoo projects delivered
0Consultants & developers
One stockFigure both systems trust
ChennaiAmbattur, Tamil Nadu

Businesses running Odoo with OdooBots

Dhanalakshmi Industries logo Sanjeev Autoparts logo Electro Flux Equipments logo Anchor Marine Equipment Company logo NEXG logo PV Constructions logo SESS logo
Definition

What is Odoo Shopify integration?

Odoo Shopify integration keeps one product, stock, customer and order record across both systems, with a defined owner for each. Products and variants are published from Odoo or imported from Shopify, available stock is pushed out as it changes, paid orders land in Odoo as sales orders ready to pick, refunds and payouts reconcile against the Shopify payout statement, and failed records sit in a queue rather than disappearing.

The most common cause of overselling is not the connector. It is publishing on-hand stock instead of forecast available stock, so quantities already reserved for other orders are offered again.

Direction of truth
Which system owns a field. Decided per field, not per system, and the whole integration rests on it.
SKU match
The key that pairs a Shopify variant with an Odoo product. Usually internal reference, and it must be unique on both sides.
Forecast available
On hand minus reserved plus incoming. The figure worth publishing to a storefront.
Payout
Shopify Payments settling several orders as one deposit, net of fees. Reconciles to many invoices, not one.
What syncs

What moves between Shopify and Odoo

Six things move between a Shopify store and Odoo, and each one needs a direction before it needs a connector.

Products and variants

Title, description, images, options, barcodes and price, published from whichever side you decide owns the catalogue. Variants map to Odoo product variants rather than to separate products.

VariantsImagesPricing

Stock

Forecast available quantity pushed to Shopify as it changes, per location if you sell from more than one, with an optional buffer so a last unit is never sold twice.

ForecastPer locationBuffer

Orders

A paid Shopify order becomes an Odoo sales order with its customer, lines, discounts, shipping line and tax, ready for the warehouse to pick.

Sales orderDiscountsTax

Customers

Shopify customers and addresses matched to existing Odoo contacts by email or phone before a new record is created, so the same buyer is not created four times.

MatchingAddressesDedupe

Payments and payouts

Transactions recorded against the invoice, with Shopify Payments payouts reconciled as a batch deposit net of fees rather than invoice by invoice.

TransactionsPayoutsFees

Fulfilment and refunds

Despatch from Odoo marks the Shopify order fulfilled with its tracking number, and a Shopify refund raises the matching credit note.

TrackingRefundsCredit notes
How it works

How a record travels between Shopify and Odoo

A customer places an order and pays. Within a minute or two the order appears in Odoo as a sales order against a matched customer, stock is reserved, and the storefront quantity drops. The warehouse picks and despatches; the tracking number goes back to Shopify and the customer gets their notification. The invoice posts in Odoo, and when Shopify pays out, that deposit reconciles against the batch of orders it covers, net of fees.

Nothing in that chain is unusual. What decides whether it holds up is the handling of the cases around it: the order that arrives for a product Odoo does not have, the partial refund, the address that fails validation. Those go to a queue with an owner, not to a log file.

  • Orders arrive within a minute or two of payment, not at a nightly batch
  • Stock published as forecast available, optionally with a safety buffer
  • Customers matched on email or phone before a new contact is created
  • Despatch pushes tracking back; refunds raise credit notes automatically
  • Anything that fails lands in a queue with an alert and a named owner
Odoo shopify integration showing synchronised records between the two systems
Connected systems — how shopify and Odoo share one set of records.
Expertise · how we work

What we settle in week one of an Odoo Shopify integration

These are the decisions that are cheap to make now and painful to reverse once two systems have been exchanging records for a month.

  1. Which system owns the catalogue

    Odoo or Shopify, decided per field. Price and stock usually belong to Odoo; description and images often belong to Shopify because that is where the merchandiser works.

  2. The SKU matching key

    Internal reference, barcode or Shopify SKU. It must be unique and present on both sides before anything is switched on, and cleaning it is usually the largest single task.

  3. Which stock figure is published

    Forecast available rather than on hand, and from which warehouse or locations. This one decision prevents most overselling.

  4. Whether a buffer is held back

    Publishing one or two units fewer than you hold absorbs the gap between a sale and the stock update. Cheap insurance on fast-moving lines.

  5. Order status mapping

    What a Shopify fulfilment status means in Odoo and the reverse, including partial fulfilment, which is where most mappings are left vague.

  6. Tax and discount treatment

    How Shopify tax lines, shipping charges and discount codes land on the Odoo invoice so GST reporting is right the first time.

  7. Who owns the error queue

    A named person who checks failed records and an alert when the queue grows. Without this, two systems drift apart quietly until an audit finds it.

Trust · honest advice

Where an Odoo Shopify integration needs work

We would rather say this before you buy licences than after. These are the areas where we scope real development, recommend a different tool, or tell you the connector will not reach.

Shopify POS

In-store Shopify POS is a separate product with its own stock behaviour. Connecting it is a second piece of work, not part of the storefront sync.

Live stock at checkout

Stock is published, not queried in real time. A buffer handles the gap; a true live lookup at checkout is not how either system works.

Complex bundles and kits

A bundle sold on Shopify that must consume components in Odoo needs explicit modelling. It is configuration plus a little development, not a toggle.

Subscriptions and selling plans

Shopify subscription apps hold their own billing schedule. Reconciling that against Odoo subscriptions is a separately scoped job.

Markets and multi-currency pricing

Per-market pricing and currency rules can be mapped, but the rounding and tax behaviour has to be agreed rather than assumed.

Historic order import

Bringing years of past orders across is rarely worth it. We usually import open orders and customers, and leave history readable in Shopify.

Our services

Our Odoo Shopify integration process

Connecting Shopify to Odoo is less about the connector than about agreeing what is true where, and what happens when a record will not go through.

  1. What you are connecting

    Understand your catalogue size, how many locations you sell from, which app holds your stock today, and whether Shopify POS or subscriptions are in scope.

  2. Field and direction mapping

    Agree the owner of each field, the SKU matching key, which stock figure is published and how order statuses map in both directions, in writing before anything is built.

  3. Build and configure

    Connect Shopify to Odoo using the standard connector where one fits, and build only what the connector genuinely cannot reach. See Odoo customization.

  4. Test with your own data

    Your records, in a test database, including the awkward ones — the cancelled order, the partial refund, the product that exists on one side only.

  5. Error handling and alerts

    A queue for failed records with a named owner and an alert, because an integration nobody watches diverges quietly and the divergence is found at audit.

  6. Go-live and monitoring

    Cutover with a reconciliation on both sides, then hypercare, then ongoing support and AMC.

Trust · what it costs

What an Odoo Shopify integration costs

We do not publish one integration price, because the same connector costs very differently depending on the factors below. We do publish what moves the number, and the price is fixed in writing before work starts.

  • Catalogue size and variantsThousands of variants means real data preparation before the first sync.
  • SKU data qualityCleaning duplicate or missing references is usually the largest single task.
  • Number of storesEach additional Shopify store is another mapping and another set of rules.
  • Bundles and kitsSelling a bundle that consumes components needs explicit modelling.
  • Payout reconciliationMatching batched Shopify payouts net of fees is accounting configuration, not a connector setting.
  • Historic dataImporting past orders is optional and priced separately when you want it.
Why us

Why choose OdooBots for your Odoo Shopify integration

We start a Shopify integration with a spreadsheet, not a connector: every field, who owns it, which way it travels. That hour is why our stores do not oversell, and it is the step most integrations skip.

Based inAmbattur, ChennaiTamil Nadu 600053, India
Phone+91 98414 81435Mon–Sat, business hours IST
Delivered630+ Odoo projects30+ consultants and developers
Versions supportedOdoo 16 – 19Community and Enterprise
FAQ

Odoo Shopify integration: frequently asked questions

Can Shopify be integrated with Odoo ERP?
Yes. Products and variants, stock, orders, customers, payments, fulfilment and refunds all synchronise between the two. What decides whether the integration holds up is agreeing which system owns each field, which stock figure is published, and who checks the queue when a record fails.
Is real-time synchronisation supported?
Orders typically arrive in Odoo within a minute or two of payment, and stock is pushed out as it changes rather than on a nightly batch. It is near real time rather than instant, which is why a small stock buffer on fast-moving lines is worth configuring.
How do we stop the store overselling?
Publish forecast available stock rather than on hand, so quantities already reserved against other orders are not offered again, and hold back a buffer of one or two units on fast movers. Overselling is almost always this decision rather than a fault in the connector.
Can several Shopify stores connect to one Odoo?
Yes. Each store maps to its own channel with its own pricing, warehouse and tax rules, while sharing one product and stock record. Each additional store is its own mapping exercise, so it is scoped rather than assumed.
How are Shopify payouts reconciled?
Shopify Payments settles several orders as one deposit net of fees, so the payout reconciles against the batch of invoices it covers rather than one invoice at a time. Configuring this properly is what keeps your bank reconciliation clean.
Will integration affect our existing store?
The storefront keeps working as it does now. What changes is where records come from, so the first sync runs against a test database with your own data, including the awkward cases, before anything touches the live store.
Can Shopify POS be connected too?
It can, as a separate piece of work. Shopify POS has its own stock behaviour and is not part of the storefront synchronisation, so we scope it on its own rather than implying it comes along with the store.
Do you provide custom Shopify integration?
Yes. We use the standard connector wherever it fits and build only what it genuinely cannot reach — bundles that consume components, unusual tax handling, or a field mapping specific to your catalogue. See Odoo customization.
References

Sources and official documentation

Product capabilities stated on this page are documented by Odoo. The mapping advice, failure handling and limitations come from our own integrations.

Ready to connect Shopify to Odoo?

Tell us how many variants you sell and whether you ship from more than one location. Those two answers shape the mapping, and the diagnosis call is free.