Pimcore WPML Connector
Most Pimcore ⇄ WooCommerce integrations stop at “push a product, get a product.” Add a second language or real product variants, and most of them quietly fall apart.
Categories get duplicated on every re-export. Translations overwrite each other. Variation attributes end up as untyped free text nobody can trust.
This connector was built to not do that. It’s a Pimcore Studio bundle syncing Categories, Brands, Attributes, Products, and Variations with WooCommerce — both directions, every locale, via WPML.
Making Pimcore the source of truth
The real point isn’t just “sync data” — it’s letting Pimcore be the one place your product data lives, with WooCommerce as a storefront that reflects it.
- Model your catalog in Pimcore, once. Categories, Brands, and Products already live there as Data Objects.
- Map each field, once, per class. Field Mapping connects any Pimcore field to its WooCommerce counterpart — no code.
- Export drives WooCommerce from Pimcore. Every edit goes out on the next export, updating the existing entity, never duplicating it.
- Import stays available for the reverse case — pulling in an existing WooCommerce catalog — but once your team edits in Pimcore, export is all you need day to day.
That’s the whole shift: stop editing product data in two places, and let Pimcore own it.
What it actually does
- Bidirectional sync — Export and Import for Categories, Brands, Attributes, Products, and Variations, each its own job type with its own history.
- Real multi-locale sync. Every entity exports per locale as a proper WPML translation group, linked together — not forked, unlinked copies.
- User-defined field mapping. Map any Pimcore field to any WooCommerce field per class. Localized fields get a locale picker automatically.
- Variation axis via Classification Store. Color, Material, and similar attributes are typed `select` fields backed by WooCommerce’s real term list.
- Update, don’t duplicate. If an entity already exists in WooCommerce, export detects the conflict and updates it instead of failing or duplicating.
- A real job engine. Every sync is an async, queued job with live progress, a full read/write/skip/fail breakdown, and structured logs.
Watch it work, step by step
Step 1 — Connect the store
- Open the WPML Connector plugin → Accounts.
- Click New account.
- Enter a name and the WooCommerce store URL.
- Enter the WooCommerce REST API Consumer Key and Secret.
- Add every locale this account should sync (e.g. en, de, fr).
- Set the Default locale.
- Save — the account is ready to map and run jobs against.
Step 2 — Map your fields
- Open Field Mapping, pick the account and class (Category).
- Click Add mapping.
- Choose the Pimcore field, then the matching WooCommerce field.
- If localized, pick the locale this row maps to.
- Save, and repeat for every field the category needs.
Same steps as above, with the class switched to Brand.
Step 3 — Push Pimcore data out to WooCommerce (export)
- Open Export → Category Export.
- Select the account.
- Click Run.
- Watch the job reach `completed`, with 0 failures.
Same steps as Category Export, under Export → Brand Export.
- Open Export → Attribute Export, select the account.
- Click Select attributes & Run.
- Check the attributes to sync (e.g. Manufacturer, Color, Material).
- Switch each variant-specific one to “Global attribute (variation axis)”.
- Click Run.
This creates the matching WooCommerce attributes and terms before any product goes out.
Same Run flow, under Export → Product Export. Run this after Category and Brand export.
Same Run flow, under Export → Variation Export. Run this after Product and Attribute export.
Each variant’s Color/Material goes out as a real WooCommerce product variation.
Step 4 — Pull WooCommerce data into Pimcore (import)
- Open Import → Brand Import, select the account.
- Click Run.
- Check the Data Object Tree once it completes — the brands now exist as Pimcore objects.
Same Run flow, under Import → Product Import. Run this after Category and Brand import.
Same Run flow, under Import → Variation Import. Run this after Product import.
Open an imported variant and switch locales — Color/Material now land correctly per locale.
Under the hood :
few things worth calling out if you’re loocking something similar:
- Async job queue. Every export/import dispatches to its own queue, consumed by background workers — never a request that blocks on a big sync.
- Translation-group-aware exporters. The default locale exports first; every other locale links back to it, matching WPML’s own translation-group shape.
- Classification Store as the variation-axis source of truth. Variant attributes reuse Pimcore’s existing Classification Store, as a localized `select` field sourced from WooCommerce’s real terms.