
Adding products to your WooCommerce store one by one is tedious, error-prone, and painfully slow. If you have dozens or hundreds of products to add, you need a WooCommerce product import plugin. Manual entry can eat up entire days that you should be spending on actually running your business.
The longer you spend on data entry, the longer your store sits without inventory. Delayed product listings mean delayed revenue.
The fix is straightforward: import WooCommerce products in bulk from a CSV, TXT, or TSV file. In this guide, we’ll walk you through the entire process step by step using Product Importer Deluxe, , a WooCommerce product import plugin, from preparing your import file to handling variable products and updating existing listings without creating duplicates.
Ready to start importing? Get Product Importer Deluxe — the fastest way to bulk import WooCommerce products from CSV, TSV, or TXT files.
What You Need Before Importing WooCommerce Products
Before you start importing products, you need three things in place: a working WooCommerce installation, a properly formatted import file, and WordPress admin access.
WooCommerce must be installed and activated on your WordPress site. If you’re working with a fresh install, make sure your basic store settings (currency, tax, shipping zones) are configured first. Importing products before those settings are ready can cause pricing and tax calculation issues down the line.
You also need a CSV, TXT, or TSV file containing your product data. This file is the backbone of your import, so it needs to follow a specific structure. We’ll cover how to prepare it in the next section.
Finally, you need administrator-level access to your WordPress dashboard. Editor or Shop Manager roles won’t have the permissions needed to run product imports. If you’re working with a developer or assistant, make sure they have the right access level before starting.
One more detail that trips people up: save your import file in UTF-8 encoding. This prevents character corruption with special characters, accented letters, and currency symbols. Most spreadsheet applications default to UTF-8, but if you see garbled text after importing, encoding is almost always the culprit.
How To Prepare Your Import File
A well-structured import file is the difference between a smooth one-click import and hours of troubleshooting. Your CSV, TXT, or TSV file needs a header row with column names that map to WooCommerce product fields.
At a minimum, every import file should include these three columns:
- post_title: The product name that customers will see in your store
- regular_price: The standard selling price for the product
- sku: A unique identifier for each product, used for inventory tracking and duplicate prevention
Beyond those essentials, you can include optional columns for descriptions, categories, tags, images, stock quantities, weights, dimensions, sale prices, and tax status. The more complete your file, the less manual editing you’ll need to do after the import.
For variable products, you’ll need parent and child rows. The parent row defines the main product (with product type set to “variable”), while child rows define each variation with their own pricing, SKU, stock levels, and attribute values. We cover this in detail in the variable products section below.
What We’ve Seen: The most common CSV formatting mistake we encounter is store owners using commas inside product descriptions without wrapping the field in quotes. A comma inside an unquoted field breaks the column alignment for every row after it, causing the entire import to map incorrectly. If your product names or descriptions contain commas, make sure those fields are enclosed in double quotes. Another frequent issue is extra whitespace in column headers. A space before or after “sku” turns it into ” sku” or “sku “, which won’t map automatically.
How To Import Products Step By Step
Once your file is ready, the actual import process with this WooCommerce product import plugin takes just a few minutes. Here’s exactly how to do it.
Step 1: Upload your file
Product Importer Deluxe gives you four ways to load your import file, so you can choose whatever fits your workflow:
- Upload from your computer: The most common method. Browse to your local CSV, TXT, or TSV file and upload it directly through the WordPress interface.
- Server file path: If your file is already on the server (useful for large files or automated workflows), enter the file path directly.
- URL: Point to a file hosted on an external server or cloud storage. Handy if your supplier or ERP system generates product feeds at a fixed URL.
- Remote FTP: Connect to an FTP server to pull in your import file. This works well for stores that receive product data from suppliers via FTP drops.
After uploading, the plugin reads your file and shows a preview of the data it found, including the number of rows detected and a sample of the first few entries.
Step 2: Map your columns
Column mapping tells the importer which columns in your file correspond to which WooCommerce product fields. Product Importer Deluxe uses intelligent auto-detection to match common column names automatically.
If your CSV header uses standard names like “post_title,” “regular_price,” or “sku,” the plugin maps them without any manual input. For non-standard headers, you can manually assign each column to the correct WooCommerce field using dropdown menus.
The mapping screen also shows a sample data preview for each column, so you can verify that “Price” actually contains prices and not product names before running the import. This preview step catches misalignment issues before they become a problem.
Step 3: Choose your import mode
This WooCommerce product import plugin offers three import modes, and picking the right one matters:
- Import new products only: Creates new product listings and skips any rows that match existing products. Use this when adding a new product line or supplier catalog without affecting your current inventory.
- Import new and update existing: Creates new products and simultaneously updates any existing products that match by SKU or product ID. This is the most versatile mode for ongoing catalog management.
- Update existing products only: Skips new products entirely and only modifies products that already exist in your store. Perfect for bulk price updates, stock level changes, or seasonal description refreshes.
The plugin matches products using either SKU or product ID, depending on your configuration. SKU matching is generally more reliable because SKUs are consistent across systems, while product IDs are specific to your WordPress database.
Step 4: Run the import
Click the import button and the plugin starts processing your file. You’ll see a real-time progress bar showing how many products have been processed, along with a live import log that reports each product as it’s created or updated.
The real-time logging is particularly useful for catching issues mid-import. If a row has a formatting error or a missing required field, the log tells you exactly which row failed and why, so you can fix it and re-run just those products.
After the import completes, verify your results by checking a few products in WooCommerce. Confirm that prices, descriptions, categories, and images all came through correctly. If anything looks off, the import log gives you a clear trail to trace back to the source.
How To Import Variable Products
Variable products are the most complex product type to import because each product consists of a parent entry plus multiple variation rows. Getting the CSV structure right is essential.
In your import file, the parent product row defines the main product listing. Set the product type to “variable” and include the product name, description, categories, and any shared attributes. Do not include pricing on the parent row since each variation has its own price.
Each variation gets its own row immediately after the parent. Variation rows need:
- Parent SKU or product ID: Links the variation back to its parent product
- Attribute values: The specific size, color, material, or other attribute for this variation
- SKU: A unique SKU for this specific variation
- Regular price: The price for this variation
- Stock quantity: Inventory count for this specific variation
- Variation images: Optional, but recommended for a better customer experience
Product Importer Deluxe supports all WooCommerce product types including simple, variable, grouped, external, virtual, and subscription products. For variable products specifically, it handles attribute creation, variation linking, variation-specific images, and per-variation pricing and stock levels.
What We’ve Seen: The most common variable product import mistake is putting price data on the parent row instead of on each variation row. When this happens, the parent product shows a price, but the individual variations either show no price or override the parent incorrectly. Another frequent issue is inconsistent attribute naming. If one variation uses “Blue” and another uses “blue” (lowercase), WooCommerce treats them as two separate attributes. Standardize your attribute values before importing to avoid ending up with duplicate attributes in your product listings.
How To Update Existing Products Without Creating Duplicates
Updating products in bulk is one of the most practical reasons to use a product importer. Instead of editing each product manually, you can export your catalog, make changes in a spreadsheet, and re-import the updated file.
To update without creating duplicates, use the “Update existing products only” import mode in Product Importer Deluxe. This mode skips any rows that don’t match an existing product and only modifies products it can identify by SKU or product ID.
SKU-based matching is the recommended approach. Every product in your file needs a SKU that matches the SKU already assigned in WooCommerce. When the importer finds a match, it updates only the fields included in your import file and leaves everything else untouched.
Common use cases for bulk updates include:
- Seasonal price changes: Update regular or sale prices across your entire catalog in one pass
- Stock level adjustments: Sync inventory counts after a warehouse audit or supplier delivery
- Description refreshes: Update product descriptions for a new season, promotion, or SEO improvements
- Category reorganization: Move products between categories as your store structure evolves
If you need to both add new products and update existing ones simultaneously, use the “Import new and update existing” mode instead. This processes every row in your file, creating new products where no SKU match exists and updating products where a match is found.
Supported File Formats For WooCommerce Product Import
Product Importer Deluxe supports three file formats for importing WooCommerce products: CSV, TXT, and TSV. Each format works slightly differently, and the best choice depends on your data source.
- CSV (Comma-Separated Values): The most widely used format. Fields are separated by commas, and it’s the default export format for most spreadsheet applications and e-commerce platforms. Use CSV if you’re creating files in Excel, Google Sheets, or exporting from another WooCommerce store.
- TSV (Tab-Separated Values): Fields are separated by tab characters instead of commas. TSV is useful when your product data contains many commas (in descriptions, for example) since you don’t need to worry about quote-escaping. Some ERP and inventory management systems export in TSV format by default.
- TXT (Text Files): A flexible plain text format that can use various delimiters. TXT files are common when receiving product feeds from suppliers who use custom formatting.
Regardless of format, make sure your file uses UTF-8 encoding and includes a header row with column names. If you’re not sure which format to use, start with CSV. It has the broadest compatibility and is the easiest to create and edit in standard spreadsheet applications.
For a deeper comparison of export and import formats, see our guide to CSV and other export formats.
Troubleshooting Common Import Issues
Even with a properly prepared file, you may run into issues during import. Here are the most common problems and how to fix them.
- Garbled or broken characters: This almost always means your file isn’t saved in UTF-8 encoding. Open the file in a text editor (not Excel), resave it as UTF-8, and re-import. Special characters, accented letters, and currency symbols are the first to break when encoding is wrong.
- Timeouts on large imports: If you’re importing thousands of products, your server may time out before the import finishes. Product Importer Deluxe processes imports in batches to handle this, but very large catalogs on shared hosting may still hit server limits. If you experience timeouts, try splitting your file into smaller batches of 500-1,000 products each.
- Column mismatch errors: If products are importing with data in the wrong fields (prices showing up as descriptions, for instance), your column mapping is off. Go back to the mapping step and verify each column is assigned to the correct WooCommerce field. The sample data preview helps you catch these mismatches before they affect your catalog.
- Images not importing: Product images need to be accessible via a public URL in your import file. If image URLs return 404 errors or require authentication, the import will skip them. Verify that every image URL in your file loads correctly in a browser before importing. Also check that your server has enough memory allocated for image processing, as large images can cause PHP memory limit errors.
- Duplicate products after import: If you’re seeing duplicates, your import mode or matching settings may be incorrect. Make sure you’re using SKU-based matching and that every product in your file has a unique SKU. If products don’t have SKUs, add them before importing to give the plugin a reliable way to identify existing products.
Start Importing WooCommerce Products Today
Bulk importing saves hours of manual work and keeps your product catalog accurate across every update. Whether you’re launching a new store with hundreds of products or running weekly price updates from a supplier feed, a reliable import process is one of the most practical tools in your WooCommerce workflow.
Here’s a quick recap of what we covered:
- Prepare your import file with proper UTF-8 encoding and the right column structure
- Use intelligent column mapping to match your file fields to WooCommerce product data
- Choose the right import mode (new only, new + update, or update only) for your situation
- Structure variable products with parent and child rows for clean variation imports
- Use SKU-based matching to update existing products without duplicates
Ready to import WooCommerce products in bulk? Get Product Importer Deluxe and start managing your catalog more efficiently. New to Product Importer Deluxe? See our step-by-step getting started guide for a hands-on walkthrough.
For a broader look at how this solution compares to other top-rated tools on the market, be sure to read our detailed breakdown of the best WooCommerce product import plugins.

Frequently Asked Questions
How do I import products into WooCommerce from a CSV file?
Prepare a CSV file with columns for product title, price, and SKU at minimum. Install Product Importer Deluxe, upload your CSV file, map your columns to WooCommerce product fields, select your import mode, and click import. The plugin handles the rest, creating product listings from each row in your file. The entire process typically takes just a few minutes for files with a few hundred products.
Can I import variable products with all their variations?
Yes. Product Importer Deluxe fully supports variable product imports, including attributes, variations, variation-specific images, pricing, and stock levels. Structure your CSV with a parent row (product type set to “variable”) followed by child rows for each variation. Each variation row should include the parent SKU, attribute values, its own SKU, price, and stock quantity.
How do I update existing products without creating duplicates?
Use the “Update existing products only” import mode in Product Importer Deluxe. This mode matches products by SKU or product ID and only updates fields included in your import file. It skips any rows that don’t match an existing product, so there’s no risk of accidental duplicates. Make sure every product in your file has a SKU that matches your existing WooCommerce product SKUs.
What file formats does Product Importer Deluxe support?
Product Importer Deluxe supports CSV (comma-separated values), TSV (tab-separated values), and TXT (plain text) file formats. CSV is the most common choice and works with all major spreadsheet applications. TSV is useful when your data contains many commas. All formats should use UTF-8 encoding for proper character handling.
Can I schedule automatic product imports?
Product Importer Deluxe supports importing from URLs and remote FTP servers, which makes it possible to pull in product data from external feeds. If your supplier or ERP system generates product files at a fixed URL, you can configure the plugin to import from that URL. For fully automated scheduled imports, you would combine the URL import method with a WordPress cron job or server-side scheduling tool.























