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
Anonymize CSV Data (GDPR/Testing)
How to mask sensitive data in CSV files. Anonymize names, emails, and phones for testing or GDPR compliance.
Batch Convert Multiple Excel Files to CSV
How to convert 100 Excel files to CSV at once. Use VBA macros, Python scripts, or batch converters to save hours of manual work.
Best Free CSV Viewers for Mac & Windows
Excel isn't the only way to open CSVs. Check out the best free CSV viewers like Tad, Miller, and online tools for large files.
Need to handle CSV files?
HappyCSV is the free, secure way to merge, split, and clean your data — all in your browser.