A WPML matrix your import can actually read

Build one CSV or Google Sheet with every language in columns. Shirely reads that matrix, creates the WooCommerce products or categories, and connects the translations in WPML during the import.

Looking for a WPML matrix template? This page shows the structure Shirely expects: stable IDs, language columns and parent links where hierarchy matters.

One row is not enough

A multilingual WooCommerce product is not just a translated name. Prices, SKUs, attributes, categories and translation relationships all need to stay aligned.

Separate files drift

When every language has its own CSV, a small change becomes a comparison task. One missing row can break the relationship between a product and its translation.

WPML needs relationships

WPML stores language and translation links separately from WooCommerce product data. A useful import format has to carry enough information to build those links.

Use language columns, not language files

In Matrix Mode, each translated field uses the same base column name plus a language code. Shirely imports the default-language product first, then creates the translated products and connects them in WPML.

The important part is consistency: the same SKU or Matrix ID identifies the product across every language in the row.

Map Product Matrix

Language columns are recognised from the file header and mapped before the import starts.

Matrix Mode: EN, DE, FR
Import AsWooCommerce products
Match products bySKU
Default languageEnglish
Source columnMapped fieldSample
sku→SKUDRILL-18
name|en→Product name [EN]Cordless drill
name|de→Product name [DE]Akku-Bohrmaschine
name|fr→Product name [FR]Perceuse sans fil
regular_price→Regular price129.00

What the matrix needs to contain

Part of the fileWhy it matters
Stable product identifierUse SKU for products, or a Matrix ID when SKU is not the right business key.
Translated columnsUse field names with language suffixes, such as name|en, name|de and description|fr.
Shared product fieldsKeep prices, stock status and other non-translated values in regular columns.
Global attributesUse shared pa_* columns by default. Language-suffixed attribute columns require the explicit WCML Matrix opt-in and a taxonomy already configured as translatable.
Category source IDsUse stable category IDs instead of relying on translated names as the relationship key.
Parent source IDsFor category trees, each child points to the same parent source ID in every language.

The matrix is not a magic spreadsheet. It is a disciplined format: one business object, all its languages, and the IDs needed to connect them.

Map Category Matrix

Stable source IDs preserve the category tree while language columns create the WPML translations.

Matrix Mode: EN, DE, FR
Import AsProduct categories
Hierarchy keyparent_source_id
Default languageEnglish
Source columnMapped fieldSample
source_id→Source IDdrills
parent_source_id→Parent source IDtools
name|en→Name [EN]Drills
name|de→Name [DE]Bohrmaschinen
name|fr→Name [FR]Perceuses

Category trees need their own matrix

Product categories are where many WPML imports fail. Names can change between languages, but the tree still needs the same parent-child structure.

Shirely uses source_id and parent_source_id to create the category hierarchy and connect translated terms in WPML.

CSV, Sheets or a saved slot

Use the same Matrix structure in CSV or Google Sheets. A public Sheet can be imported without credentials; private Sheets and every export require a Service Account. A proven workflow can be saved as a 1.3.0 Automation slot.

Products are processed every run

Matrix imports are not skipped by Smart Sync. Use SKU or another stable identifier so Shirely can match rows to existing products when you re-import.

WPML is optional

Shirely can import regular WooCommerce catalogs without WPML. Matrix Mode is for stores that do need multilingual product and category relationships.

Schedule writers sequentially

Start with Run now and check Run History. WP-Cron is traffic-dependent; use system cron with WP-CLI when timing matters, and do not overlap imports that may change the same WPML/WCML objects.

Measured import context

CatalogAbout 8,500 WooCommerce products and 1,040 categories
Languages4 WPML languages
WorkflowProduct Matrix and Category Matrix import
Observed resultAbout 3 hours, compared with 12+ hours in a previous importer workflow
Server contextSEOHOST SH3 shared hosting, 3 vCPU, 6 GB RAM; external image downloads were the main bottleneck.

WPML matrix questions

Can I download a template?

Use the examples on this page as the structure. A real template should match your fields, languages, identifiers and taxonomy setup, so Shirely focuses on mapping the columns you actually use.

Can global attributes be translated?

Yes, through the explicit 1.3.0 WCML Matrix opt-in, but only when the global attribute taxonomy is already configured as translatable. Otherwise use the shared attribute path.

Does this edit WPML database tables directly?

No. Shirely imports through WordPress and WooCommerce workflows and creates the WPML relationships needed for the imported products or categories.

Turn the spreadsheet into the import plan

You pay the full price only once. Renewals are 30% off the first-year price — cancel anytime. The plugin continues to work without renewal; updates and email support end. 14-day money-back.