WooCommerce CSV Import Error Fixes: 5 Real Pitfalls I Hit and Resolved
I spent 3 days manually adding 50 products to my WooCommerce store before I switched to CSV bulk import. I thought it would save me 80% of the time. Instead, it took another 3 days to fix 5 import errors. This guide documents every error I hit with actual error messages and the exact steps to fix each one.
Prerequisites
WooCommerce has a built-in CSV import/export tool: Products → All Products → Import
WooCommerce 8.3+ (2024) introduced a redesigned product CSV importer with support for variable products, attributes, and variants. The free version handles Simple/Grouped/External products; Variable products require a paid plugin like Product Import Export for WooCommerce.
CSV files must be UTF-8 encoded. Excel and WPS default to local encoding, which corrupts Chinese characters. Use Notepad++ or VSCode to save as UTF-8 before importing.
Error 1: "Unable to Use Image" - Product Images Not Showing
**Error message**: Unable to use image. Product Images are not supported for this product type.
Root cause: External/Affiliate products do not support local images, or the image URL format is incorrect.
Fix: For External Affiliate products, leave the images field empty and include Amazon image links in the product description (check copyright terms). For your own products, image URLs must be publicly accessible absolute URLs—local file paths do not work during CSV import.
images,"https://yourstore.com/wp-content/uploads/2026/05/product.jpg"
Recommended format: JPG/WebP, max 150KB per image, minimum 800×800 pixels.
**My mistake**: I used local paths like /wp-content/uploads/... and all images were blank after import. Only the server can read local paths. CSV import requires publicly accessible URLs, or upload images to WordPress Media Library first and use those URLs.
Error 2: Duplicate SKU Preventing Import
**Error message**: The Sku "ABC-123" already exists on a product within your store.
Root cause: A SKU in your CSV already exists in the database. Common when updating products or using supplier-provided templates with duplicate SKUs.
Fix: Export your existing product SKUs before importing and exclude duplicates.
Check all existing SKUs via WooCommerce CLI:
wp eval 'global $wpdb; $results = $wpdb->get_col("SELECT DISTINCT meta_value FROM {$wpdb->postmeta} WHERE meta_key = \"_sku\" AND meta_value != \"\""); echo implode("\n", $results);'
Alternatively, select "Update existing products" during import—WooCommerce will match by SKU and update instead of creating new products.
Error 3: Attributes Not Mapping Correctly
Error message: After import, product Color/Size attributes are missing or display as plain text instead of filterable attributes.
Root cause: WooCommerce has strict format requirements for attributes. Global Attributes and Local Attributes use different formats.
Correct CSV format for Local Attributes:
attributes,name,value,visible,taxonomy
attributes,Color,Red+Blue,1,
Note: Multiple values use + as delimiter, not commas. Leave the taxonomy column empty for Local Attributes.
Global Attribute format (requires creating the Attribute first at Products → Attributes):
attributes,name,value,visible,taxonomy
attributes,Color,Red,1,pa_color
Where pa_color is the slug WordPress auto-generated when you created the Attribute.
Error 4: "Out of Stock" Status Despite Positive Stock
Error message: Product shows Out of Stock after import, but the Stock field in the backend has a positive number.
**Root cause**: WooCommerce 8.x changed stock management logic. The Stock field controls warehouse quantity, but Manage Stock must be set to yes for Stock to take effect. If stock_status is set to outofstock in your CSV, it overrides the Stock value.
Correct field combination:
manage_stock,stock,stock_status
yes,50,instock
If you do not want to manage stock:
manage_stock,stock,stock_status
no,,instock
**My mistake**: I set stock=100 but forgot to add manage_stock. After import, the product was still Out of Stock. I eventually found that manage_stock defaults to no, so WooCommerce reads the stock_status field directly.
Error 5: Variable Product Variations Not Linking
**Error message**: Invalid variation: parent product is not a variable product
**Root cause**: Variable products require importing the parent product first (Type=variable), then child variations. The child variation's parent_sku field must exactly match the parent product SKU.
Correct import order:
Step 1: Parent product CSV:
type,sku,name
variable,PARENT-SKU-001,"T-Shirt - Multiple Colors"
Step 2: Child variations CSV:
type,parent_sku,sku,attributes_name,attributes_value,regular_price,stock
variation,PARENT-SKU-001,VAR-SKU-001,"Color,Size","Red,S",19.99,30
variation,PARENT-SKU-001,VAR-SKU-002,"Color,Size","Red,M",19.99,25
variation,PARENT-SKU-001,VAR-SKU-003,"Color,Size","Blue,S",21.99,20
Note: Multiple attributes in attributes_name and attributes_value are comma-separated.
Recommended plugins: The free WooCommerce CSV Importer only supports Simple products. For Variable products, consider WP All Import Pro ($299/year) or Product Import Export for WooCommerce ($69/year), both support automatic variation creation and attribute mapping.
Post-Import Checklist
After importing, do not go live immediately. Run through this checklist:
1. Images: Click a few products on the frontend and verify images display correctly (especially multi-image products)
2. Attributes: Test the Attribute Filter to confirm filtering works
3. Stock: Add to cart and verify stock decrements correctly
4. Variations: For Variable products, select different sizes/colors on the frontend and confirm price updates correctly
Summary
WooCommerce CSV bulk import is far more efficient than manual entry, but you need to understand the field formats and import logic. The 5 most common pitfalls:
| Error | Root Cause | Fix Difficulty |
|---|---|---|
| Images not displaying | URL must be a public absolute path | ⭐ |
| SKU duplicate | Existing SKU not excluded | ⭐ |
| Attribute mapping failed | Wrong format (+ vs comma, taxonomy column) | ⭐⭐ |
| Stock status wrong | manage_stock not enabled | ⭐⭐ |
| Variations not linking | Wrong import order / parent_sku mismatch | ⭐⭐⭐ |
Start with the free WooCommerce Product CSV Importer to get familiar with the field formats, then upgrade to a paid plugin when you need to handle Variable products.
👉 Get started: MiniMax AI Platform (AI-powered product research and content automation for cross-border ecommerce)
---
📌 This article was AI-assisted generated and human-reviewed | TechPassive — An AI-driven content testing site focused on real tool reviews
🔗 Recommended Tools
These are carefully selected tools. Using our affiliate links supports us to keep producing quality content: