3 min read

WooCommerce Product Translation in Plain English

On the storefront, a translated product looks like one item with a language switch. Inside WordPress, it is a set of separate product records connected by the multilingual layer.

That distinction explains many confusing import problems. A translated title can be perfectly written while the language switcher still opens the wrong product, because content and relationship are two different pieces of data.

One product idea, several WordPress records

Each WPML language version has its own WordPress post ID and language code. WPML groups the related records with a translation group ID, commonly called a trid.

The group says “these records are translations of one another.” It does not make their local IDs portable. If you copy a product database row to another store, the same number may already belong to unrelated content.

For a standard cross-store product workflow, SKU is the practical stable key. Matrix ID / External ID can provide source identity in a multilingual Matrix workflow.

Decide what is translated and what is shared

Customer-facing copy commonly differs by language:

  • product title and long description;
  • short description;
  • slug;
  • category and tag names;
  • SEO title and meta description.

Operational values are commonly shared:

  • SKU;
  • base price;
  • stock quantity;
  • parent/variation identity;
  • many catalog references.

The precise sharing behavior also depends on WooCommerce, WPML/WCML, and the site's configuration. Write down the intended rule before building a source file.

Matrix Mode makes the relationship visible

Shirely Matrix Mode keeps the translations beside the shared product values:

sku,title|en,title|de,description|en,description|de,regular_price
DRILL-100,Power Drill,Bohrmaschine,18V drill,18V Bohrmaschine,149.99

The suffix after the pipe is a WPML language code. When WPML is active, Shirely uses this structure to create or update the language records and connect their translation relationships.

Matrix Mode does not translate the words. The source file still needs reviewed content for every language you intend to publish.

Categories and attributes are separate structures

Products can have correct translation groups while their categories are still wrong. Translated category hierarchy should use stable source_id and parent_source_id values rather than destination term IDs.

Global WooCommerce attributes are taxonomies. In Shirely 1.3, their shared path remains the default. Product Matrix offers an explicit Translate global attributes (WCML Matrix opt-in) for a store whose attribute taxonomy is already configured as translatable in WPML/WCML. Shirely does not change the WCML setting itself.

Treat products, categories, and global attributes as related but distinct things to verify.

Variable products add another relationship

A variable product has a parent plus variation records. Each variation needs a stable SKU and valid attribute values. In a multilingual store, the product translation relationships must coexist with the WooCommerce parent/variation structure.

A serious staging sample should therefore include a variable parent and at least two variations. Test the selectors in every language rather than assuming a successful import log proves the storefront works.

What to check after an import

Open a representative product in each language and confirm:

  • the correct title, descriptions, and slug;
  • the language switcher moves to the corresponding product;
  • the SKU, price, and stock follow the intended sharing rule;
  • translated categories have the correct parent;
  • global attribute labels and variation options are correct;
  • SEO fields render in the right language if they were imported;
  • a second import updates the same records.

When one check fails, identify the layer first: source content, product matching, WPML relationship, taxonomy, variation, or front-end cache. That is faster and safer than rerunning the full catalog blindly.

For the database relationship model, read WPML icl_translations explained. For the practical file structure, use the WPML product import guide.