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.
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 Mode | With Matrix Mode | |
|---|---|---|
| Files | One per language | One, for all of them |
| Steps | Export, split, import, export again for IDs, map by hand, import each language, verify | Prepare the file, map the fields, import |
| TRID linking | Built by hand in a spreadsheet | Automatic |
| Category hierarchy | Rebuilt and checked after every language | Mirrored in the same pass |
| A catalog of 8,500 products and 1,000+ categories, four languages | 12+ 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.
Product Matrix
Import all products with all languages from a saved Google Sheet.
☁ Sheets ›Posts & Pages
Import posts, pages or a public custom post type — one saved Google Sheet per type.
☁ Sheets ›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.
Product Matrix
Export all products with all languages to a saved Google Sheet.
☁ Sheets ›Posts & Pages
Export posts, pages or a public custom post type — one saved Google Sheet per type.
☁ Sheets ›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
| Catalog | 8,500 products and 1,000+ product categories |
| Languages | 4 |
| Full run | About 3 hours |
| Server context | SEOHOST SH3 shared hosting, 3 vCPU and 6 GB RAM; external image downloads were the main bottleneck |
| Interruptions | Completed 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.