WooCommerce Sample Products CSV, Template & Validator
Download a ready-to-import WooCommerce sample products CSV with 26 demo products, generate a blank import template with the exact column headers, or paste your own CSV to validate it against WooCommerce's importer schema and catch errors before you import. Runs entirely in your browser.
Columns
Preview
15 columns| Type | SKU | Name | Published | Is featured? | Visibility in catalog | Short description | Description | Regular price | Sale price | In stock? | Stock | Categories | Tags | Images |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| simple | WS-TSHIRT-01 | Classic Cotton T-Shirt | 1 | 0 | visible | Soft, breathable everyday tee. | 100% ring-spun cotton classic t-shirt. | 19.99 | 15.00 | 1 | 100 | Clothing > T-Shirts | cotton, summer | https://example.com/images/tshirt.jpg |
| simple | WS-MUG-01 | Ceramic Coffee Mug | 1 | 0 | visible | Soft, breathable everyday tee. | 100% ring-spun cotton classic t-shirt. | 12.50 | 1 | 100 | Kitchen > Mugs | ceramic, gift | https://example.com/images/tshirt.jpg |
What this tool does
WooCommerce ships with a built-in product importer, but it is unforgiving about format: the column headers have to match what it expects, and values like prices, stock flags and visibility only accept particular forms. Get one wrong and the import either fails outright or silently creates products with missing data.
This page solves that three ways:
- 1Sample products — download a filled demo catalog of 26 products, ready to import into a fresh or staging store with no editing at all.
- 2Generate template — pick the columns you need and get a blank CSV with correct headers and example rows to fill in.
- 3Validate CSV — paste or drop a CSV you already have and check it against the importer's rules before you run it.
How to use it
To get a working sample catalog
- 1Open the Sample products tab above.
- 2Click Download sample products CSV.
- 3In WordPress go to Products → Import, choose the file, and click Continue.
- 4WooCommerce maps every column automatically. Click Run the importer.
To build a template for your own catalog
- 1Open the Generate template tab and tick the columns you need. Type and Name are locked on because the importer requires them.
- 2Choose how many example rows to include — they show the exact formatting each column expects.
- 3Download the template, then fill it in with your products in Excel, Numbers or Google Sheets.
- 4Export as CSV (UTF-8) and run it back through the Validate tab before importing.
What the CSV looks like
A minimal WooCommerce import needs only two columns. This is a completely valid file:
Type,Name
simple,Classic Cotton T-Shirt
simple,Ceramic Coffee MugIn practice you want prices, stock and images. A realistic simple product looks closer to this:
Type,SKU,Name,Published,Regular price,Sale price,In stock?,Stock,Categories,Images
simple,WS-TEE-001,Classic Cotton T-Shirt,1,19.99,15.00,1,120,Clothing > T-Shirts,https://example.com/tee.jpgVariable products need one row for the parent plus one row per variation. The parent lists every attribute option; each variation names its own value and points back via Parent:
Type,SKU,Name,Regular price,Parent,Attribute 1 name,Attribute 1 value(s)
variable,WS-HOODIE-100,Pullover Hoodie,49.99,,Size,"S, M, L"
variation,WS-HOODIE-100-S,Pullover Hoodie - S,49.99,WS-HOODIE-100,Size,S
variation,WS-HOODIE-100-M,Pullover Hoodie - M,49.99,WS-HOODIE-100,Size,M
variation,WS-HOODIE-100-L,Pullover Hoodie - L,49.99,WS-HOODIE-100,Size,LWooCommerce CSV columns explained
These are the columns the built-in importer recognises. Only Type and Name are required — everything else is optional, and any column WooCommerce does not recognise is either imported as custom meta or ignored.
| Column | What it does |
|---|---|
Typerequired | simple, variable, variation, grouped or external. Anything else is rejected by the importer. |
Namerequired | The product title. This is the only other column WooCommerce genuinely insists on. |
SKU | Your internal product code. Include it and WooCommerce matches on it to update existing products instead of creating duplicates. |
ID | The WordPress post ID. Like SKU, it turns an import into an update. Leave it blank when creating new products. |
Published | 1 publishes, 0 saves as draft, -1 makes it private. |
Is featured? | 1 or 0. Featured products appear in the “Featured Products” shortcode and blocks. |
Visibility in catalog | visible, catalog, search or hidden — controls where the product is browsable. |
Short description | The excerpt shown next to the product image on the single-product page. |
Description | The full product description. HTML is allowed, but wrap the cell in quotes if it contains commas. |
Regular price | Numeric only — no currency symbols, no thousands separators. Use a dot for decimals. |
Sale price | Optional. Leave blank for products that are not discounted. |
Tax status | taxable, shipping or none. |
In stock? | 1 or 0. Independent of the Stock number — a product can be in stock without stock management. |
Stock | Numeric quantity. Only meaningful when stock management is enabled. |
Backorders allowed? | 0, 1 or notify. |
Weight (kg) / Length (cm) | Numeric dimensions used by shipping calculations. Units follow your store settings. |
Categories | Comma-separated. Use > for hierarchy, e.g. Clothing > T-Shirts. Missing categories are created on import. |
Tags | Comma-separated. Created automatically if they do not exist. |
Images | Full https URLs, comma-separated. The first is the featured image; the rest become the gallery. WooCommerce downloads each one during import. |
Parent | For variation rows only — the SKU or ID of the parent variable product. |
Attribute 1 name | The attribute label, e.g. Size. Number them upward for multiple attributes. |
Attribute 1 value(s) | On the parent, every option comma-separated (S, M, L). On a variation row, the single value for that variation. |
Common import errors and how to fix them
Prices import as zero or empty
Almost always a currency symbol or thousands separator in the cell. Spreadsheets add these when a column is formatted as currency. WooCommerce wants 19.99, not $19.99 or 1,299.00. Format the column as plain text before exporting.
Products import as duplicates instead of updating
The importer matches on ID or SKU. Without either column, every row is treated as a brand-new product. Include SKU and tick “Update existing products” on the import screen.
Variations do not attach to the parent
The Parent value on each variation row has to exactly match the parent's SKU or ID, and the parent must carry all attribute options in its Attribute 1 value(s) cell. A variation whose value is not listed on the parent is silently dropped.
Accented or Japanese characters turn into mojibake
The file was saved in the wrong encoding. Export as CSV UTF-8 — in Excel that is a separate option from plain “CSV”, and picking the wrong one mangles any non-ASCII text.
Images do not appear
URLs must be publicly reachable and start with http — WooCommerce downloads each one at import time. Local paths, Google Drive share links and password-protected URLs all fail silently.
The import times out on a large file
Split the CSV into batches of a few thousand rows. Image-heavy imports are slowest because each URL is fetched and resized during the run.
Before you import
Run your file through the Validate CSV tab above — it checks required columns, flags unrecognised headers, and verifies that every value matches what the importer accepts. If your catalog came out of another platform and has messy duplicates or stray whitespace, clean it first with the Bulk CSV Cleaner.
Frequently asked questions
Where can I download a WooCommerce sample products CSV?
Open the “Sample products” tab and click Download sample products CSV. You get a filled demo catalog of 26 products — simple, variable with variations, grouped and external — that imports into WooCommerce without any editing.
What is in the demo products CSV?
Clothing, kitchen, electronics, stationery, bags and home items across 29 columns — names, SKUs, descriptions, regular and sale prices, stock levels, categories, tags, weights, dimensions and working image URLs. It also includes a draft product and an out-of-stock product so you can see how those import.
Do the sample products import with images?
Yes. The image URLs point at a live https image service rather than placeholder text, so WooCommerce downloads real product pictures during the import instead of leaving broken thumbnails.
How do I import the sample CSV into WooCommerce?
In WordPress go to Products → Import, choose the downloaded file, and click Continue. WooCommerce maps every column automatically because the headers match its importer exactly — then click Run the importer.
Is this WooCommerce CSV tool free?
Yes — completely free, with no account, no product limits and no watermarks.
Does it match the official WooCommerce importer format?
Yes. It uses the exact column headers the built-in WooCommerce Products → Import expects, so the generated file imports cleanly.
Is my product data uploaded anywhere?
No. Both generating and validating happen entirely in your browser — nothing is sent to a server.
What does the validator check?
It confirms required columns (Name, Type) are present, flags unrecognized columns, and checks value formats — e.g. Published must be 1/0/-1, In stock? must be 1/0, prices must be numeric, visibility must be a valid option, and image URLs must start with http.
Can I use it to update existing products?
Yes. Include an ID or SKU column in your CSV — WooCommerce matches on those to update existing products instead of creating new ones.