Sheet2Store
Create account

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 simple product.
  • Linen Cushion Cover: a variable parent product with the attributes Color (Ivory, Clay) and Size (45 × 45 cm, 50 × 50 cm), followed by four variation rows, 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

ColumnWhat to enterExample
Typesimple, variable or variation (also grouped and external).variable
SKUUnique stock keeping unit. Variations are linked to their parent through the parent’s SKU.CUS-001
ParentVariation rows only: the parent’s SKU, or id:123 for an existing product ID.CUS-001
NameProduct name. Variations can leave it empty; WooCommerce names them automatically.Linen Cushion Cover
Published1 published, 0 private, -1 draft.-1
Is featured?1 or 0.0
Visibility in catalogvisible, catalog, search or hidden.visible
Short description / DescriptionText or HTML.<p>Linen blend…</p>
Tax statustaxable, shipping or none.taxable
In stock? / Stock1 in stock, 0 out of stock; optional stock quantity.1
Regular price / Sale priceNumbers with a decimal point, no currency symbol. Variable parents leave the price empty; each variation has its own.32.00
CategoriesComma-separated; use > for sub-categories.Home > Cushions
TagsComma-separated tags.linen
ImagesComma-separated public image URLs. The first is the featured image.https://…/cushion.jpg
GTIN, UPC, EAN, or ISBNBarcode (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 visible1 to show the attribute on the product page.1
Attribute 1 global1 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,1

If 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

  1. In WordPress, go to Products → All Products and click Import.
  2. Choose the CSV file. Leave Update existing products unchecked for new products, then click Continue.
  3. On the Column mapping screen, check that each column maps to the right field. Columns set to “Do not import” are skipped.
  4. Click Run the importer and keep the page open until it finishes.
  5. 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.

Start converting Get the free template