โ† Back to guides

How to Integrate Shopify with Odoo

Running Shopify for your online store and Odoo for everything else? You're not alone โ€” it's one of the most common setups for Australian businesses that want best-in-class eCommerce without sacrificing ERP functionality. The key is connecting them properly so orders, inventory, and financials stay in sync without manual intervention.

This guide covers the full integration setup using Odoo's built-in Shopify connector (available in Odoo Enterprise) as well as considerations for third-party connectors.

Step 1: Understand what syncs between Shopify and Odoo

Before configuring anything, understand the data flow:

  • Products โ€” Sync product details (name, price, SKU, images, variants) between both systems. Decide which system is the "master" for product data.
  • Inventory levels โ€” Stock quantities sync from Odoo to Shopify so your online store shows accurate availability. When stock changes in Odoo (sales, receipts, adjustments), Shopify updates automatically.
  • Orders โ€” Shopify orders sync into Odoo as sales orders. This triggers delivery orders, invoicing, and accounting entries in Odoo.
  • Customers โ€” Customer records from Shopify create or update contacts in Odoo.
  • Payments โ€” Payment status syncs so Odoo knows which orders are paid. Actual payment reconciliation happens through your bank feed, not through the connector.
๐Ÿ’ก

The most important decision upfront is: which system is the master for product data? For most businesses, Odoo is the master (you manage products, pricing, and inventory in Odoo, and it pushes to Shopify). This prevents conflicts and ensures your ERP is the single source of truth.

Step 2: Install the Shopify connector in Odoo

Odoo Enterprise includes a native Shopify connector:

  • Go to Apps in Odoo and search for "Shopify".
  • Install the Shopify Connector module. This will also install the eCommerce base module if not already present.
  • Once installed, navigate to Sales > Configuration > Shopify.

If you're on Odoo Community or need more advanced features, third-party connectors are available on the Odoo App Store. Popular options include connectors from Jepal Technologies, Emipro, and VentorTech. These offer additional features like multi-store support, advanced mapping, and custom field syncing.

Step 3: Connect your Shopify store

  • In Odoo, go to the Shopify configuration page and click New to create a new Shopify instance.
  • Enter your Shopify store URL (e.g., yourstore.myshopify.com).
  • You'll need to create a Custom App in Shopify to generate API credentials:
  • In Shopify Admin, go to Settings > Apps and sales channels > Develop apps.
  • Click Create an app, give it a name (e.g., "Odoo Integration").
  • Under Configuration > Admin API scopes, grant access to: Products (read/write), Orders (read/write), Inventory (read/write), Customers (read), Locations (read), Fulfilments (read/write).
  • Click Install app and copy the Admin API access token.
  • Paste this token into Odoo's Shopify configuration.
  • Click Test Connection to verify the link is working.

Step 4: Configure product sync

  • In the Shopify configuration, go to the Products tab.
  • Set the sync direction: Odoo โ†’ Shopify (recommended), Shopify โ†’ Odoo, or bidirectional.
  • Map product categories โ€” Odoo product categories should map to Shopify collections or product types.
  • Configure variant mapping โ€” Odoo product variants (size, colour, etc.) map to Shopify variant options.
  • Set pricing rules โ€” decide whether Shopify uses the Odoo sale price directly or a specific pricelist (e.g., your "Online" pricelist).
  • Set image sync โ€” typically Odoo โ†’ Shopify so product images managed in Odoo appear on your store.
  • Run an initial product sync and verify that products, variants, prices, and images appear correctly in Shopify.
โš ๏ธ

Product matching between the two systems relies on the Internal Reference (SKU) field. Ensure every product in both Odoo and Shopify has a matching SKU before syncing. Mismatched SKUs will create duplicate products.

Step 5: Configure inventory sync

  • In the Shopify configuration, go to the Inventory tab.
  • Map Odoo warehouses to Shopify locations. If you have one warehouse, this is straightforward. For multi-warehouse setups, decide which warehouses contribute to Shopify's available quantity.
  • Set the sync frequency โ€” real-time (on each stock move) or scheduled (every X minutes). Real-time is ideal for high-volume businesses; scheduled works for most others.
  • Configure safety stock โ€” optionally hold back a buffer quantity so Shopify never shows more stock than you're willing to sell online. Example: 100 units in Odoo, safety stock of 10, Shopify shows 90 available.
  • Enable oversell protection โ€” configure Shopify to stop selling when Odoo stock hits zero. This prevents orders for products you can't fulfil.
  • Test by adjusting stock in Odoo and verifying the update appears in Shopify within your expected sync timeframe.

Step 6: Configure order sync

This is the most critical part of the integration โ€” getting orders flowing correctly:

  • In the Shopify configuration, go to the Orders tab.
  • Set the import frequency โ€” orders should import promptly (every 5โ€“15 minutes or in real-time via webhooks).
  • Configure the sales team and salesperson to assign to Shopify orders. This helps with reporting and commission tracking.
  • Set the payment journal โ€” typically a "Shopify Payments" or "Online Payments" journal for reconciliation.
  • Configure shipping product โ€” create a service product in Odoo called "Shipping" and map it so Shopify shipping charges appear as a line item on the sales order.
  • Configure tax handling โ€” decide whether Shopify's tax calculations or Odoo's fiscal positions take precedence. For Australian GST, ensure both systems are configured identically (10% GST inclusive or exclusive).
  • Set order status mapping: Shopify "Paid" โ†’ Odoo "Confirmed sales order". Shopify "Fulfilled" โ†’ Odoo delivery marked as done.
  • Test the full cycle: place a test order on Shopify, verify it appears in Odoo as a sales order, confirm it creates a delivery order, and mark it as shipped in Odoo to verify fulfilment status updates back in Shopify.

Step 7: Handle refunds and returns

  • Configure how Shopify refunds sync to Odoo. Options: create a credit note automatically, or create a return delivery + credit note.
  • For partial refunds, ensure the connector handles line-level refunds correctly โ€” not just full order reversals.
  • Set up a returns location in Odoo to receive returned products before they're inspected and restocked.
  • Test refund handling: issue a refund in Shopify and verify the corresponding credit note and stock return appear in Odoo.

Step 8: Set up payment reconciliation

Payment reconciliation is where many Shopify-Odoo integrations fall down. Here's how to handle it properly:

  • Shopify collects payments via Shopify Payments (Stripe), PayPal, or other gateways. These funds are paid out to your bank account in batches, minus Shopify's fees.
  • Create a Shopify Payments journal in Odoo (type: Bank). This acts as an intermediary account.
  • When orders sync, payments are recorded against this journal.
  • When Shopify pays out to your bank account, reconcile the payout in Odoo by matching the bank statement line against the outstanding Shopify journal entries.
  • Shopify fees should be recorded as an expense. Configure a "Shopify Fees" product and account so fees are automatically captured during reconciliation.
  • For PayPal payments, set up a similar separate journal. PayPal pays out independently of Shopify.
โ„น๏ธ

The most common reconciliation headache is Shopify payouts not matching individual orders because Shopify bundles multiple orders into a single bank deposit minus fees. Use the Shopify Payments journal as a clearing account to handle this cleanly.

Step 9: Configure fulfilment and shipping

  • When an order is confirmed in Odoo, a delivery order is created automatically.
  • Pick and pack the order in Odoo (using barcode scanning if configured).
  • When the delivery order is validated in Odoo, the fulfilment status should sync back to Shopify, marking the order as "Fulfilled" and triggering Shopify's shipping confirmation email to the customer.
  • If you use a shipping carrier integration (Australia Post, StarTrack, Sendle), the tracking number from Odoo should sync to Shopify so customers can track their delivery.
  • Test this end-to-end: confirm an order, process the delivery in Odoo, and verify Shopify shows "Fulfilled" with the tracking number.

Step 10: Go live and monitor

  • Run a final parallel test โ€” process 10โ€“20 real orders through both systems and verify everything matches: stock levels, order totals, tax amounts, and payments.
  • Monitor the sync log in Odoo for the first few weeks. Look for failed syncs, duplicate records, or mapping errors.
  • Set up error notifications so your team is alerted when a sync fails rather than discovering it hours later.
  • Review inventory accuracy weekly for the first month. Compare Shopify's stock levels with Odoo's to catch any drift.
  • Check payment reconciliation daily until you're confident the Shopify journal is clearing correctly against bank payouts.

Common pitfalls to avoid

  • Duplicate products โ€” Caused by mismatched SKUs between Shopify and Odoo. Clean up your SKU data before enabling product sync.
  • Stock discrepancies โ€” Usually caused by stock adjustments made in Shopify that don't sync back to Odoo. Always make stock adjustments in Odoo (the master) and let it push to Shopify.
  • GST mismatches โ€” Shopify and Odoo calculating GST differently. Ensure both systems use the same tax-inclusive or tax-exclusive pricing approach.
  • Overselling โ€” Sync delays can cause Shopify to sell products that have already been sold through other channels. Use safety stock buffers and set sync frequency as high as practical.
  • Ignoring Shopify fees โ€” If you don't account for Shopify's transaction fees, your bank reconciliation will never balance. Set up fee tracking from day one.

A well-configured Shopify-Odoo integration gives you the best of both worlds โ€” Shopify's excellent eCommerce experience for your customers, and Odoo's powerful backend for inventory, fulfilment, and financials. If you need help setting this up, get in touch.

Need help connecting Shopify to Odoo?

We've set up Shopify-Odoo integrations for retailers and eCommerce businesses across Australia. Get it configured properly from the start.

Get in touch โ†’