WooCommerce CSV: what goes in the Parent column?

In a real Woo export, Parent is `id:<ID>` and not a SKU — and most parent references in that export did not resolve inside the file at all.

What you are seeing

You are building a WooCommerce variable-product CSV and cannot tell what the Parent column expects.

There is no error message for this one. That is the problem, not an omission on this page — the import reports success and the damage is only visible if you go looking for it.

Why it happens

The documentation reads as though Parent takes a SKU reference. In the real WooCommerce export we measured, it holds `id:<ID>` — a WordPress post ID — which is a value that only exists once the parent product is already in the database.

The sharper finding is what that implies about a Woo CSV in isolation. Only 5 of 86 parent references in that export resolved inside the file itself. A WooCommerce CSV can be internally incomplete and still look entirely well-formed, because the IDs it points at live in the site it came from.

How to fix it

  1. If you are round-tripping an export back into the SAME site, leave the `id:` references alone. They resolve because the posts already exist.
  2. If you are moving to a DIFFERENT site, do not expect those IDs to mean anything. Import the parent products first and rebuild the references from what the new site assigns.
  3. Do not construct `id:` values by hand. There is no way to know a post ID before the post exists, and a wrong one attaches a variation to the wrong product.

Where this came from

We broke a real Shopify store on purpose to answer these questions, and kept what it said. Nothing on this page is quoted from documentation.

  • In a real WooCommerce export, `Parent` is `id:<ID>` and not a SKU reference, and only 5 of 86 parent references resolve inside the file itself. A Woo CSV can therefore be internally incomplete and still look entirely well-formed.

What we did not measure. Measured against one real WooCommerce export, not against a live import. We have not run a file INTO a WooCommerce install, so this page describes the grammar we observed and makes no claim about what the importer accepts.

Observed 2026-09-05. The store this was measured on has since been deleted, so these answers are an archive rather than something we re-run — we would rather tell you the date than imply it is checked continuously.

Check your file before you upload it

The Pre-Flight Report reads your supplier file and names every blocker, with the row it is on, before you go near an importer. It is free, it needs no account, and it does not send your file to a model.

Check a file free