Why Integrate Shopify + Odoo?
Shopify handles the storefront. Odoo handles the back office — inventory, accounting, manufacturing, purchasing, and fulfillment. Without integration, you double-enter orders, manually update stock, and reconcile revenue by hand. Integration eliminates all of that.
What Syncs
| Data | Direction | Details |
|---|---|---|
| Products | Odoo → Shopify | Name, price, images, variants, stock levels |
| Orders | Shopify → Odoo | Sale orders auto-created in Odoo |
| Customers | Shopify → Odoo | Customer records synced as res.partner |
| Inventory | Odoo → Shopify | Stock levels updated after Odoo operations |
| Fulfillment | Odoo → Shopify | Tracking numbers sent back to Shopify |
| Refunds | Shopify → Odoo | Credit notes created in Odoo |
Integration Options
Option 1: Odoo Shopify Connector (OCA)
The OCA (Odoo Community Association) maintains an open-source Shopify connector:
- Free, open source
- Syncs products, orders, customers, inventory
- Webhook-based real-time sync
- Requires technical setup
Option 2: Third-Party Connectors
Several paid connectors available on the Odoo App Store:
- SyncBridge, Emipro, Techspawn, VentoCart
- $200-600 one-time or subscription
- GUI-based setup, less technical
- Support included
Option 3: Custom Integration
Build your own using Shopify Admin API + Odoo XML-RPC:
import shopify
import xmlrpc.client
# Shopify connection
shopify.ShopifyResource.set_site('https://your-store.myshopify.com/admin')
shopify.ShopifyResource.set_user('api_key')
shopify.ShopifyResource.set_password('api_secret')
# Odoo connection
odoo = xmlrpc.client.ServerProxy('https://odoo.company.com/xmlrpc/2/object')
# Sync orders
orders = shopify.Order.find(status='any', created_at_min='2026-01-01')
for order in orders:
# Create sale order in Odoo
odoo.execute_kw(db, uid, pwd, 'sale.order', 'create', [{
'partner_id': find_or_create_customer(order.customer),
'order_line': [(0, 0, {
'product_id': map_product(item.sku),
'product_uom_qty': item.quantity,
'price_unit': float(item.price),
}) for item in order.line_items],
}])Setup Steps (OCA Connector)
- Install the Shopify connector module in Odoo
- Create a Shopify private app (Settings → Apps → Develop apps)
- Grant API permissions: read/write products, orders, customers, inventory
- Configure the connector in Odoo with API key, secret, and store URL
- Map Odoo products to Shopify products (by SKU or barcode)
- Run initial sync (products → Shopify, then orders → Odoo)
- Enable webhooks for real-time order sync
Sync Architecture
Shopify Store ←→ Webhooks / API ←→ Odoo Connector Module
↓
Odoo Sale Orders
Odoo Inventory
Odoo Accounting
Odoo Fulfillment
↓
Tracking # → ShopifyCommon Issues
| Issue | Cause | Fix |
|---|---|---|
| Orders not syncing | Webhook not configured or URL unreachable | Verify webhook URL is HTTPS and publicly accessible |
| Duplicate customers | No email matching | Match customers by email address |
| Stock mismatch | Sync delay or manual Shopify edits | Use Odoo as single source of truth for inventory |
| Product variants missing | Attribute mapping incorrect | Map Odoo product attributes to Shopify options |
| Price not updating | Pricelist not synced | Configure which Odoo pricelist maps to Shopify price |
Best Practices
- Single source of truth: Manage inventory in Odoo, push to Shopify (not the reverse)
- SKU matching: Use consistent SKUs across both systems
- Test with sandbox: Use Shopify development store for testing before production
- Monitor sync logs: Check connector logs daily for failed syncs
- Webhook reliability: Implement retry logic for failed webhook deliveries
DeployMonkey + Shopify
Deploy Odoo on DeployMonkey with Shopify integration pre-configured. The AI agent helps map products, troubleshoot sync issues, and monitor order flow between systems.