Integration

Odoo Catalog to Shopify: How to Sync Multilingual Products and Collections

When a business runs its product master in Odoo and sells direct-to-consumer through Shopify, the two systems drift apart fast. A new SKU, a new seasonal variant, a stock change — entered once in Odoo, then re-entered by hand in Shopify, in every language the storefront serves. That second entry is where errors, delays, and untranslated pages come from.

Odoo as the source of truth

The integration pattern that holds up: Odoo's product.template stays the single source of truth for SKUs, attributes, pricing, and stock. Shopify becomes a synced output, not a second place to maintain data. Products and variants push to Shopify through the Admin API whenever the Odoo record changes — no export file, no manual re-entry, no drift between what the ERP says is in stock and what the storefront shows.

Collections, generated from Odoo categories

Manually curated Shopify collections are the first thing to go stale. The fix is to map Odoo's product category structure directly to Shopify collections, so a product assigned to a category in Odoo appears in the matching storefront collection automatically. When a new category or seasonal line is added upstream in Odoo, the collection exists on Shopify without anyone touching the Shopify admin.

Multilingual content, generated per market

This is where most Odoo-to-Shopify integrations stop short — they sync the data fields but leave content generation as a manual step per language. The AI layer we build generates and localises SEO product copy, meta titles, meta descriptions, and structured data directly from the Odoo source fields, for each market language the storefront serves. A product entered once in Odoo comes out fully described, translated, and SEO-structured on Shopify — not just data-synced, content-complete.

The test for whether an Odoo-to-Shopify integration is actually working: does anyone still open the Shopify admin to manually write a product description or build a collection? If yes, the integration only solved half the problem.

What this looks like in practice

This is the pattern running for Teatower, an artisanal Belgian tea brand: Odoo stays the master for blends, stock, and pricing across retail, wholesale, and POS. The Shopify storefront runs a curated 314-product subset across 47 auto-maintained collections, live in 5 languages. The PrestaShop→Shopify URL migration was AI-matched rather than a blind redirect table — 441 legacy URLs analysed, 329 mapped to their exact Shopify equivalent with high confidence. Worth saying plainly: even a well-matched redirect is never as good as the original URL, which is part of why the migration cost real ground regardless — see below.

Organic Search sessions are up 24.6× and pageviews up 28.8× since July 2024 (124 → 3,046 sessions/month, 583 → 16,785 pageviews/month, per GA4) — and a new "AI Assistant" traffic channel now shows real sessions where none existed in 2024. Every new product page and blog post gets submitted to Bing and Yandex via IndexNow the moment it publishes, across all 5 locales, so time to market for a new SKU is one pass, not a queue waiting on organic discovery. In the interest of not just citing the headline number: the PrestaShop→Shopify migration itself cost real ground on top of this trajectory — Search Console shows daily clicks down roughly 55% between Oct 2025 and Jun 2026, which a July 2026 audit (23 issues found) is actively fixing. See the case study for the full breakdown.

See It On Your Data

We run a 30-minute live demo on a sample of your own catalogue.

See it on your data →