Variable products add two layers to a multilingual import: the parent product and its variations. With WPML active, each language also needs the correct translation relationship.
Use Matrix Mode for translated fields
In Shirely, Matrix Mode uses one row shape with language-suffixed columns:
sku,type,parent_sku,title|en,title|pl,regular_price,attribute_color|en,attribute_color|pl
SHIRT-001,variable,,Shirt,Koszula,,
SHIRT-001-BLUE,variation,SHIRT-001,Blue shirt,Niebieska koszula,29.99,Blue,Niebieski
The exact fields depend on the catalog. Keep stable SKUs for the parent and each variation, and keep parent references consistent.
Import order
- Test with one variable product and a small set of variations.
- Map product type, SKU, parent SKU, translated title fields, prices, and attributes.
- Preview the import and check that Matrix Mode is detected from the language columns.
- Run the import on staging, then inspect the parent product, variations, attributes, and WPML language switcher.
Repeat imports
For product re-imports, Shirely processes product rows every time. What prevents duplicates is matching: SKU, Matrix ID / External ID, or Product ID when the file comes from the same store. Do not treat Smart Sync as a product-skip feature.
Common mistakes
- Using translated product titles as the matching key.
- Changing variation SKUs between imports.
- Importing without WPML active and expecting Matrix Mode relationships.
- Testing only the default language and skipping the translated product pages.
For the general product workflow, see how to import WooCommerce products with WPML translations.