Format a CSV for WooCommerce Product Import
Table of Contents
WooCommerce's built-in product importer (WordPress 3.1+) reads CSV files with specific column names. If your export uses "Product Name" instead of "Name," or "Price" instead of "Regular price," the importer will either skip those fields or throw an error.
The CSV Column Mapper lets you rename your existing columns to match WooCommerce's expected format without touching Excel or writing any code. Upload, rename, reorder, download — then import directly into WooCommerce.
WooCommerce Product CSV Column Reference
WooCommerce's product importer recognizes these column names (case-insensitive, but exact spelling required):
| WooCommerce Column | Notes |
|---|---|
| ID | Leave blank for new products, or use existing ID to update |
| Type | simple, variable, grouped, external |
| SKU | Your internal product code |
| Name | Product title shown in the store |
| Published | 1 = published, 0 = draft, -1 = private |
| Short description | Brief summary shown on product cards |
| Description | Full product description (HTML accepted) |
| Regular price | Standard selling price |
| Sale price | Discounted price (optional) |
| Categories | Comma-separated, use > for hierarchy: "Clothing > Shirts" |
| Tags | Comma-separated product tags |
| Images | Comma-separated image URLs (first = featured image) |
| Stock | Inventory quantity |
| Weight (kg) | Product weight for shipping calculations |
Mapping Your Columns to WooCommerce Names
Exports from Shopify, Etsy, supplier catalogs, or spreadsheets rarely match WooCommerce column names out of the box. Common mappings:
- "Title" or "Product Name" → Name
- "Price" or "Retail Price" or "Selling Price" → Regular price
- "Product Description" or "Body" → Description
- "Summary" or "Blurb" → Short description
- "Product Code" or "Item Number" or "Barcode" → SKU
- "Category" or "Department" → Categories
- "Qty" or "Inventory" or "In Stock" → Stock
- "Product Image" or "Image URL" → Images
Open the CSV Column Mapper, upload your file, and rename each column to its WooCommerce equivalent. Delete any columns WooCommerce does not use, reorder as needed, and download the ready-to-import CSV.
Sell Custom Apparel — We Handle Printing & Free ShippingVariable Products and Attribute Columns
Variable products (products with size/color/variant options) require additional columns in WooCommerce's CSV format:
- Attribute 1 name — the attribute label, e.g., "Color" or "Size"
- Attribute 1 value(s) — pipe-separated values, e.g., "Red | Blue | Green"
- Attribute 1 visible — 1 to show on product page
- Attribute 1 global — 1 to use a global attribute from your attribute library
For simple products (no variants), you can skip all attribute columns. The importer treats any product with Type = "simple" as a non-variable product regardless of whether attribute columns are present.
Running the WooCommerce Import
Go to WordPress Admin > Products > Import. Upload your CSV. WooCommerce will show a column mapping screen where it tries to auto-map your column names to WooCommerce fields. If your column names match exactly, all fields will map automatically with no manual adjustments needed.
If columns still need adjustment after uploading, WooCommerce's mapping screen lets you reassign them manually — but it is faster and less error-prone to fix the column names in the CSV before uploading.
Run a test import with 5-10 products first to confirm the mapping is correct before importing your full catalog.
Price Formatting and Common Errors
WooCommerce expects prices as plain numbers: "29.99" not "$29.99" or "29,99". Currency symbols and thousand-separator commas cause import failures on the price fields.
Other common errors:
- Images not showing after import — image URLs must be publicly accessible. Local paths do not work.
- Categories not creating hierarchy — use "Parent > Child" notation with the > character, e.g., "Clothing > T-Shirts"
- "Invalid product type" — the Type column value must be exactly "simple," "variable," "grouped," or "external"
- Products imported as drafts — check the Published column. Use 1 for published, not "TRUE" or "Yes"
Try It Free — No Signup Required
Runs 100% in your browser. No data is collected, stored, or sent anywhere.
Open CSV Column MapperFrequently Asked Questions
Can I use WooCommerce CSV import to update existing products?
Yes. Include the product ID in the ID column for rows you want to update. Leave it blank for new products. WooCommerce matches on ID first, then SKU.
Is there a column limit for WooCommerce CSV imports?
No hard column limit, but WooCommerce only reads columns it recognizes. Extra columns are ignored. Very large CSVs (thousands of products) may need to be split into smaller batches depending on server timeout settings.

