Variants
UnoPim configurable products map to WooCommerce variable products. Variant axes (the "size", "colour", "material" attributes that vary between variants) become WooCommerce variation attributes. Each variant becomes a WooCommerce variation under the parent variable product.
Concepts
| UnoPim term | WooCommerce equivalent |
|---|---|
| Configurable product | Variable product |
| Variant | Product variation (child of the variable parent) |
| Super attribute / variant axis | A WooCommerce attribute marked "used for variations" on the parent |
Pull (UnoPim → WooCommerce variants)
For an incoming configurable product:
- The parent is created or updated as a WooCommerce variable product, and each variant axis attribute is marked "used for variations".
- For each variant in UnoPim:
- The connector resolves the axis combination (e.g.
color=red, size=M). - It finds or creates the matching variation under the parent.
- It applies the variant axis values, plus any non-axis attributes from your mapping.
- It applies price, stock, SKU.
- The connector resolves the axis combination (e.g.
- Per-variant images are pulled separately, queued in the background so they don't block the parent product import.
Push (WooCommerce → UnoPim variants)
When you save a variable product:
- The parent is sent as a UnoPim configurable product, with the list of variant axes.
- Each variation is sent as a separate UnoPim product, with its own SKU and variation values.
- Per-variant images are sent to UnoPim's media area.
Variant images
Some UnoPim setups attach a different image per variant — for example a red T-shirt and a blue T-shirt with their own photos. The connector pulls each variant's image separately and sets it as the featured image on the matching variation.
Variant images are queued in the background, so they don't block the rest of the import.
How variant axes are resolved
A UnoPim configurable product knows which attributes are its axes. WooCommerce stores the same fact via the parent product's "used for variations" attributes.
The connector reads UnoPim's variant axes, finds the matching WooCommerce attribute taxonomies, and marks them as "used for variations" on the parent. If a UnoPim axis has no matching WooCommerce taxonomy (rare), the importer creates one automatically.
Family schema
The product's UnoPim family decides which attributes are valid as variant axes. If a product accidentally lists an attribute that the family doesn't allow as an axis, the connector logs an error ("axis outside family schema") and skips that variant.
Channel availability per variant
Each variant can be active on some channels and inactive on others. The pull side translates this into:
- Per-variation visibility
- Per-variation publish status (published, private, draft)
Edge cases
A UnoPim product converts simple → configurable
The existing simple WooCommerce product is re-typed to variable. Its existing fields are preserved. The same happens in reverse on push.
A variant is deleted in UnoPim
Behaviour depends on your On-delete setting:
- Trash — the variation is moved to the trash
- Delete — removed permanently
- Skip — the variation stays even though UnoPim removed it
Variant SKUs collide with the parent SKU
UnoPim and WooCommerce both require unique SKUs across products and variations. A SKU collision logs an error and the offending variant is skipped.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Variations pulled but with no axis attributes | The attribute cache is stale | Click Refresh targets on the Attribute Mapping tab |
| WooCommerce variations pushed without their parent | A race during a bulk push | Use Push All Products instead of pushing variants one by one — the connector handles parent-then-variant order |
| Variant images don't appear | They're still in the queue | Wait — variant images are background-loaded |
| "Axis outside family schema" | The family doesn't allow that attribute as a variant axis | Edit the family in UnoPim |
The connector also exposes hooks for developers who need to extend it.
