WooCommerce CSV guide · reviewed August 20, 2026
WooCommerce CSV variation parent: connect each row correctly
In WooCommerce’s built-in product CSV schema, each variation row uses Type set to variation and a Parent that identifies the variable product by SKU or ID. Prefix numeric IDs with id:, for example id:100. The parent row uses variable, and its attribute values align with each variation.
The exact parent formats and attribute fields are defined in the WooCommerce product CSV schema. A local preflight can find structural mismatches, but it cannot inspect products already stored in your site.
What belongs in the Parent column?
WooCommerce accepts the parent product’s SKU or ID. When using an ID, the schema requires the id: prefix, such as id:100. Exports use the SKU when possible. Product names are not listed as parent identifiers.
A parent SKU referenced by a variation must match the intended variable product. The variation itself also needs its own unique SKU and name in WooCommerce’s documented conversion workflow.
Minimal parent and variation structure
| Row | Type | SKU | Parent | Attribute value(s) |
|---|---|---|---|---|
| Parent product | variable | tshirt | Blank | S, M |
| Small variation | variation | tshirt-s | tshirt | S |
| Medium variation | variation | tshirt-m | tshirt | M |
The parent lists all available values in Attribute 1 value(s). Each variation lists one matching value. Additional attributes use the same numbered column pattern.
Converting an existing simple product takes two imports
WooCommerce documents a two-import process. First, import the full CSV with “Update existing products” selected to change the existing parent to variable and add its attributes. New variation rows are skipped during that update import.
Then remove the parent row and import the variation-only CSV with “Update existing products” unselected. WooCommerce creates the variations and attaches them to the existing parent. Back up the store or use staging before this workflow.
What a local preflight can detect
- A
variationrow with an emptyParent. - A parent reference that does not appear elsewhere in the same CSV.
- Duplicate product IDs or SKUs inside the selected file.
- Unsupported product types, malformed rows, and risky spreadsheet cells.
An unknown parent is a warning rather than proof of failure: the referenced product might already exist in the store, which a browser-only file check cannot verify.
Frequently asked questions
Can Parent contain a product name?
The built-in schema documents only a parent SKU or ID. Use id: before a numeric ID.
Must the parent row be in the same CSV?
Not always. A variation can reference a parent that already exists in the store. If the browser preflight cannot find that parent in the selected file, it warns because it cannot query your WooCommerce database.
Why did WooCommerce skip new variations during an update?
In WooCommerce’s documented conversion workflow, the first import updates the existing parent and skips variation rows that do not yet exist. The second, variation-only import creates them with “Update existing products” unselected.
Sources and safe-import note
Primary source: WooCommerce Product CSV Importer and Exporter documentation, including its schema and variable-product conversion workflow. Keep a current backup, use staging where possible, and verify the final product and variations after import.