Import Products to WooCommerce via CSV
Bulk upload products to WooCommerce using the built-in CSV importer. Handle images, variations, categories, and attributes correctly.
Adding products one by one in WordPress is slow. If you have a catalog of 500 items, you need CSV import.
WooCommerce includes a product CSV importer and exporter. It supports simple products, variations, attributes, categories and remote image URLs when the file follows the expected schema.
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"
Use WooCommerce's built-in importer under Products > All Products > Import. Do not enable unrestricted uploads in WordPress to work around an error. Confirm that the file is a real UTF-8 CSV, not an Excel workbook renamed with a .csv extension.
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: Test a small batch first, then split a large catalog into manageable files. Server limits vary, so use the import log and hosting diagnostics before changing PHP settings.
Use an export as your template
Create one simple product and one variable product manually, then export them from WooCommerce. That file reflects the columns and conventions supported by your installed version and extensions. Work from a copy and keep the original export for rollback.
For updates, retain ID or SKU and select the option to update existing products. Check that each identifier is unique. An incorrect identifier can update the wrong product, while a missing one can create duplicates.
Categories use > for hierarchy, such as Clothing > Shirts. Multiple categories are comma-separated, which means the CSV serializer must quote the whole field. Variation rows need a stable parent reference and consistent attribute names. Test one parent and two variations before importing the full catalog.
After import, review the WooCommerce results screen and error log. Check prices, tax status, stock, images, categories and at least one variable product on the storefront. The official WooCommerce Product CSV Importer and Exporter documentation remains the authority for supported columns and current behaviour.
Preparing a WooCommerce CSV? Use HappyCSV to merge supplier lists, calculate prices, and format your columns before importing.
Related Articles
How to Clean Email Lists Before Sending (5-Step Guide)
Clean your email list to improve deliverability and avoid spam complaints. Remove duplicates, validate formats, and fix common issues.
Import CSV to HubSpot (Contacts & Companies)
A complete guide to importing contacts, companies, and deals into HubSpot from CSV. Learn how to map properties, handle associations, and fix errors.
Import CSV to Salesforce (Step-by-Step Guide)
Learn how to import CSV data into Salesforce using Data Import Wizard and Data Loader. Tips for mapping fields, handling IDs, and avoiding errors.
Use the CSV Editor
Edit CSV cells locally in your browser, review changes, and download a clean copy without uploading your data. Your file is processed locally in the browser.