Translation Groups
Understand how WPML translation groups link source products to their translations.
What Are Translation Groups?
Translation groups are unique IDs that link a source product to all its translations.
Example:
Product ID 123 (English) → Group: woocommerce_product_123
Product ID 456 (Spanish) → Group: woocommerce_product_123
Product ID 789 (French) → Group: woocommerce_product_123
All three products share the same group, so WPML knows they're translations of each other.
Why They Matter
Translation groups enable:
- Language switcher: Clicking "Spanish" on English product takes you to Spanish version
- Translation management: WPML admin shows which products have translations
- Inventory sync: WPML can sync stock across translations (optional)
- Relationship preservation: Deleting source product can optionally delete translations
Without correct groups: Translations appear as separate unrelated products.
How WooTUI Handles Groups
When you translate with WooTUI:
- Reads translation group from source CSV (
Meta: _wpml_import_translation_group) - Preserves the group ID for all translated products
- Writes group to output CSV for each translation
Result: After import, WPML automatically links products correctly.
You don't need to manually edit translation groups!
Group Format
Format: woocommerce_product_[ID]
Where [ID] is:
- The source product's WordPress Post ID
- OR a custom group ID you set
Examples:
woocommerce_product_123woocommerce_product_789
All translations of a product must have the exact same translation group ID. WooTUI ensures this automatically.
Common Issues
Translations Not Linked
Problem: Spanish and French versions show as separate products, not translations
Cause: Translation group IDs don't match
Solution:
- Export products and check
Meta: _wpml_import_translation_groupcolumn - Ensure all translations of a product have identical group IDs
- Re-import if groups are mismatched
Source Product Missing
Problem: Translation exists but source product deleted
Result: Translation becomes orphaned (no source)
Solution:
- Re-import source product
- Or delete orphaned translations via WPML → Translation Management
Group ID Changed Unexpectedly
Problem: After re-import, products have different translation group IDs
Cause: WooCommerce assigned new Post IDs on import
Solution:
- Always import with "Update existing products" enabled
- Match by ID or SKU to preserve Post IDs
- Don't manually edit group IDs unless necessary
When to Manually Edit Groups
Rarely needed, but use cases include:
Merging Translation Groups
If you accidentally created duplicate products:
- Open translated CSV
- Change group IDs to match the correct product
- Re-import
Creating Custom Groups
For imported products from another system:
- Assign custom group IDs:
woocommerce_product_custom_001 - Ensure all translations share the same custom ID
Verifying Translation Groups
In CSV
Open CSV and check:
ID,Name,Meta: _wpml_import_translation_group
123,T-Shirt,woocommerce_product_123
456,Camiseta,woocommerce_product_123
789,T-shirt,woocommerce_product_123
All three rows should have the same group ID.
In WordPress Admin
- Go to WPML → WooCommerce Multilingual
- Find the source product
- Click translation flags to see linked translations
- All translations should be listed together
Best Practices
1. Never Delete Translation Group Columns
Always include these columns in your CSV:
Meta: _wpml_import_source_language_codeMeta: _wpml_import_language_codeMeta: _wpml_import_translation_group
Even if you don't translate them, WPML needs them for import.
2. Preserve Groups When Filtering
If you export a subset of products:
- Ensure you include all translations of a product (not just source)
- Keep translation group column intact
- Don't split translations across multiple CSVs
3. Backup Before Group Changes
If manually editing translation groups:
- Backup database first
- Test with 1-2 products
- Verify links work before doing full import
Next Steps
- Handling Existing Translations - Update strategies
- Importing Translations - Import best practices