WooCommerce product CSV templates and examples
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
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
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
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
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
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
A safe test import
- Use a staging copy of your store, never the live shop, and never the files of
3-intentional-errors. - Products → Import, choose a file of
1-ready-to-check, keep “Update existing products” off, and check the column mapping screen. - After the import, open the variable product and check that every variation is attached and has its size.
- 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