FREE TEMPLATE
WooCommerce product CSV template: free download and column guide
A CSV that WooCommerce’s built-in product importer maps automatically, with one simple product and one variable product with four variations. Everything imports as a draft.
Download the WooCommerce CSV template
What’s in the template
The file uses the default English column names that WooCommerce writes when it exports products, so the importer maps nearly every column on its own. It contains:
- Stoneware Mug: a
simpleproduct. - Linen Cushion Cover: a
variableparent product with the attributes Color (Ivory, Clay) and Size (45 × 45 cm, 50 × 50 cm), followed by fourvariationrows, one for each combination.
Products use Published = -1, which WooCommerce imports as a draft. Image cells are empty: WooCommerce downloads each image URL into your Media Library during the import, so add your own public links first.
Column-by-column reference
| Column | What to enter | Example |
|---|---|---|
Type | simple, variable or variation (also grouped and external). | variable |
SKU | Unique stock keeping unit. Variations are linked to their parent through the parent’s SKU. | CUS-001 |
Parent | Variation rows only: the parent’s SKU, or id:123 for an existing product ID. | CUS-001 |
Name | Product name. Variations can leave it empty; WooCommerce names them automatically. | Linen Cushion Cover |
Published | 1 published, 0 private, -1 draft. | -1 |
Is featured? | 1 or 0. | 0 |
Visibility in catalog | visible, catalog, search or hidden. | visible |
Short description / Description | Text or HTML. | <p>Linen blend…</p> |
Tax status | taxable, shipping or none. | taxable |
In stock? / Stock | 1 in stock, 0 out of stock; optional stock quantity. | 1 |
Regular price / Sale price | Numbers with a decimal point, no currency symbol. Variable parents leave the price empty; each variation has its own. | 32.00 |
Categories | Comma-separated; use > for sub-categories. | Home > Cushions |
Tags | Comma-separated tags. | linen |
Images | Comma-separated public image URLs. The first is the featured image. | https://…/cushion.jpg |
GTIN, UPC, EAN, or ISBN | Barcode (WooCommerce 9.2 or later). Must be unique. Some versions don’t map this column automatically: choose the GTIN field in the mapping step. | 0123456789012 |
Attribute 1 name / Attribute 1 value(s) | Attribute name, and its values. The parent lists every value separated by commas; each variation lists exactly one. | Color / Ivory, Clay |
Attribute 1 visible | 1 to show the attribute on the product page. | 1 |
Attribute 1 global | 1 for a global attribute (usable in filters), 0 for a custom one. | 1 |
How a variable product is laid out
The parent row defines the product and lists every attribute value. Each variation row points to the parent with Parent and names one value per attribute. Put the parent above its variations.
Type,SKU,Parent,Name,Published,Regular price,Attribute 1 name,Attribute 1 value(s),Attribute 1 global,Attribute 2 name,Attribute 2 value(s),Attribute 2 global
variable,CUS-001,,Linen Cushion Cover,-1,,Color,"Ivory, Clay",1,Size,"45 × 45 cm, 50 × 50 cm",1
variation,CUS-001-IV-45,CUS-001,,1,32.00,Color,Ivory,1,Size,45 × 45 cm,1
variation,CUS-001-IV-50,CUS-001,,1,36.00,Color,Ivory,1,Size,50 × 50 cm,1
variation,CUS-001-CL-45,CUS-001,,1,32.00,Color,Clay,1,Size,45 × 45 cm,1
variation,CUS-001-CL-50,CUS-001,,1,36.00,Color,Clay,1,Size,50 × 50 cm,1If an attribute value itself contains a comma, write it as \, so WooCommerce doesn’t split it. More detail: variable products in a WooCommerce CSV.
How to import the file
- In WordPress, go to Products → All Products and click Import.
- Choose the CSV file. Leave Update existing products unchecked for new products, then click Continue.
- On the Column mapping screen, check that each column maps to the right field. Columns set to “Do not import” are skipped.
- Click Run the importer and keep the page open until it finishes.
- Open the imported drafts, check prices, variations and images, then publish.
If the upload is refused with “Sorry, this file type is not permitted for security reasons”, your site is blocking CSV uploads; ask your host to allow them or upload the file by SFTP as WooCommerce suggests.
Common mistakes
- Duplicate SKUs. With “Update existing products” unchecked, a SKU that already exists in your store is skipped.
- Variations that don’t match the parent. A variation’s attribute name or value that isn’t listed on its parent won’t be linked.
- Price on the variable parent instead of the variations. Customers buy variations, so each variation needs a regular price.
- Image links that redirect. WooCommerce doesn’t support URLs behind redirect scripts, such as some cloud-storage share links.
- Wrong encoding. Save the file as UTF-8 so accented characters import correctly.
Starting from a supplier price list?
If your products are in a supplier PDF or spreadsheet, Sheet2Store’s WooCommerce converter maps the columns, applies your markup, groups colors and sizes into variable products and writes this file with the parent and variation rows in the right order. Preview five rows free.
Frequently asked questions
Which WooCommerce importer is this template for?
The Product CSV Importer built into WooCommerce (Products → Import). Paid import plugins can read it too, but their column names and options may differ.
Why does Published use -1?
WooCommerce maps 1 to published, 0 to private and -1 to draft. Variations are enabled automatically when their parent is imported.
Do variations need a Name?
No. WooCommerce generates variation names from the parent name and the attribute values.
Can I import a variable product and its variations in one file?
Yes. Put the parent row above its variations and reference the parent’s SKU in the Parent column of each variation.
Convert a supplier file to a WooCommerce CSV
Upload a supplier PDF, Excel or CSV price list and download a CSV for WooCommerce’s built-in product importer, with variable products, variations and your selling prices. Preview five rows free.