{"id":546547,"date":"2026-08-20T09:54:51","date_gmt":"2026-08-20T09:54:51","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=546547"},"modified":"2026-08-20T09:54:59","modified_gmt":"2026-08-20T09:54:59","slug":"pimcore-odoo-catalog-sync-connector","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/","title":{"rendered":"Pimcore &amp; Odoo Catalog Sync Connector"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong> Introduction<\/strong><\/h2>\n\n\n\n<p>The Pimcore 12 Odoo 19 Connector keeps your catalog in sync between Pimcore and Odoo 19.<\/p>\n\n\n\n<p>It syncs categories, attributes, products, and variant (configurable) products automatically, in both directions. Moreover, every sync runs as a background job inside Pimcore Studio.<\/p>\n\n\n\n<p>As a result, catalog management is faster and far more reliable.<\/p>\n\n\n\n<p>Keeping a Pimcore catalog and an Odoo instance aligned by hand doesn&#8217;t scale. So Webkul built the Pimcore 12 Odoo 19 Connector to remove the copy-paste.<\/p>\n\n\n\n<p>It bridges your Pimcore data model and your Odoo database. As a result, categories, attributes, products, and product variants all flow automatically, in both directions.<\/p>\n\n\n\n<p>It&#8217;s built natively for Pimcore 12 and Odoo 19. Also, it brings two big upgrades. First, every sync runs as a restartable background job.<\/p>\n\n\n\n<p>So large catalogs no longer block your screen or time out. Meanwhile, you watch each run on a live progress view. Second, it&#8217;s bidirectional.<\/p>\n\n\n\n<p>It both imports from and exports to Odoo. Because of that, you can seed Pimcore from an existing Odoo database, then push curated changes back out.<\/p>\n\n\n\n<p>The Pimcore 12 Odoo 19 Connector also lives natively inside the new Pimcore Studio UI. Furthermore, it adds its own screens for credentials, mapping, and the job runner.<\/p>\n\n\n\n<p>So there are no separate tools to learn.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"562\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo-1200x562.webp\" alt=\"odoo side menu\" class=\"wp-image-548593\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo-1200x562.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo-300x140.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo-250x117.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo-768x360.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo.webp 1288w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Server Requirements<\/h2>\n\n\n\n<p>The connector runs on top of a standard Pimcore 12 install, so if Pimcore runs, the connector runs. Here is what that stack needs.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Component<\/th><th>Requirement<\/th><\/tr><\/thead><tbody><tr><td><strong>PHP<\/strong><\/td><td>8.4 or 8.5 (CLI + FPM), with <code>pdo_mysql<\/code>, <code>intl<\/code>, <code>mbstring<\/code>, <code>curl<\/code>, <code>gd<\/code> \/ <code>imagick<\/code>, <code>zip<\/code>, <code>exif<\/code>, <code>opcache<\/code><\/td><\/tr><tr><td><strong>Symfony<\/strong><\/td><td>7.4 (installed as a Pimcore dependency)<\/td><\/tr><tr><td><strong>Pimcore<\/strong><\/td><td>Pimcore 12 \u2014 Platform 2026.1 (<code>pimcore\/pimcore: 2026.1.x<\/code>) with the Studio UI bundle<\/td><\/tr><tr><td><strong>Database<\/strong><\/td><td>MariaDB 10.11+ or MySQL 8.0+<\/td><\/tr><tr><td><strong>Web server<\/strong><\/td><td>Nginx or Apache 2.4<\/td><\/tr><tr><td><strong>Composer<\/strong><\/td><td>Composer 2<\/td><\/tr><tr><td><strong>Node.js<\/strong><\/td><td>20+ \u2014 only if you rebuild the Studio UI assets yourself<\/td><\/tr><tr><td><strong>Message queue<\/strong><\/td><td>A running Symfony Messenger worker (Supervisor is recommended) \u2014 this is what drives the background sync jobs<\/td><\/tr><tr><td><strong>Odoo<\/strong><\/td><td>Odoo 19 \u2014 self-hosted or Odoo.com, reachable from the Pimcore server over HTTP(S)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>A few PHP settings matter for large catalogs. So set <code>memory_limit<\/code> to at least <strong>512M<\/strong> (1G for big product imports), and raise <code>max_execution_time<\/code> for the CLI. Because the syncs run in the background, the web request itself never has to wait.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Key Features of the Pimcore 12 Odoo 19 Connect<\/strong><\/h2>\n\n\n\n<p><strong>Bidirectional sync<\/strong> \u2014 import and export for Categories, Attributes, Products, and Variant Products.<\/p>\n\n\n\n<p><strong>Asynchronous job engine<\/strong> \u2014 syncs run in the background, so they never block your work.<\/p>\n\n\n\n<p><strong>Live Job-Execution view<\/strong> \u2014 real-time status, read \/ created \/ updated counts, a run-history grid, and a one-click Stop.<\/p>\n\n\n\n<p><strong>Multi-language aware<\/strong> \u2014 maps your localized Pimcore content to Odoo&#8217;s translated fields.<\/p>\n\n\n\n<p><strong>Config-driven mapping<\/strong> \u2014 point the connector at your Pimcore classes; nothing to hard-code.<\/p>\n\n\n\n<p><strong>Reliable matching<\/strong> \u2014 a shared link between records keeps Pimcore and Odoo in step, so re-runs update instead of duplicating.<\/p>\n\n\n\n<p><strong>Variant support<\/strong> \u2014 Pimcore variant products map to Odoo product templates and their variants.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Connecting the Pimcore 12 Odoo 19 Connector to Odoo<\/h2>\n\n\n\n<p>The connector talks to Odoo over JSON-RPC. It supports two ways to authenticate, so it works with both self-hosted and Odoo.com (SaaS) instances.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Self-hosted Odoo<\/strong> \u2014 use your <strong>Host URL<\/strong>, <strong>Database<\/strong> name, <strong>Username<\/strong>, and <strong>Password<\/strong>.<\/li>\n\n\n\n<li><strong>Odoo.com \/ Custom plan<\/strong> \u2014 use your <strong>Host URL<\/strong> and a <strong>Bearer API Key<\/strong> instead of a username and password.<\/li>\n<\/ul>\n\n\n\n<p>That&#8217;s all you need from the Odoo side.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"573\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/credentiodoo-1200x573.webp\" alt=\"odoo credential\n\" class=\"wp-image-548599\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/credentiodoo-1200x573.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/credentiodoo-300x143.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/credentiodoo-250x119.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/credentiodoo-768x367.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/credentiodoo.webp 1287w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Setting Up the Pimcore 12 Odoo 19 Connector in Studio<\/h2>\n\n\n\n<p>In Pimcore, open <strong>Odoo Connector \u2192 Credentials<\/strong>. Then click <strong>Add credential<\/strong> and enter your Host, Database, Username, and Password (or an API Key). Next, click <strong>Test<\/strong>.<\/p>\n\n\n\n<p>The connector checks Odoo live and confirms the connection. So you get instant confirmation that everything is wired up.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"573\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooapi-1200x573.webp\" alt=\"odoo api \" class=\"wp-image-548613\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooapi-1200x573.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooapi-300x143.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooapi-250x119.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooapi-768x367.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooapi.webp 1287w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Object Mapping: the Connector Adapts to Your Catalog<\/h2>\n\n\n\n<p>Most connectors force you into fixed class names. This one, however, treats &#8220;which Pimcore class is an Odoo Product?&#8221; as a simple setting.<\/p>\n\n\n\n<p>On the <strong>Object Mapping<\/strong> screen, you point each Odoo entity at whatever classes your team already uses. So the connector adapts to your data model, instead of the other way around.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"573\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/mappignodoo-1200x573.webp\" alt=\"mapping odoo\n\" class=\"wp-image-548602\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/mappignodoo-1200x573.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/mappignodoo-300x143.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/mappignodoo-250x119.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/mappignodoo-768x367.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/mappignodoo.webp 1287w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>It comes pre-configured, so the Pimcore 12 Odoo 19 Connector works out of the box. Also, you can repoint it any time.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Attributes &amp; Categories<\/h2>\n\n\n\n<p>Categories sync both ways as a real tree. Import mirrors Odoo&#8217;s product category tree into Pimcore. Export, in turn, pushes your Pimcore hierarchy out and preserves nesting.<\/p>\n\n\n\n<p>Attributes carry your catalog&#8217;s own fields (color, size, material\u2026). The connector keeps the attribute definitions and their option lists aligned between Pimcore and Odoo, so dropdowns stay in sync automatically.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"566\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/exportjob-1200x566.webp\" alt=\"export category\" class=\"wp-image-548656\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/exportjob-1200x566.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/exportjob-300x142.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/exportjob-250x118.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/exportjob-768x362.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/exportjob.webp 1301w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"573\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooatribute-1200x573.webp\" alt=\"odoo atribute\" class=\"wp-image-548615\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooatribute-1200x573.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooatribute-300x143.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooatribute-250x119.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooatribute-768x367.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odooatribute.webp 1287w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Exporting to Odoo 19<\/h2>\n\n\n\n<p>With your mapping saved, open <strong>Export \u2192 Product<\/strong>. Then pick the connection and click <strong>Start<\/strong>. The connector then pushes your products out with the right localized values and categories.<\/p>\n\n\n\n<p>Exports are safe to re-run. Instead of duplicating, the connector updates what already exists. Sometimes a product can&#8217;t be exported. In that case, it&#8217;s flagged as a clear warning that tells you exactly what to fix.<\/p>\n\n\n\n<p>When standing up a fresh Odoo database, export <strong>Categories<\/strong> and <strong>Attributes<\/strong> first. Then add <strong>Products<\/strong> and <strong>Variant Products<\/strong> on top.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"573\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productexport-1200x573.webp\" alt=\"product export\n\" class=\"wp-image-548618\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productexport-1200x573.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productexport-300x143.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productexport-250x119.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productexport-768x367.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productexport.webp 1287w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Variant (Configurable) Products<\/h3>\n\n\n\n<p>Pimcore variant products map cleanly onto Odoo&#8217;s model. On <strong>Export \u2192 Variant Product<\/strong>, the connector turns a Pimcore parent-and-variants set into an Odoo <strong>product template<\/strong> plus its <strong>variants<\/strong>, matching on attribute combinations so re-runs update instead of duplicating.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"573\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productvariant-1200x573.webp\" alt=\" variant\" class=\"wp-image-548623\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productvariant-1200x573.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productvariant-300x143.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productvariant-250x119.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productvariant-768x367.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/productvariant.webp 1287w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Importing from Odoo 19<\/h2>\n\n\n\n<p>Already have a live Odoo database? Then import it into Pimcore in a few clicks. In fact, it&#8217;s the fastest way to onboard a catalog. Import is also additive.<\/p>\n\n\n\n<p>So each run creates what&#8217;s missing and updates what exists. As a result, you can bootstrap once and re-run any time without duplicates.<\/p>\n\n\n\n<p>Run the imports in order: <strong>Attributes, Categories, Products,<\/strong> then <strong>Variant Products<\/strong>. Product import then brings in the core fields, categories, and custom attributes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"566\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/liveimport-1200x566.webp\" alt=\"liveimport\" class=\"wp-image-548652\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/liveimport-1200x566.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/liveimport-300x142.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/liveimport-250x118.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/liveimport-768x362.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/liveimport.webp 1301w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"573\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importp-1200x573.webp\" alt=\"importproduct\" class=\"wp-image-548632\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importp-1200x573.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importp-300x143.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importp-250x119.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importp-768x367.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importp.webp 1287w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>Because import and export stay linked, the workflow is simple. First, import to seed Pimcore. Then enrich your content there. Finally, export it back.<\/p>\n\n\n\n<p>As a result, every change lands on the original Odoo record.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Result in Your Odoo 19 Database<\/h2>\n\n\n\n<p>Once the export finishes, your Pimcore data is live in Odoo. That includes categories, attributes, products, and their variants.<\/p>\n\n\n\n<p>For example, categories appear under <strong>Inventory \/ Sales \u2192 Product Categories<\/strong> with their hierarchy intact. Meanwhile, products appear in <strong>Sales \u2192 Products<\/strong> with their attributes and variant combinations.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"592\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo1dashbord-1200x592.webp\" alt=\"dashbord odoo\n\" class=\"wp-image-548658\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo1dashbord-1200x592.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo1dashbord-300x148.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo1dashbord-250x123.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo1dashbord-768x379.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo1dashbord.webp 1308w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"573\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importodoo-1200x573.webp\" alt=\"pimcore product import\" class=\"wp-image-548638\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importodoo-1200x573.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importodoo-300x143.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importodoo-250x119.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importodoo-768x367.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/importodoo.webp 1287w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Try the Pimcore 12 Odoo 19 Connector<\/h2>\n\n\n\n<p>Want to see it in action? Then try the live demo. It gives you a Pimcore 12 Studio environment with the connector already installed and connected to an Odoo instance.<\/p>\n\n\n\n<p>So you can map entities and run a sync without setting anything up. Finally, when you&#8217;re ready to roll it out, grab it from the Webkul Store.<\/p>\n\n\n\n<p>Your purchase includes the bundle, documentation, and support.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction The Pimcore 12 Odoo 19 Connector keeps your catalog in sync between Pimcore and Odoo 19. It syncs categories, attributes, products, and variant (configurable) products automatically, in both directions. Moreover, every sync runs as a background job inside Pimcore Studio. As a result, catalog management is faster and far more reliable. Keeping a Pimcore <a href=\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":778,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-546547","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pimcore &amp; Odoo Catalog Sync Connector - Webkul Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pimcore &amp; Odoo Catalog Sync Connector - Webkul Blog\" \/>\n<meta property=\"og:description\" content=\"Introduction The Pimcore 12 Odoo 19 Connector keeps your catalog in sync between Pimcore and Odoo 19. It syncs categories, attributes, products, and variant (configurable) products automatically, in both directions. Moreover, every sync runs as a background job inside Pimcore Studio. As a result, catalog management is faster and far more reliable. Keeping a Pimcore [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-20T09:54:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-20T09:54:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo-1200x562.webp\" \/>\n<meta name=\"author\" content=\"ranjan.bagisto322\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ranjan.bagisto322\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/\"},\"author\":{\"name\":\"ranjan.bagisto322\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b8a2305cdf9a9944115e70a338e3bdd\"},\"headline\":\"Pimcore &amp; Odoo Catalog Sync Connector\",\"datePublished\":\"2026-08-20T09:54:51+00:00\",\"dateModified\":\"2026-08-20T09:54:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/\"},\"wordCount\":1075,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo-1200x562.webp\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/\",\"url\":\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/\",\"name\":\"Pimcore &amp; Odoo Catalog Sync Connector - Webkul Blog\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo-1200x562.webp\",\"datePublished\":\"2026-08-20T09:54:51+00:00\",\"dateModified\":\"2026-08-20T09:54:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#primaryimage\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo.webp\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo.webp\",\"width\":1288,\"height\":603},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pimcore &amp; Odoo Catalog Sync Connector\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b8a2305cdf9a9944115e70a338e3bdd\",\"name\":\"ranjan.bagisto322\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/18a253ed0fb3e3ad904c221818573f346d0198eefac05e023faf4abf548f89ee?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/18a253ed0fb3e3ad904c221818573f346d0198eefac05e023faf4abf548f89ee?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"ranjan.bagisto322\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/ranjan-bagisto322\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pimcore &amp; Odoo Catalog Sync Connector - Webkul Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/","og_locale":"en_US","og_type":"article","og_title":"Pimcore &amp; Odoo Catalog Sync Connector - Webkul Blog","og_description":"Introduction The Pimcore 12 Odoo 19 Connector keeps your catalog in sync between Pimcore and Odoo 19. It syncs categories, attributes, products, and variant (configurable) products automatically, in both directions. Moreover, every sync runs as a background job inside Pimcore Studio. As a result, catalog management is faster and far more reliable. Keeping a Pimcore [...]","og_url":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2026-08-20T09:54:51+00:00","article_modified_time":"2026-08-20T09:54:59+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo-1200x562.webp","type":"","width":"","height":""}],"author":"ranjan.bagisto322","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"ranjan.bagisto322","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/"},"author":{"name":"ranjan.bagisto322","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b8a2305cdf9a9944115e70a338e3bdd"},"headline":"Pimcore &amp; Odoo Catalog Sync Connector","datePublished":"2026-08-20T09:54:51+00:00","dateModified":"2026-08-20T09:54:59+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/"},"wordCount":1075,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo-1200x562.webp","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/","url":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/","name":"Pimcore &amp; Odoo Catalog Sync Connector - Webkul Blog","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo-1200x562.webp","datePublished":"2026-08-20T09:54:51+00:00","dateModified":"2026-08-20T09:54:59+00:00","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo.webp","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/07\/odoo.webp","width":1288,"height":603},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/pimcore-odoo-catalog-sync-connector\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Pimcore &amp; Odoo Catalog Sync Connector"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b8a2305cdf9a9944115e70a338e3bdd","name":"ranjan.bagisto322","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/18a253ed0fb3e3ad904c221818573f346d0198eefac05e023faf4abf548f89ee?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/18a253ed0fb3e3ad904c221818573f346d0198eefac05e023faf4abf548f89ee?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"ranjan.bagisto322"},"url":"https:\/\/webkul.com\/blog\/author\/ranjan-bagisto322\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/546547","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/778"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=546547"}],"version-history":[{"count":38,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/546547\/revisions"}],"predecessor-version":[{"id":548660,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/546547\/revisions\/548660"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=546547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=546547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=546547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}