WooCommerce CSV import is a convenient way to add or update store data, including products, coupons, and other information, without entering each item manually. However, even small formatting errors can result in missing images, incorrect variations, or duplicate products.
The good news is that the process is straightforward once you understand the CSV format WooCommerce requires! In this guide, we’ll explain the WooCommerce CSV format for different types of store data and walk you through ways to import it.
WooCommerce CSV Import Format: What You Need to Know
WooCommerce’s built-in product importer expects your CSV file to follow a specific structure. Given the correct encoding, column names, value formats, and identifiers, WooCommerce will map your data to the right product fields and prevents issues such as missing values, duplicate products, or incorrectly structured variations.
WooCommerce CSV import file requirements
Before importing, make sure your CSV follows these basic formatting rules:
- Use UTF-8 encoding. WooCommerce recommends saving or exporting the file as a UTF-8 CSV to avoid character and encoding issues.
- Use 1 and 0 for Boolean fields. For example, 1 for true and 0 for false in fields such as Published or Is featured?.
- Separate multiple values with commas. For example, multiple categories or tags can be entered as comma-separated values. If a single value itself contains a comma, enclose it appropriately or escape the comma according to WooCommerce’s CSV rules.
- Use > for taxonomy hierarchies. For example, Clothing > T-Shirts represents a child category under Clothing.
- Use id: when referencing an existing product ID. When referencing a product by SKU, the id: prefix is not required. For example, id:100 refers to product ID 100, while SKU101 refers to a product by SKU.
- Keep the column headers consistent with WooCommerce’s schema. WooCommerce automatically maps recognized column names during import; unrecognized columns are not imported by default unless they are mapped appropriately.
Important WooCommerce CSV fields
You don’t need every available column for every import. The fields you need depend on the product data you’re bringing into WooCommerce. Below are some of the most important ones:
| CSV field | What it controls | Example |
|---|---|---|
ID |
Identifies an existing product for updates | 100 |
Type |
Defines the product type | simple, variable, variation |
SKU |
Product’s unique identifier | TSHIRT-001 |
Name |
Product name | Blue Cotton T-Shirt |
Published |
Product status | 1 |
Regular price |
Regular selling price | 24.99 |
Sale price |
Discounted price | 19.99 |
Categories |
Product categories | Clothing, Clothing > T-Shirts |
Tags |
Product tags | cotton, summer |
Images |
Product images | https://example.com/tshirt.jpg |
Parent |
Links a variation to its parent product | TSHIRT-001 |
Attribute 1 name |
Attribute name | Size |
Attribute 1 value(s) |
Available attribute values | S, M, L |
Attribute 1 visible |
Whether the attribute is displayed | 1 |
Attribute 1 global |
Whether the attribute is a global attribute | 1 |
These fields come from WooCommerce’s current built-in Product CSV Import Schema. The schema also includes fields for descriptions, inventory, shipping, downloads, upsells, cross-sells, external products, and other product properties.
For variable products, the Parent and Attribute fields are particularly important because WooCommerce uses them to establish the relationship between the parent product and its variations. We’ll cover this structure in more detail later in the guide.
Custom fields and metadata
In addition, WooCommerce also supports importing product metadata through CSV. To import a custom metadata field, add the meta: prefix to the column header. For example:
meta:product_depth
This tells WooCommerce to treat the column as product metadata rather than a standard product field. Unrecognized columns without the appropriate mapping are not imported by default. The built-in importer supports plain-text custom metadata; serialized data and JSON are not supported by the standard CSV schema.
WooCommerce CSV Import: How to Import Important Fields & Data Using CSV
Once your CSV follows WooCommerce’s required format, you can use the built-in importer to add or update product data in bulk. The overall workflow is similar for different types of data, but products, variations, images, and custom metadata require different CSV structures.
Follow the relevant steps below based on what you want to import.
1. Importing products
For standard products, you can import fields such as product names, SKUs, prices, categories, stock, and descriptions through WooCommerce’s built-in CSV importer.
Step 1: Prepare your product CSV
First, create your CSV with the product data you want to import and use WooCommerce’s supported column headers, such as Name, SKU, Regular price, Sale price, Categories, Tags, and Images. Save the file as a UTF-8 CSV. If you are updating existing products, include their product IDs or SKUs so WooCommerce can match the rows to the products in your store.
Step 2: Upload the CSV and map your columns
In your WordPress dashboard, go to Products > All Products and click Import at the top of the page.

On the Upload CSV file screen, click Choose File, select your CSV, and click Continue. WooCommerce will take you to the Column mapping screen and automatically match recognized CSV headers to product fields. Review the mappings and use the dropdown beside any column to select the correct field or Do not import if you want to skip it.
Step 3: Run the import and check your products
Once the mappings are correct, click Run the importer. Wait for WooCommerce to finish processing the CSV without refreshing or leaving the page. When the import is complete, open several products and check important fields such as SKUs, prices, categories, stock, and descriptions.
Updating existing products
If you want to update rather than create products, select Update existing products on the upload screen before clicking Continue. WooCommerce uses the ID or SKU in your CSV to match existing products. Rows that do not match an existing product are skipped.
2. Importing variable products and variations
Unlike products, variable products need a different CSV structure because the file must define the parent product and its individual variations.
Step 1: Set up the parent and variation rows in your CSV
First, create one row for the parent product and one row for each variation.
Then, set the parent product’s Type to variable and each variation’s Type to variation. Give the parent and each variation a SKU and make sure every variation has a unique SKU. In each variation row, use the Parent column to connect it to the parent product using the parent SKU or ID.
Step 2: Add the attributes and variation values
Now, use columns such as Attribute 1 name, Attribute 1 value(s), Attribute 1 visible, and Attribute 1 global to define the attributes. The parent row should contain all available values, while each variation row should contain the value assigned to that variation.
For example, a T-shirt with Small and Medium variations can use this structure:
| Type | SKU | Parent | Attribute 1 name | Attribute 1 value(s) | Attribute 1 visible | Attribute 1 global |
| variable | tshirt | — | Size | S, M | 1 | 0 |
| variation | tshirt-s | tshirt | Size | S | 1 | 0 |
| variation | tshirt-m | tshirt | Size | M | 1 | 0 |
For a local product attribute, set Attribute 1 global to 0. Use 1 when the attribute is a global attribute already configured in the store.
Step 3: Import the CSV through the product importer
Go to Products > All Products > Import, click Choose File, select the CSV, and click Continue. On the Column mapping screen, check that the Type, SKU, Parent, and attribute columns are mapped correctly. Then click Run the importer and wait for the process to finish.
Step 4: Verify the variable product
Last but not least, open the imported product and check that WooCommerce has created the parent as a variable product and attached the expected variations to it. Check the variation attributes, SKUs, prices, and stock individually.
If you are converting an existing simple product: WooCommerce 11.1 introduced a single-import workflow for this case when the parent product row appears before its variation rows. You select Update existing products during the import, and WooCommerce can update the existing parent and create the new variations in the same import when the required conditions are met.
If you cannot guarantee the row order, or you are using a version earlier than 11.1, WooCommerce recommends using two imports instead.
3. Importing product images
Here’s the great news: You can add product images through the Images column in the same product CSV! WooCommerce supports images that are already in the Media Library as well as directly accessible external image URLs.
Step 1: Add your image references to the CSV
In the Images column, enter the direct URL of an online image or the filename of an image that is already available in your Media Library.
You can list multiple images for one product using the format supported by WooCommerce’s core product CSV schema. The first image is used as the featured image; meanwhile, additional images are added to the product gallery.

Step 2: Check the image URLs before importing
For external images, make sure the URL points directly to an accessible image. WooCommerce downloads accessible external images into the Media Library during the import. URLs that work through redirect scripts, including some cloud-storage links, are not supported by the core importer.
Step 3: Upload and import the CSV
Go to Products > All Products > Import, then click Choose File and select your CSV. On the Column mapping screen, make sure the Images column is mapped to the image field. Then, just like with other import processes, click Run the importer and wait for the import to finish.
Once done, open several imported products and confirm that the featured image and gallery images appear correctly. Note that WooCommerce’s core CSV importer cannot add, edit, or update product image alt text through the CSV.
4. Importing custom product data
What if your products contain custom metadata that is not covered by WooCommerce’s standard product fields? In that case, you can import it using the meta: prefix.
Step 1: Add the custom metadata to your CSV.
First, identify the metadata key used by your custom product field and add it to the CSV header with meta: in front of it.
For example, if the metadata key is product_depth, use meta:product_depth as the column header. Enter the corresponding value for each product in that column.
Step 2: Upload the CSV and map the metadata column
Go to Products > All Products > Import, click Choose File and upload your CSV. On the Column mapping screen, WooCommerce can recognize meta: columns as product metadata. If the column is not mapped automatically, open its dropdown and select Import as meta.
After checking the mapping, click Run the importer and wait for the process to finish. Then check the affected products to confirm that the custom metadata was imported correctly.
Keep in mind that WooCommerce’s core importer only handles fields supported by its product CSV schema and recognized product metadata. If the data comes from a third-party extension and requires extension-specific fields, check that extension’s import documentation before proceeding.
WooCommerce CSV Import With LitExtension Migration Solutions
Both methods above assume you’re starting from a file you already have. But if you’re moving your entire store, not just importing a data file, you’re likely dealing with products, customers, orders, and coupons all at once, which is a different job entirely. That’s where LitExtension migration solutions come in, and which one fits depends on where your data is actually coming from.
Option 1: Migrate to WooCommerce with LitExtension Automated Migration Tool
If your current store is still live on another platform, LitExtension can connect to it directly, no file export needed. All you need to do is log in to LitExtension, create an account, and follow the steps below.
1. Set up source & target connections:
From the dashboard, click +New Migration. In the Setup Source Store section, choose your current platform from the dropdown list, enter your store credentials, and connect your store using your preferred method, following the wizard guidelines.

Repeat the same flow to set up WooCommerce as your Target Store. Then, click Next: Configuration.
2. Choose entities to migrate
Next, select the entities you want transferred – products, customers, orders, coupons, and more – along with any Additional Options for the migration.
Don’t forget to check the Language Mapping and Order Status Mapping, so that the details appear just right after migration.

3. Launch the migration
At this stage, you can run a FREE demo migration to migrate a sample of your data first (to have an idea of how our tool works), or skip it and click Next: Start Full Migration to start the migration right away. Our migration runs in the background, so you don’t need to keep the browser open. Plus, your old stays live throughout – no downtime, no disruption.

Seamlessly Import to WooCommerce
With LitExtension automated migration tool, you can import essential store data to WooCommerce seamlessly, with no downtime.
FREE DEMO AVAILABLE

Option 2: Import to WooCommerce with LitExtension Files Migration Service
Our CSV File Migration service is the right fit when a file is your only option – say, your old platform has shut down, or you’re working from files exported from a custom or legacy system with no live connection available – or simply when you’d rather not handle the file prep and mapping yourself.

Here’s how LitExtension handles your WooCommerce CSV import:
Step 1: Send us your CSV files
LitExtension will receive your CSV files containing the necessary data for your store. Your files could include product information, categories, pricing details, and any other relevant data.
Step 2: We customize your CSV files
Once we receive your CSV files, our team will work closely with you to understand your specific requirements. We will customize the CSV files to ensure they align with your desired data structure, fields, and formatting. This step allows us to tailor the import process to match your unique needs before migrating data to WooCommerce.

Step 3: Run CSV files migration to WooCommerce
With the customized CSV files in hand, we will start the CSV file migration process. Here, we will create updated products, categories, attributes, and other relevant entities based on the provided CSV data you’ve sent us.
We will ensure that the data from your CSV files is accurately imported into your WooCommerce store!

Step 4: Verify migration result
Once the migration is complete, we meticulously review the results to ensure everything has been accurately transferred. Our team will examine that all data has been imported correctly. We will also address any issues that may arise during the migration process.

Once the review is complete, we will hand over the store to you, empowering you to take control and manage your WooCommerce store with the imported data. You can learn more about how we perform CSV file migration in the video below!
With LitExtension, you can confidently avoid the hassles of manually managing the import and ensure a smooth, trouble-free transition to WooCommerce.
Need Help With WooCommerce Import?
LitExtension provides a well-optimized CSV file migration service for your data transfer.

Troubleshooting WooCommerce CSV Import Issues
Even a properly formatted file can hit snags once it reaches WooCommerce. Here are the errors that come up most often, and what actually fixes them.
1. WooCommerce cannot upload or process the CSV
A CSV may fail before the import starts because of an invalid file format, server restrictions, or a file that is too large for the server to process. WooCommerce recommends using a UTF-8 CSV and splitting large files into smaller batches when necessary.
How to fix it:
- Make sure the file is saved as UTF-8 CSV.
- If WordPress displays “Sorry, this file type is not permitted for security reasons,” upload the CSV to the site’s uploads directory through SFTP or the hosting file manager. Then use Show advanced options in the importer to enter the server file path.
For large files, split the CSV into smaller batches and import them separately. If the problem continues, ask your hosting provider to check upload, memory, and processing limits.
2. CSV data is imported into the wrong field or not imported
WooCommerce automatically maps recognized CSV headers, but columns that do not match the product CSV schema are not imported by default. Formatting can also affect how values are interpreted; for example, commas are used as separators, while existing IDs need the id: prefix.
How to fix it:
- On the Column mapping screen, review the mapping for every column before clicking Run the importer Select Do not import for columns you do not need.
- Check that your headers match WooCommerce’s supported schema.
- Use the correct format for special values, such as 1/0 for Boolean fields and id:100 when referencing an existing product ID.
For custom metadata, use the meta: prefix, such as meta:product_depth, and map it to Import as meta if necessary.
3. Variations or their Attributes are not imported correctly
Variation data depends on several CSV fields working together. If the Type, Parent, SKU, or attribute values are inconsistent, WooCommerce may skip the variation or fail to associate it with the correct parent product.
How to fix it:
- Set the parent product’s Type to variable and each variation’s Type to variation. Give every variation a unique SKU.
- Check that Parent contains the correct parent SKU or ID.
- Make sure the attribute name and values in the variation rows match those defined for the parent.
When converting an existing simple product using WooCommerce 11.1’s single-import workflow, make sure the parent row appears before its variation rows.
4. Images are missing or duplicated after import
As mentioned earlier, WooCommerce can import images from direct external URLs or reference images already available in the Media Library. Still, problems can occur when an image URL is inaccessible, relies on redirects, or the same external image is repeatedly downloaded during imports.
How to fix it:
- Open external image URLs directly in a browser to confirm that they point to the actual image.
- Check that the Images values are correctly formatted.
- If an image already exists in the Media Library, use its filename where supported instead of repeatedly downloading it from an external URL.
- Test a small number of images before importing a large catalog.
Again, please keep in mind that the core WooCommerce importer does not add or update image alt text through CSV.
Best Practices for WooCommerce CSV Import
Most of the issues above are avoidable, not just fixable after the fact. A few habits go a long way toward making a WooCommerce CSV import predictable instead of a gamble:
- Back up your store before importing. A full backup – or at minimum, an export of your current product data – gives you a way back if something goes wrong partway through a large import.
- Test with a small batch first. Import 5–10 rows before running the full file. This surfaces mapping or formatting issues while they’re still easy to fix, rather than after thousands of rows have already gone through.
- Save your file as UTF-8 before every import, not just the first one. This single habit prevents most of the encoding-related issues covered above.
- Keep the ID or SKU column present and mapped correctly, especially for update imports. It’s the single most common reason updates turn into duplicates instead.
- Review the mapping screen manually, even when the auto-match looks right. A silently wrong mapping produces no error – just incorrect data sitting in the right-looking place.
- Spot-check after every import, not just the first one. Open a handful of products – ideally including at least one variable product – and confirm images, pricing, stock, and variations all look correct.
- Keep source files organized by import date and entity type. If you ever need to re-run or partially undo an import, having the exact file you used on hand saves significant time.
- For recurring imports, standardize your export template once. A consistent column structure in your source system means less remapping each time you run the process.
None of these steps takes long individually, but skipping them is exactly how a “successful” import ends up needing a second pass or a manual cleanup a few days later.
WooCommerce CSV Import – FAQs
Can I import a CSV file directly into WooCommerce?
Yes. WooCommerce includes a built-in Product CSV Importer that lets you upload a CSV file, map its columns to WooCommerce product fields, and import products directly from your dashboard. You can also use the same tool to bulk-update existing products by matching them through their product ID or SKU.
What format should a WooCommerce CSV file be?
Your CSV should generally use UTF-8 encoding and follow WooCommerce’s expected column structure. Boolean values should use 1 or 0, multiple values should be separated by commas, and existing product IDs should use the id: prefix when referenced. You should also use > to represent taxonomy hierarchies.
Can I import product images with a WooCommerce CSV?
Yes. WooCommerce can import product images using image URLs. The images need to be publicly accessible, and WooCommerce can add supported external images to the Media Library during the import. You can also use images that have already been uploaded to your Media Library.
How do I update existing WooCommerce products with a CSV?
Prepare a CSV containing the products you want to update, making sure their ID or SKU is included and correctly mapped. Then go to Products > All Products > Import, upload the file, select Update existing products, review the column mapping, and run the importer. WooCommerce uses the ID or SKU to match the rows with existing products.
Can I import variable products with a CSV?
Yes, but variable products require additional structure. Each variation needs to be linked to its parent product through the appropriate parent relationship, while attributes such as size or color define the variation options. If the parent-child relationship is missing or incorrectly configured, WooCommerce may import variations as separate products instead.
Final Words
And that brings us to the end of our guide on how to perform WooCommerce CSV import data.
To put it briefly, a WooCommerce CSV import comes down to three things: getting the file format right, choosing the method that fits your situation, and checking the results rather than trusting the success message alone. Whether that’s the built-in importer for a quick product upload, a plugin for something more complex, or a full migration when you’re moving an entire store, the right choice depends less on which option is “best” and more on what your data actually looks like.
If you’re weighing a full migration over a one-off import, LitExtension team is happy to walk through what fits your store best – no pressure, just a conversation about your options. And for more on getting the most out of WooCommerce, our other WooCommerce articles are worth a look.

