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

Basics
Content
Pricing
Inventory
Shipping
Taxonomy
Media
Variations
Example rows

Preview

15 columns
TypeSKUNamePublishedIs featured?Visibility in catalogShort descriptionDescriptionRegular priceSale priceIn stock?StockCategoriesTagsImages
simpleWS-TSHIRT-01Classic Cotton T-Shirt10visibleSoft, breathable everyday tee.100% ring-spun cotton classic t-shirt.19.9915.001100Clothing > T-Shirtscotton, summerhttps://example.com/images/tshirt.jpg
simpleWS-MUG-01Ceramic Coffee Mug10visibleSoft, breathable everyday tee.100% ring-spun cotton classic t-shirt.12.501100Kitchen > Mugsceramic, gifthttps://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:

  1. 1Sample products — download a filled demo catalog of 26 products, ready to import into a fresh or staging store with no editing at all.
  2. 2Generate template — pick the columns you need and get a blank CSV with correct headers and example rows to fill in.
  3. 3Validate CSV — paste or drop a CSV you already have and check it against the importer's rules before you run it.
Everything runs in your browser. Your product data is never uploaded, which matters when a catalog export contains supplier codes, cost prices or customer-specific SKUs.

How to use it

To get a working sample catalog

  1. 1Open the Sample products tab above.
  2. 2Click Download sample products CSV.
  3. 3In WordPress go to Products → Import, choose the file, and click Continue.
  4. 4WooCommerce maps every column automatically. Click Run the importer.

To build a template for your own catalog

  1. 1Open the Generate template tab and tick the columns you need. Type and Name are locked on because the importer requires them.
  2. 2Choose how many example rows to include — they show the exact formatting each column expects.
  3. 3Download the template, then fill it in with your products in Excel, Numbers or Google Sheets.
  4. 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:

Minimal import
Type,Name
simple,Classic Cotton T-Shirt
simple,Ceramic Coffee Mug

In practice you want prices, stock and images. A realistic simple product looks closer to this:

Realistic simple product
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.jpg

Variable 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:

Variable product with variations
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,L

WooCommerce 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.

ColumnWhat it does
Typerequiredsimple, variable, variation, grouped or external. Anything else is rejected by the importer.
NamerequiredThe product title. This is the only other column WooCommerce genuinely insists on.
SKUYour internal product code. Include it and WooCommerce matches on it to update existing products instead of creating duplicates.
IDThe WordPress post ID. Like SKU, it turns an import into an update. Leave it blank when creating new products.
Published1 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 catalogvisible, catalog, search or hidden — controls where the product is browsable.
Short descriptionThe excerpt shown next to the product image on the single-product page.
DescriptionThe full product description. HTML is allowed, but wrap the cell in quotes if it contains commas.
Regular priceNumeric only — no currency symbols, no thousands separators. Use a dot for decimals.
Sale priceOptional. Leave blank for products that are not discounted.
Tax statustaxable, shipping or none.
In stock?1 or 0. Independent of the Stock number — a product can be in stock without stock management.
StockNumeric 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.
CategoriesComma-separated. Use > for hierarchy, e.g. Clothing > T-Shirts. Missing categories are created on import.
TagsComma-separated. Created automatically if they do not exist.
ImagesFull https URLs, comma-separated. The first is the featured image; the rest become the gallery. WooCommerce downloads each one during import.
ParentFor variation rows only — the SKU or ID of the parent variable product.
Attribute 1 nameThe 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.