Skip to content
CatalogImport Fix

Variation imports

WooCommerce variations not importing? Start with the parent.

A practical way to find the broken link between a product, its options, and its CSV rows.

Checked against official documentation9 October 2026

A finished import does not necessarily mean every size or color is ready to buy. When variations are missing, start with one affected product rather than repeatedly uploading the whole catalog. Keep the original file, write down the expected options, and use a separate working copy. This makes it easier to distinguish a structural problem from a store setting or an import choice.

1. Record what actually happened

Save the importer’s failed or skipped-row report and note your WooCommerce version. Pick one parent product and two expected variations. For each row, record its SKU, parent reference, attributes, and result message. A report saying a row was skipped needs a different response from a variation that exists in the admin but is invisible on the storefront.

Also record whether you selected Update existing products. Avoid changing this setting until you know whether those rows describe new items or existing records. Your first goal is to explain the result for this small family of products.

2. Draw the parent and child relationship

The official CSV schema uses variable for the parent and variation for a child. A child’s Parent references the parent SKU or an existing ID with the id: prefix. Check those fields side by side instead of guessing from similar product names.

Illustrative product family — not a complete import template
TypeSKUParentSize
variableTEE-BASEblankS, M
variationTEE-STEE-BASES
variationTEE-MTEE-BASEM

A parent missing from this CSV is a warning, not proof of an error. It may already exist in the store. A browser checker cannot look up your WooCommerce database. Verify the reference in the store before adding another parent row.

3. Compare options without inventing them

Check that the parent’s intended options match the child’s selected options. Watch for visually similar labels such as Medium, M, and M . Decide which label your store should use, then make the agreed change consistently in a copy. Do not expand the spreadsheet into every possible combination unless the supplier actually sells those combinations.

Compare one working product against the broken one. Keep local and global attribute choices deliberate; a matching display label alone is not a reason to change the store’s attribute setup. See the WooCommerce variable product guide when checking the product editor.

4. Protect prices and identifiers

Keep SKUs as text and compare the saved CSV with the source. If 00125 became 125, do not assume they identify the same item. Likewise, do not fill a missing variation price with zero or copy the parent’s price into every child without approval. Mark the unclear value and get the intended price before import.

5. Test one family, then inspect the storefront

Use a backup and a staging store where possible. Current WooCommerce versions support workflows that differ from older releases, particularly when adding variations during updates. Follow the workflow for your version in the official product CSV importer documentation, including any required row order or separate imports.

After the small test, compare expected and actual variation counts. Open the product, select each test option, and check its price, availability, image, and cart behavior. Keep the import report with the tested file. Only repeat the proven procedure on a larger batch after the small family behaves as intended.

Check the CSV locally for file-level issues, or request a scoped manual review if the store and file still disagree.

These are practical review steps, not an import guarantee. Always use the documentation for your WooCommerce version.