Automate Syncing New Shopify Products to Odoo with n8n

Struggling to keep your Shopify product listings perfectly synced with your Odoo inventory without manual errors? This n8n workflow automates the creation of new Shopify products into Odoo, saving hours and eliminating duplicate entries efficiently.
shopifyTrigger
odoo
code
+1
Learn how to Build this Workflow with AI:
Workflow Identifier: 1593
NODES in Use: Shopify Trigger, Odoo, Code, Filter

Press CTRL+F5 if the workflow didn't load.

Visit through Desktop for Best experience

Opening Problem Statement

Meet Sarah, an e-commerce manager running a thriving online store on Shopify while handling inventory and product data in Odoo ERP. Every time a new product is launched on Shopify, Sarah has to manually enter product details into Odoo to keep her sales and inventory systems aligned. This manual syncing takes her nearly 30 minutes per product, and sometimes duplicates or errors slip through, causing inventory confusion and lost sales. Multiply that by dozens of products weekly, and Sarah’s time bleeds into hours, distracting her from growth strategies.

This hands-on syncing challenge illustrates a common pain point for businesses juggling multiple platforms — especially between e-commerce frontends like Shopify and backend ERP systems like Odoo.

What This Automation Does

This n8n workflow automates syncing new Shopify products directly into Odoo’s product database. Here’s what happens when it runs:

  • Detects the creation of a new product in Shopify immediately via a Shopify Trigger node.
  • Checks if the corresponding product already exists in Odoo to prevent duplicates.
  • If the product is new, it automatically creates the product in Odoo, transferring key details like title, SKU, description, and price.
  • Blocks processing of products already existing in Odoo using a filter node.
  • The automation saves Sarah manual entry time, reducing errors by automating data consistency between Shopify and Odoo.

With this setup, you could save hours every week managing product catalogs, eliminating duplicated data entry, and accelerating product launches.

Prerequisites ⚙️

  • n8n account with workflow creation access (self-hosting optional).
  • Shopify store with Admin API access and an app generating an access token.
    📧 Shopify Trigger node requires this.
  • Odoo ERP instance with API access credentials configured.
    🔑 Odoo node credentials needed.
  • Basic familiarity with n8n workflow editor.

Step-by-Step Guide to Creating This Workflow

Step 1: Set up Shopify Trigger to Detect New Products

In n8n, click + Add Node → search and select Shopify Trigger.

Configure the node by selecting the topic products/create. This ensures the workflow triggers every time a new product is created in Shopify.

Connect your Shopify store credentials by linking the app access token you created.

Once saved, you should see the webhook URL generated. This URL is automatically called by Shopify on product creation; no manual triggering needed.

Common mistake: Forgetting to configure Shopify’s webhook to call the n8n webhook can cause the workflow never to trigger.

Step 2: Query Odoo for Existing Product Using the Shopify Product ID

Click + Add Node → select Odoo node (named here as Odoo6 in the workflow).

Configure it to perform a custom resource getAll operation on the product.product model.

Set a filter where the default_code field equals the Shopify product ID passed from the trigger:

{"filter": [{"fieldName": "default_code", "value": "={{ $('Shopify Trigger').all()[0].json.variants[0].product_id }}"}]}

This fetches existing products from Odoo matching the Shopify product’s unique identifier, if any.

Expected Outcome: This returns an array containing the product if it exists, or empty if not.

Step 3: Use a Code Node to Prepare Data and Identify Existence

Add a Code node named Code.

Use the following JavaScript to get Shopify product details and check if Odoo product exists:

var product_detail = $('Shopify Trigger').first().json;
var existing_product = $('Odoo6').item.json;
return {existing: existing_product.id ? true : false, product_detail: product_detail};

This snippet extracts the product detail from Shopify and checks if Odoo returned a product with an ID. It passes a boolean flag called existing to the next node.

Note: The code runs once per item, ensuring accurate data mapping.

Step 4: Filter Out Existing Products to Avoid Duplicates

Add a Filter node named Filter2 after the Code node.

Configure the condition to proceed only if existing is false — meaning the product doesn’t yet exist in Odoo.

If the condition fails (product already exists), the workflow halts and no further processing occurs for that product.

Common mistake: Using the wrong property to filter may lead to duplicate product creation.

Step 5: Create the New Product in Odoo

Add another Odoo node (named Odoo7).

Configure it to create an entry in the product.product resource.

Map these fields from Shopify product details:

  • name = product title
  • default_code = Shopify product ID (SKU)
  • description = product HTML description
  • list_price = product variant price

Save the node. Now, when a new Shopify product is created, this node writes it into Odoo automatically.

Expected Outcome: New products in Shopify appear reliably in Odoo within seconds.

Customizations ✏️

  • Add Inventory Data: Extend the Odoo7 node to include stock quantity and location fields from Shopify inventory data by editing fieldsToCreateOrUpdate.
  • Sync Product Updates: Add a Shopify trigger for products/update events to handle edits.
  • Notification on Sync: Add an email or Slack node after Odoo7 to notify the team when products sync successfully.

Troubleshooting 🔧

Problem: Workflow never triggers when creating a product in Shopify.

Cause: The webhook URL from the Shopify Trigger node is not registered with Shopify.

Solution: In Shopify Admin, navigate to Settings → Notifications → Webhooks, and add a webhook pointing to the n8n Shopify Trigger URL with the products/create topic.

Problem: Duplicate products created in Odoo.

Cause: The Filter2 node is misconfigured or not properly checking the existing flag.

Solution: Verify the filter condition is exactly ={{ $json.existing === false }} and that the Code node correctly flagging existing products.

Pre-Production Checklist ✅

  • Confirm Shopify app access token and webhook triggers are correctly set and active.
  • Verify Odoo credentials and permissions for product creation.
  • Test the workflow with a sample Shopify product creation to ensure Odoo gets created properly.
  • Backup your Odoo product database before deploying in production.

Deployment Guide

Activate the workflow toggle in n8n to set it live.

Monitor the workflow executions in n8n’s UI to see each trigger and output. Check for errors or failed executions.

Schedule regular checks for Shopify webhook health and Odoo API stability to maintain smooth syncs.

FAQs

Q: Can I use this workflow for Shopify product updates?
A: Not as is; you need to add a products/update trigger and handle update logic in Odoo.

Q: Does this workflow consume many API credits?
A: API usage is minimal per product sync but depends on Shopify and Odoo limits.

Q: Is my product data secure?
A: Yes, all data transfers are via secured API credentials you configure.

Conclusion

By setting up this n8n workflow, you’ve automated syncing new Shopify products into Odoo without manual entry or duplicate headaches. You’ve gained hours back weekly, improved product data integrity, and ensured real-time inventory updating between your sales channel and backend.

Next, consider automating product updates sync, inventory stock levels, or pricing changes with similar workflows to enhance your e-commerce ERP integration further. You’re well on your way to mastering seamless multi-platform automation!

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation in n8n (Beginner Guide)

A complete beginner guide to building an AI-powered SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free