WooCommerce product CSV templates and examples

The short answer: the smallest WooCommerce product CSV has Type, SKU, Name and Regular price; a variable product adds a parent row and one row per variation that names the parent in Parent. Below are 8 small synthetic files: correct ones, one that CatalogDock fixes by itself, two with deliberate mistakes, an update pair and a supplier price list. Each says what the checker reports for it.

Download

Download all examples (ZIP)

Free, no email. The ZIP has a README.txt with the expected result of every file. The results are those of the CatalogDock checker (an automated file check on 2026-10-04); they are not a test import. Fictional products, no customer data.

1-ready-to-check/

Correct files: they pass the CatalogDock structural checks as they are.

Simple products

Expected: Passes the structural checks: 2 simple products, nothing to fix.

Type,SKU,Name,Regular price,Stock,Categories
simple,MUG-01,Mug,12.00,25,Kitchen
simple,MUG-02,Mug large,14.00,10,Kitchen

Variable product with three variations

Expected: Passes: the parent comes first, every variation names it in Parent and uses a size the parent lists.

Type,SKU,Name,Regular price,Parent,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global
variable,TS-001,T-Shirt,,,Size,"Small, Medium, Large",1,0
variation,TS-001-S,T-Shirt - Small,25.00,TS-001,Size,Small,1,0
variation,TS-001-M,T-Shirt - Medium,25.00,TS-001,Size,Medium,1,0
variation,TS-001-L,T-Shirt - Large,27.00,TS-001,Size,Large,1,0

Check a file →

2-fixed-automatically/

A file with a problem CatalogDock fixes by itself (the order of the rows).

Variation listed before its parent

Expected: VARIATION_BEFORE_PARENT, fixed automatically: the corrected file moves the parent above its variations and passes.

Type,SKU,Name,Regular price,Parent,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global
variation,TS-001-S,T-Shirt - Small,25.00,TS-001,Size,Small,1,0
variable,TS-001,T-Shirt,,,Size,"Small, Medium",1,0
variation,TS-001-M,T-Shirt - Medium,25.00,TS-001,Size,Medium,1,0

Check a file →

3-intentional-errors/

Files with deliberate mistakes. Do not import them: they show what the report says.

Parent SKU that does not exist

Expected: PARENT_NOT_FOUND: the variations name TS-01, but the parent is TS-001. Not fixed automatically; correct Parent yourself.

Type,SKU,Name,Regular price,Parent,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global
variable,TS-001,T-Shirt,,,Size,"Small, Medium",1,0
variation,TS-001-S,T-Shirt - Small,25.00,TS-01,Size,Small,1,0
variation,TS-001-M,T-Shirt - Medium,25.00,TS-01,Size,Medium,1,0

Variation value the parent does not offer

Expected: ATTRIBUTE_VALUE_NOT_IN_PARENT: a variation uses Large, the parent lists only Small and Medium. Not fixed automatically.

Type,SKU,Name,Regular price,Parent,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global
variable,TS-001,T-Shirt,,,Size,"Small, Medium",1,0
variation,TS-001-S,T-Shirt - Small,25.00,TS-001,Size,Small,1,0
variation,TS-001-L,T-Shirt - Large,27.00,TS-001,Size,Large,1,0

Guide: variations not linking →

4-update-pair/

Two files for “Update catalog”: a store export and a new supplier price list.

Store export (8 products)

Expected: Slot 2 of “Update catalog”: the export of the store, in the columns of Products → Export.

ID,Type,SKU,Name,Published,Stock,Backorders allowed?,Sale price,Regular price,Parent
201,simple,DK-LAMP-01,Desk lamp Oslo,1,14,0,,49,
202,simple,DK-LAMP-02,Floor lamp Oslo,1,6,0,,119,
203,simple,DK-RUG-01,Wool rug 120×170,1,3,0,159,189,
204,simple,DK-RUG-02,Wool rug 160×230,1,2,0,,289,
205,simple,DK-CUSH-01,Linen cushion sand,1,22,0,,29,
206,simple,DK-CUSH-02,Linen cushion moss,1,0,0,,29,
207,simple,DK-THR-01,Cotton throw,1,11,0,,59,
208,simple,DK-BSK-01,Seagrass basket,1,8,0,,35,

New supplier price list (Spanish headers)

Expected: Slot 1 of “Update catalog”. Compared with store-export.csv: 4 products change, 3 are unchanged, 1 SKU is not in the store, 1 store product is missing from the price list (reported, not deleted).

Código,Descripción,Precio,Existencias
DK-LAMP-01,Lámpara de mesa Oslo,52.00,14
DK-LAMP-02,Lámpara de pie Oslo,119.00,4
DK-RUG-01,Alfombra de lana 120×170,189.00,3
DK-RUG-02,Alfombra de lana 160×230,299.00,5
DK-CUSH-01,Cojín de lino arena,29.00,22
DK-CUSH-02,Cojín de lino musgo,29.00,15
DK-THR-01,Manta de algodón,59.00,11
DK-NEW-01,Jarrón de vidrio,24.00,10

How price and stock updates work →

5-supplier-price-list/

A supplier price list for “Prepare supplier file” (German headers, semicolons).

Supplier price list with two price columns

Expected: Not a WooCommerce CSV yet. In “Prepare supplier file” the suggested rules map Artikelnummer → SKU and Preis → Regular price; the purchase price EK-Preis is not suggested. 12 records after mapping.

Artikelnummer;Bezeichnung;Preis;EK-Preis;Bestand;Kategorie
DK-MUG-01;Keramikbecher Nordlicht;14.90;6.20;25;Küche
DK-MUG-02;Keramikbecher Fjord;14.90;6.20;18;Küche
DK-PLT-01;Frühstücksteller Ahorn;9.50;3.80;40;Küche
DK-PLT-02;Speiseteller Ahorn;12.50;4.90;32;Küche
DK-BWL-01;Müslischale Sand;8.90;3.10;0;Küche
DK-TWL-01;Geschirrtuch Leinen;7.90;2.70;60;Textil
DK-TWL-02;Geschirrtuch Karo;7.90;2.70;55;Textil
DK-APR-01;Kochschürze Canvas;24.00;9.40;12;Textil
DK-CND-01;Duftkerze Zeder;16.50;5.60;20;Wohnen
DK-CND-02;Duftkerze Feige;16.50;5.60;0;Wohnen
DK-VAS-01;Vase Steingut klein;19.90;7.30;9;Wohnen
DK-VAS-02;Vase Steingut groß;29.90;11.10;6;Wohnen

How supplier price lists are mapped →

A safe test import

  1. Use a staging copy of your store, never the live shop, and never the files of 3-intentional-errors.
  2. Products → Import, choose a file of 1-ready-to-check, keep “Update existing products” off, and check the column mapping screen.
  3. After the import, open the variable product and check that every variation is attached and has its size.
  4. The update pair only makes sense for products that exist: compare the files in CatalogDock first, then import the update files with “Update existing products” on.

Related: “Invalid or duplicated SKU” · variations not linking

Check your own file

When your file looks like these examples, check it before the import.

Check a file — free →

Runs in your browser · No files uploaded · Never connects to your store