Ecommerce Operations

WooCommerce Product Import CSV Template

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)

How the parent and variation rows fit together

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.

Every SKU in the file has to be unique

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.

How the price and stock columns behave

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.

Images, tags and attribute lists are comma-separated

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.

Before you import for real

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.

Where this comes fromThe column set follows WooCommerce's built-in product CSV importer and exporter, as of September 2026. Header spelling shifts with your store locale and with your weight and dimension unit settings, so a fresh export from your own store stays the final authority. This file was run through the WooCommerce CSV Validator on this site before publishing, and it reported zero errors, zero warnings and zero notices.
Share this templateLinkedInXWhatsAppFacebook
All templates