Import Products to WooCommerce via CSV
Bulk upload products to WooCommerce using the built-in CSV importer. Handle images, variations, categories, and attributes correctly.
Import Products to WooCommerce via CSV
Adding products one by one in WordPress is slow. If you have a catalog of 500 items, you need CSV import.
WooCommerce has a built-in product importer that is surprisingly robust. It handles simple products, variable products (size/color), and even images.
The CSV Format
WooCommerce uses a specific schema. The easiest way to get a template is to Export a few existing products first.
Key Columns:
ID: Leave blank for new products. Use exact ID to update existing ones.Type:simple,variable,grouped, orexternal.SKU: Unique identifier.Name: Product title.Published:1(yes) or0(no).Regular price: Number (no currency symbol).Images: URL to the image (e.g.,https://mysite.com/image.jpg).Tax: product_cat: Category name.
Step-by-Step Import
-
Go to Products:
- In WordPress Admin, go to Products > All Products.
- Click Import (top button).
-
Upload CSV:
- Choose your file.
- Check "Update existing products" if you are modifying stock/prices (matches by ID or SKU).
-
Map Fields:
- WooCommerce maps columns automatically.
- Review fields like "Price", "Description", "SKU".
-
Run Importer:
- Click Run the importer.
- Wait for the progress bar.
Importing Images
This is the trickiest part. You cannot upload an image file via CSV. You must provide a URL.
- Upload your product images to your WordPress Media Library (or an external host).
- Copy the URL of each image.
- Paste the URL into the
Imagescolumn in your CSV. - For multiple images, separate URLs with commas.
WooCommerce will download these images to your server and attach them to the product during import.
Importing Variable Products (Size/Color)
This requires multiple rows.
Row 1 (Parent):
Type:variableSKU:shirt-parentName:Cool ShirtAttribute 1 name:SizeAttribute 1 value:S, M, LAttribute 1 visible:1Attribute 1 global:1
Row 2 (Variation):
Type:variationParent:shirt-parent(Must match Parent SKU)Attribute 1 name:SizeAttribute 1 value:SRegular price:20.00
Row 3 (Variation):
Type:variationParent:shirt-parentAttribute 1 name:SizeAttribute 1 value:MRegular price:20.00
Common Issues
1. "Invalid file type"
WordPress security sometimes blocks CSV uploads.
Fix: Add define('ALLOW_UNFILTERED_UPLOADS', true); to wp-config.php (temporary) or use a plugin to enable CSV uploads.
2. Images Not Importing
Fix: Ensure the URLs are public (http/https). If your site is in "Maintenance Mode", the importer can't fetch the images.
3. Timeout / Memory Limit
Fix: If importing 10,000 products, split the CSV into chunks of 500. Or increase PHP max_execution_time.
Preparing a WooCommerce CSV? Use HappyCSV to merge supplier lists, calculate prices, and format your columns before importing.
Related Articles
Convert CSV to HTML Table
Convert CSV files to HTML table code for websites. Free online tool with proper escaping and semantic markup.
Convert CSV to Markdown Table
Convert CSV files to Markdown tables for GitHub README files, documentation, and blog posts. Free online tool.
Convert TSV to CSV (Tab-Separated to Comma-Separated)
Convert TSV files to standard CSV format. Free online converter for tab-delimited data. Works with Excel exports.
Need to handle CSV files?
HappyCSV is the free, secure way to merge, split, and clean your data — all in your browser.