Shopify Connector
Sell on Shopify, run the business in Odoo: catalogue and stock out, orders back in
Shopify Connector links one Shopify store to Odoo 19. Products, variants, images and stock go out to Shopify, and orders, customers and addresses come back as ordinary Odoo sales orders, with Odoo as the system of record.
Odoo 19.0 · Community, Enterprise · Odoo.sh, On-premise · 104,30 € · Buy on Odoo Apps
Available for: Odoo 19.0
The problem
Without a connector, someone retypes every Shopify order in Odoo, with the customer, address, discount and shipping line, and the mistakes turn up on the invoice. Stock moves in the warehouse all day while the shop only finds out later, so customers buy what you no longer have. Prices and photos change in two places, and after a few months nobody can say which listing is current.
What it does
Catalogue out to Shopify
- Publish products with their variants: attributes become Shopify options, and each variant keeps its own price, SKU and barcode.
- Send the cost price separately, so your margin reports stay correct.
- Upload the main image and the gallery in order, with alt text. An unchanged photo is never uploaded again, so a catalogue run stays quick.
- Publish and unpublish to the Online Store and Point of Sale channels.
Stock the warehouse can trust
- Feed deliveries, receipts and stock counts into one queue that updates Shopify.
- Push the free quantity only, never the reserved one and never a negative number.
- Reach the shop within five minutes in normal operation, or switch on an immediate push if you need it.
Orders into Odoo
- Import Shopify orders as ordinary Odoo sales orders with lines, line and order discounts, the discount code, shipping as its own line, taxes and totals. The Odoo total matches the Shopify total to the cent.
- Keep the Shopify order name and number, currency, payment status and gateway name on the order. Payment labels map to your own wording through a table you control.
- Match each buyer on their Shopify id, then on their email, before creating a new contact, and reuse invoice and delivery addresses instead of duplicating them.
Fulfilment and cancellations
- Validate the delivery in Odoo to fulfil and close the Shopify order. Partial deliveries report only the quantities that actually went out.
- Cancel the Odoo sales order when the order is cancelled in Shopify. Cancelling in Odoo can cancel it in Shopify too, returning the stock and refunding the original payment method.
Built for the bad days
- Receive orders by webhook within seconds, with a sweep every five minutes that picks up anything that never arrived.
- Recognise and discard repeat notifications, so one sale never becomes two sales orders.
- Verify every incoming message against your secret before it is read, and throttle the connector's own API use before Shopify refuses a call.
- Park anything that keeps failing on a list with the reason and a Retry button, instead of hiding it in a log.
Who it is for
- Shopify merchants who already run stock, sales and invoicing in Odoo.
- Teams that retype Shopify orders into Odoo today.
- Shops that oversell because the storefront learns about stock movements too late.
- Businesses that want Odoo to stay the single owner of products, prices and stock.
Not a fit when:
- Importing an existing Shopify catalogue into Odoo: products travel from Odoo to Shopify only.
- Returns and refunds as Odoo credit notes, Shopify Payments payouts, collections or metafields.
- Several Shopify locations, or several stores per company.
- Databases on Odoo Online (SaaS), which cannot install third-party apps.
Install
Requires: Sales (sale_management), Inventory (stock), Contacts (contacts), Invoicing (account), Discuss (mail)
- Buy Shopify Connector on the Odoo Apps Store for Odoo 19.0.
- Add the module to your Odoo.sh project or to the addons path of your on-premise server.
- Update the apps list in Odoo and install Shopify Connector. The Sales, Inventory and Contacts apps are installed with it if they are missing.
Odoo Online (SaaS) does not allow third-party apps, so the connector cannot be installed there. Use Odoo.sh or an on-premise Odoo 19 database, Community or Enterprise.
Configure
- In your Shopify admin, create a custom app and grant it access to products, inventory, orders, customers and fulfillment. Copy the client ID and client secret it gives you.
- In Odoo, add the store: enter the store domain and the two keys, and pick the warehouse the shop sells from.
- Register the webhooks with one button, so new orders arrive within seconds.
- Give every product variant an internal reference. That reference is what keeps the two catalogues tied together.
- Mark the products to publish, choose Online Store and or Point of Sale, and let the first export run.
| Setting | What it does |
|---|
| Store domain | Your shop address, for example yourshop.myshopify.com. |
| Client ID and client secret | The keys of the custom app you created in Shopify. |
| Warehouse | The Odoo warehouse whose free stock the shop sells from. |
| Webhooks | Registered from Odoo with one button; needed for orders to arrive within seconds. |
| Internal reference | Required on every variant before the first export. |
| Publish to | Online Store and or Point of Sale, per product. |
| Payment label mapping | A table that maps Shopify payment status and gateway names to your own labels. |
How to use it
Run the first export
- Make sure every variant has an internal reference.
- Mark the products to publish and start the export. It runs in batches and is deliberately gentle on Shopify rate limits, so a large catalogue can take days the first time.
- After that, product, price and stock changes follow on their own.
Work in Odoo as usual
- Create products, change prices, receive deliveries and count stock in Odoo. Each change is noted after your save and sent to Shopify in batches.
- Warehouse work never waits on Shopify: receipts and deliveries post immediately and the shop update follows.
Handle Shopify orders
- New orders arrive as Odoo sales orders with customer, addresses, payment status and totals.
- Ship the order in Odoo. Validating the delivery marks it fulfilled and closed in Shopify.
- Check the failure list now and then: anything that kept failing shows the reason and a Retry button.
Limits
- Products go from Odoo to Shopify only; an existing Shopify catalogue is not imported. A product that appears on an order can be created automatically so the sale is not blocked, and you can switch that off.
- Partial returns and credit notes are not covered yet.
- Shopify Payments payouts and bank reconciliation, collections and metafields are not included.
- One Shopify location and one store per company.
- It cannot be installed on Odoo Online (SaaS).
Frequently asked questions
How do I connect Shopify to Odoo 19?
Create a custom app in your Shopify admin with access to products, inventory, orders, customers and fulfillment, then enter the store domain and its two keys in Odoo, pick the warehouse and register the webhooks. Shopify Connector then exports your products and imports new orders.
How fast does stock from Odoo reach my Shopify store?
Within five minutes in normal operation. Changes are collected as you work and sent in batches, which keeps warehouse screens fast. An immediate push is available as an option if you need it.
Can I import my existing Shopify products into Odoo?
Not today. Products travel from Odoo to Shopify only. The one exception is that a product appearing on an order can be created automatically so the sale is never blocked, and you can switch that off.
If someone deletes a product in Shopify, is it deleted in Odoo?
No. Nothing that happens in Shopify can delete or archive an Odoo product. The connector notices the listing is gone, puts the product on hold with the reason and waits for you to decide whether to send it again.
Does my data pass through a third-party server?
No. Your Odoo database talks to your Shopify store and nothing else. There is no middleware, no licence server and no telemetry.
Which Odoo versions and editions does the Shopify Connector support?
Odoo 19.0, Community and Enterprise, on-premise or on Odoo.sh. It needs the Sales, Inventory and Contacts apps, which it extends. Odoo Online cannot install third-party apps.