A ready-to-fill product CSV using the column names WooCommerce's built-in importer reads, with one simple product and one variable product wired to two variations. Validated clean against our own WooCommerce CSV Validator before publishing.
Download CSV (1.3 KB)The first data row is a standalone simple product. The next three rows are one product between them. The row typed variable holds the name, the descriptions, the main image and the full list of attribute values. Each row typed variation names that parent in the Parent column by its SKU, and carries one value per attribute. Position orders the variations. A variation row here leaves Name empty, because the file identifies it by Type and Parent.
A repeated SKU is an error: WooCommerce refuses a second product carrying one that already exists. Give each variation its own SKU. The Parent column points at the parent's SKU, so the two values have to match exactly, character for character. If the parent already lives in your store, you can point at it by database ID using the form id:123 instead.
Regular price and Sale price take a plain number. No currency symbol, no thousands separator, and a dot for decimals. A sale price at or above the regular price is an error, since nothing would then display as reduced. In this template both price columns on the variable parent row sit empty and each variation carries its own price. Stock is a whole number, and In stock? takes a yes/no value such as 1 or 0.
The Images column takes full URLs beginning http:// or https://. WooCommerce splits that cell on commas, so a second image goes in the same cell after a comma and the whole cell gets wrapped in double quotes. A space inside a URL breaks the download, so encode it as %20. The same quoting rule covers the Tags cell and the parent row's attribute value list.
Replace every EXAMPLE value. The SKUs, prices, dimensions and image URLs are placeholders, not real product data. Then put your filled-in file through the WooCommerce CSV Validator. It checks the column names, the numeric and price columns, and the parent-to-variation wiring, so the problems surface on screen before you touch your live catalogue.
Check a WooCommerce product CSV before you import it: missing columns, duplicate SKUs, orphaned variations and malformed prices, by row.
Convert a product CSV between Shopify and WooCommerce column formats in either direction, with every dropped column listed explicitly.
Generate consistent SKU codes in bulk from a custom pattern with variant permutations, sequential numbering and collision checking.
Turn a CSV or TSV table into JSON records, or flatten JSON back into a spreadsheet-ready table.