Every language, one import

Matrix Mode moves WooCommerce products and category trees across your WPML languages from a single CSV or Google Sheet. You do not maintain one file per language or assign TRIDs by hand; verify the imported relationships and hierarchy in every language.

New here? Shirely is an import and export tool for any WordPress site — products, posts, pages, custom post types, CSV or Google Sheets, with WPML or without it. This page is about what it adds when you do run WPML.

Translations in separate files

A file per language means one price change is edited in three, five or ten places — and any of them can drift out of step with the rest.

Category hierarchy in four steps

Import language A, export to collect the IDs WordPress assigned, build the mapping by hand, import language B, then check the hierarchy survived.

Attributes losing their links

Size and colour terms need exact WPML relationships. Mapping them by hand is slow, and a wrong row is invisible until a customer hits it.

All languages in columns

The language goes after a pipe. Shirely creates the default-language product first, then creates each translation and links it by WPML TRID.

Two rows below are two products across three languages — six WooCommerce entries, all linked.

matrix-products.csv

sku,name|pl,name|en,name|de,price
SHOE-01,Buty,Shoes,Schuhe,99.00
HAT-02,Czapka,Hat,Hut,29.00

Same catalog, two routes

 Without Matrix ModeWith Matrix Mode
FilesOne per languageOne, for all of them
StepsExport, split, import, export again for IDs, map by hand, import each language, verifyPrepare the file, map the fields, import
TRID linkingBuilt by hand in a spreadsheetAutomatic
Category hierarchyRebuilt and checked after every languageMirrored in the same pass
A catalog of 8,500 products and 1,000+ categories, four languages12+ hours~3 hours

The products are the easy half. It is the category tree that decides whether a multilingual import worked.

The tree comes in already linked

Each category has a source ID, and every child points to its parent source ID. The hierarchy is mirrored into every language and WPML TRIDs are assigned in the same pass.

No language-by-language ID handoff in the middle. After the run, inspect the resulting hierarchy in every language before treating the import as complete.

category-matrix.csv

source_id,parent_source_id,name|pl,name|en,name|de
tools,,Narzędzia,Tools,Werkzeuge
drills,tools,Wiertarki,Drills,Bohrmaschinen

Matrix Mode over Google Sheets

Everything Matrix Mode does with a CSV, it does straight from a sheet. Use the same name|pl columns, then start the import when the sheet is ready.

Import from saved sheet

Save a matrix once, then fetch the current sheet data when you start the import.

✓ Connected
Product Matrix

Import all products with all languages from a saved Google Sheet.

☁ Sheets ›
1 sheet
Posts & Pages

Import posts, pages or a public custom post type — one saved Google Sheet per type.

☁ Sheets ›
1 sheet
Category Matrix

Import taxonomy terms — one saved Google Sheet per taxonomy.

☁ Sheets ›

Matrix Export to Sheets

All languages in one file — one Google Sheet per export type.

✓ Connected
Product Matrix

Export all products with all languages to a saved Google Sheet.

☁ Sheets ›
✓ Connected
Posts & Pages

Export posts, pages or a public custom post type — one saved Google Sheet per type.

☁ Sheets ›
✓ Connected
Category Matrix

Export taxonomy terms — one saved Google Sheet per taxonomy.

☁ Sheets ›

A published Sheet can be imported without credentials. A private Sheet and every export require a Google Cloud Service Account you own. Category Matrix uses the same hierarchy fields over Sheets as it does over CSV.

Measured, not estimated

Catalog8,500 products and 1,000+ product categories
Languages4
Full runAbout 3 hours
Server contextSEOHOST SH3 shared hosting, 3 vCPU and 6 GB RAM; external image downloads were the main bottleneck
InterruptionsCompleted rows remain saved. Review the error and matching key before resuming from the available checkpoint or re-running

Translated or shared attributes

Global attributes use the shared path by default. The 1.3.0 WCML Matrix opt-in can use pa_*|lang columns only for attributes already configured as translatable; check the product and its variations in every language.

Run now before scheduling

Save a proven import or export as an Automation slot, start it with Run now, then use Run History as the completion gate.

WP-Cron is best-effort

Hourly, twice-daily and daily schedules depend on site traffic. Use system cron with WP-CLI when timing must be predictable, and do not overlap runs that write the same WPML/WCML objects.

Import every language at once

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.