WooCommerce CSV import is one of the fastest ways to get data into your store – products, coupons, and more – without adding them one by one. But it's also where small formatting mistakes can lead to missing images, broken variations, or duplicate listings. No worries, though: getting it right isn't complicated once you know the format WooCommerce expects and which import method fits your situation.
In this guide, we'll walk through WooCommerce CSV format across data types, three ways to actually perform a WooCommerce CSV import – the built-in importer, a plugin, or a fully managed migration – and how to fix the errors that come up most often. Let's get started.
Before You Start: WooCommerce Product CSV Format
WooCommerce reads data through a specific set of columns, and a WooCommerce CSV import only goes smoothly when your file matches that structure. A column name that's slightly off, or a value in the wrong format, can leave an import looking successful while products end up with missing prices, broken variations, or no images at all.
A few formatting rules apply across every data type – products, customers, orders, coupons, or otherwise:
- CSVs should be saved in UTF-8 encoding; anything else can cause special characters or entire columns to import incorrectly
- Boolean fields (published, featured, in stock) use 1 or 0, not “yes”/”no”
- Multiple values in one field: tags, image URLs, and category hierarchies are separated with commas
- Wrapping a value in quotes lets you safely include a comma inside it
- Reference an existing record by ID using the id: prefix (e.g., id:100); no prefix is needed for SKUs.
Here's how the most commonly used product columns map to WooCommerce fields:
CSV Column | Maps to | Example | Notes |
Type | type | simple, variable, variation | Multiple types separated by comma |
SKU | sku | my-sku | Auto-generated if left blank |
Name | name | Blue Cotton T-Shirt | Required |
Stock | stock_quantity | 25 | Blank = no stock management |
Regular price | regular_price | 24.99 | Numeric only, no currency symbol |
Categories | category_ids | Apparel > T-Shirts | Use > for hierarchy |
Images | image_id / gallery_image_ids | https://example.com/img.jpg | First URL is the featured image |
Importing variable products works a little differently: each variation needs its own row, linked back to a parent row via the Parent column, with Attribute columns defining which options (size, color) apply to each variation. That parent-child link tells WooCommerce that a row is a variation, not a separate product – miss it, and the variations show up as standalone listings instead.
Coupons follow a separate schema entirely: fields like code, discount_type, amount, and expiry_date replace the product columns above, since a coupon isn't a product record at all.
This covers the fields most stores actually use. For the complete column reference, including tax classes, shipping dimensions, and downloadable product fields, the full WooCommerce Product CSV Import Schema on GitHub is worth bookmarking before a large import.
WooCommerce CSV Import: All Methods Compared
With the format sorted, there are three ways to get your CSV into WooCommerce, each with different trade-offs in cost, effort, and scope.
Method | Best for | Pros | Cons |
Manual import (WooCommerce's built-in tool) | Small catalogs, one-time imports | Free, no extra setup, handles simple and variable products | No scheduling, limited error handling, products only – no coupons or other data types |
Third-party import plugin | Larger or recurring imports, custom fields | Field mapping, scheduled/automated imports, handles complex data | Usually paid for full features, still requires manual setup |
Migration service | Full store migrations, multiple data types at once | Handles products, coupons, customers, and orders together; QA and error-checking built in | Not designed for a single one-off product upload – better suited to a full migration |
The built-in tool is the natural starting point: it's already in your WooCommerce dashboard and costs nothing to try, though it only covers products. A plugin earns its place once your imports become more frequent or more complex, or when you need to cover data types the native tool doesn't handle. As for the migration service, it fits a different situation entirely: it's less about importing a single CSV and more about moving a store's full dataset – products, coupons, customers, and orders – without having to do the mapping and QA yourself.
Each approach is covered step by step below, starting with the one already sitting in your dashboard.
How to Perform WooCommerce CSV Import Manually
WooCommerce Product CSV Importer and Exporter is built into your dashboard, making it the fastest way to try a WooCommerce CSV import without installing anything extra. Here's how the process works.
To better guide you through the process, we have actually tested out the feature on our store. In this way, you can painlessly follow our footsteps on how to import products to WooCommerce as follows:
Step 1: Prepare your CSV file
First, export your product data from your current platform if you have one. If you are exporting from WooCommerce, here's detailed guidance you shouldn't miss.

Step 2: Add Product images

The importer pulls images from a URL, not a local file upload, so images need to be hosted first. Upload each image to your WordPress Media Library, copy its URL, and paste that URL into the Images column of your CSV.

To be more specific, you can follow some basic instructions for managing data and images:
CSV Files | Product Images |
• CSVs should be in UTF-8 format. | • Images need to be pre-uploaded or available online to import to your store. |
Once you've finished customizing your file, export it to CSV, and we can move to the next step!

Step 3: Import CSV file to WooCommerce
From your WooCommerce Dashboard, select Products on the left-hand sidebar:

Next, click on Import near the top of the page, and the system will redirect you to a page where you can upload the products via CSV file:

Hover your mouse over the Choose file button, then hover over Continue to go to the next step. WooCommerce will automatically match recognized column names to product fields – review this mapping screen carefully, since a mismatched column is one of the more common causes of a “successful” import that still looks wrong afterward. Set any unmapped or irrelevant columns to Do not import.

In addition, you can use the drop-down menus to make advanced adjustments to WooCommerce import categories. Complete the WooCommerce import CSV for products by selecting the “Run the importer” button:

Step 4: Update existing products via CSV files
WooCommerce Product Importer CSV can also be utilized to update your existing product information, like adding a new brand, bulk update, or changing tax class, etc. There’s not much difference in the steps for adding new products.
Likewise, starting with WooCommerce > Products > Import flow. After uploading your CSV file, you tick the checkbox for Update Existing Products right under:

Click on Continue, and the rest of the process will remain the same.

When the process is done, you will see a message showing on the screen below

Step 5: Check the result in the WooCommerce store
We're in the final steps of WooCommerce CSV import: check the final results on your WordPress WooCommerce store.

A “success” message only confirms the file was processed – it doesn't guarantee every field landed where you expected. Before moving on, it's worth opening a handful of the newly imported products to confirm images, price, stock, and variations all look right.
This built-in tool is generally enough on its own for a straightforward product catalog – and if products are the only thing you're importing, our dedicated guide on importing products to WooCommerce walks through every screen in more depth than we can cover here. On the other hand, it falls short once scale or data variety enters the picture: there's no scheduling, error messages are minimal, and it only handles products – coupons and other data types aren't part of it at all.
How to Perform WooCommerce CSV With Third-Party Plugins
The built-in importer covers the basics, but a few real limits show up once your imports get bigger, more frequent, or need to cover more than products: no scheduling, minimal error feedback, and no support for coupons or customers. That's the gap a third-party plugin is built to close. WP All Import is one of the most widely used tools for exactly this – it handles products, customers, orders, and coupons as separate, dedicated import types, each with its own field mapping, and supports scheduled recurring imports on top of that.
Here's how a WooCommerce CSV import looks using WP All Import:
Step 1: Create a new import for WooCommerce data
First, install the plugin and its WooCommerce add-on. Both are required: the base plugin handles the file, while the add-on unlocks WooCommerce-specific fields like price, stock, and product type.
Now, it's time to start the CSV WooCommerce import. From your dashboard, go to All Import > New Import, upload your CSV, and choose the WooCommerce data type you're importing – products, customers, orders, or coupons – each has its own dedicated path, with fields specific to that data type.

Click Create Filters to continue.
Step 2: Review the CSV import file
Before any mapping occurs, WP All Import shows a preview to confirm that your file was interpreted correctly and lets you adjust the delimiter here if needed. Add any filtering options if you only want to import a subset of records, then click Continue to Setup Import.

Step 3: Map incoming data elements to target fields
Then, move forward to mapping your columns with drag-and-drop. Rather than relying on automatic name-matching, as the built-in tool does, you manually drag each data element onto its corresponding field.
Product imports organize this into tabs (pricing, inventory, shipping, attributes, and more); customer imports use Customer Account Info, Billing & Shipping, and Other Customer Info panels instead – order and coupon imports follow the same drag-and-drop logic with their own relevant fields.

Once done, click Continue to Import Settings to proceed with the next steps.
Step 4: Configure import settings
At this stage, click Auto-detect to set a unique identifier, then decide whether re-running this import should create new records, update existing ones, or remove records no longer in the file – this is also where scheduled, automatic re-imports get set up. Review the Confirm & Run summary, then click Confirm & Run Import.

Once it's done, check the relevant WooCommerce screen – Products, Customers, or Orders – to spot-check what came through.
This same general flow – select data type, map fields, configure, run – applies across most WooCommerce import plugins, even though the exact screens and terminology will differ from one tool to the next. One thing worth keeping in mind, regardless of which plugin you use: import products and customers first, then coupons, reviews, and orders. This preserves the relationships between them even when original IDs aren't kept.
Other WooCommerce Import Plugins Worth Knowing
WP All Import isn't the only option – a few other plugins are worth knowing about, each with a different balance of features and cost:
Plugin | Pros | Cons | Pricing |
WP All Import | - Supports all data types, including products | - Free version has limited features | Free version available; Pro starts at $99/year for unlimited installations |
Woo Import Export | - Handles images and variable products effectively | - Lacks an embedded function editor for data transformation | Pro version starts at $229 for a single site license |
Product Importer Deluxe | - Some support for image and variable product imports | - Limited support for serialized fields | Pro version starts at $79/year for a single site license |
Product Import Export for WooCommerce | - Allows mapping data to product attributes | - Inability to handle complex data formats | Free version available; Pro starts at $69/year for a single site license |
WooCommerce Product CSV Import Suite | - Simple and cost-effective for controlled data sources | - Poor handling of CSV formatting issues | Pro version costs $59/year |
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.
Prices imported as $0 or blank
WooCommerce's Regular price and Sale price columns only accept plain numbers: no currency symbol, no thousands separator, no trailing text like “USD.” A value like $24.99 or 1,200.00 doesn't throw an error; it just fails to parse, and WooCommerce quietly treats the field as empty. This is one of the most common causes of an import that “succeeds” but leaves half the catalog unpriced.
The fix is straightforward – strip all symbols and separators so only the raw number remains – but it's worth checking your export source, since some platforms and spreadsheet tools add currency formatting automatically without it being obvious in the cell itself.
The import creates duplicate products instead of updating existing ones
This one trips up more merchants than any other on this list. When updating existing products is enabled, WooCommerce needs a way to match each row in your file to a product that already exists in your store – and it does that using either the ID or SKU column, never the product name. If that column is missing, blank, or mapped to the wrong field during setup, every row is treated as brand new, and you end up with a doubled catalog instead of updated listings.
Before re-running an update import, it's worth opening the mapping screen and confirming that the ID or SKU column is both present and correctly matched, rather than assuming it carried over from the last import.
Variations appear as separate products, not as options on a single item
A variable product's variations aren't separate entities in WooCommerce's eyes unless the CSV tells it so – each variation row needs a Parent column pointing back to its parent product row, and the parent row itself needs its Type field correctly set to variable. Get either piece wrong, and WooCommerce has no way to know the rows belong together, so it imports them as standalone products instead of size/color options on one listing.
Columns map into the wrong fields, or categories don't attach
WooCommerce's automatic column matching isn't perfect, and category names need to match existing categories exactly – including capitalization – or a new, separate category gets created instead. Reviewing the mapping screen before running the import, rather than trusting the auto-match, catches both issues before they become visible only after the fact.
The import stalls or times out on large files
This usually comes down to two server-level limits: max_execution_time, which caps how long a single script can run, and memory_limit, which caps how much data PHP can hold in memory at once. A catalog of a few thousand products with images can hit either ceiling on shared hosting, where these values are often set conservatively and not something you can raise yourself.
The tell-tale sign isn't always an error message – sometimes the import page just stops responding, or the product count in WooCommerce ends up lower than what's in your file, with no clear indication of where it cut off. Splitting the file into smaller batches of 500–1,000 rows sidesteps the problem entirely, since each batch finishes well within the time and memory ceilings rather than pushing against them – no hosting change or plugin needed, just more, smaller import runs.
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
[sp_easyaccordion id=”56438″]
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, our 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.

