WooCommerce includes a native CSV importer you can use without installing WP All Import. Here’s how, with the exact CSV structure and category mapping.
WooCommerce has included a native CSV importer since version 3.1 (2017). Most tutorials tell you to install WP All Import or WooCommerce Product CSV Import Suite. That is rarely necessary. The native tool covers 90% of use cases, for free, with no extra plugin.
Here is how to use it effectively, the exact CSV structure, and the WooCommerce-specific pitfalls to watch for (hierarchical categories, attributes vs variations).
Clothing
├── Men
│ ├── Shoes
│ └── Shirts
└── Women
├── Shoes
└── Shirts
To assign a product to "Clothing > Men > Shoes" in the CSV:
Categories
"Clothing > Men > Shoes"
Separator: > (greater-than sign) with spaces around it. If a category does not exist, WooCommerce creates it automatically during import.
Multiple categories for the same product: separated by commas.
Categories
"Clothing > Men > Shoes, Sale"
This product will be in "Clothing > Men > Shoes" AND in "Sale".
Common mistake: forgetting the spaces around >. Without spaces (Clothing>Men>Shoes), WooCommerce creates a single category literally named "Clothing>Men>Shoes".
Global attribute (Attribute 1 name = Size, Attribute 1 value = 42, 43, 44): this is a characteristic shown on the product page, usable for filtering. It does not create variations.
Variation (row with Type = variation, Parent = parent-sku): this is a purchasable variant with its own price, stock, and SKU.
A product with "42, 43, 44" as an attribute but no variations: one inventory line, same price.
A product with "42, 43, 44" as variations: 3 inventory lines, 3 SKUs, 3 possible prices.
In an e-commerce catalog, you almost always want variations for sizes/colors (so you can track stock by variant). Here is the CSV structure:
During upload, WooCommerce shows a mapping screen: on the left, your CSV columns; on the right, WooCommerce fields. For each column, choose:
The matching field (for example, Nom → Name)
"Do not import" if the column is not useful
"New meta" if you want to create a custom meta field
Watch out for unrecognized columns: WooCommerce offers to create them as meta fields, which can add noise to your database if you accept without thinking.
Save the mapping: check "Save as template" to reuse it for future imports.
WooCommerce matches first by ID, then by SKU if ID is blank.
To create new products: leave ID blank and use unique SKU values.
To update existing products: fill in either ID (if known) or the existing SKU values. Check the "Update existing products" option during import.
Watch out: if you check "Update existing" with SKUs that do not exist, nothing happens for those rows (they are silently ignored). Check the import report.
Direct SQL (via phpMyAdmin) or via a plugin (UpdraftPlus, BackupBuddy). Back up the wp_posts, wp_postmeta, wp_term_relationships, wp_wc_product_meta_lookup tables.
Hostinger, Kinsta, and WP Engine offer one-click staging environments. Test the full import in staging, validate the result, then repeat it in production.
Because most imports are simple: create/update products by SKU, with direct column mapping. Plugins such as WP All Import add: mapping with transformations, scheduling, import from XML/JSON, and multi-site support. These features are useful for large integrations, but rare for a standard e-commerce store.
No, that is one limitation. For recurring automatic import (for example, every morning from a supplier), you need a plugin. WooCommerce Product CSV Import Suite (official, $49/year) handles that.
Yes. Export all products, delete all columns except SKU and Regular price, edit the prices, then re-import with "Update existing". WooCommerce only updates the fields present in the CSV.
No, the columns are different. Shopify's Handle does not exist in WooCommerce (which uses a slug derived from Name). Option1 Name becomes Attribute 1 name. You need to map manually.
Yes. Cart2Cart, LitExtension, and MigrationPro do that. Ecomptimize also supports format conversion between the two platforms in its Catalog Runs. See Ecomptimize for WooCommerce.
For auditing, optimizing, and importing your WooCommerce catalog with AI quality control, see Ecomptimize for WooCommerce.