
You need to import products from Excel to WooCommerce, fast. Maybe it’s an inventory export from your old platform, a catalog from your supplier, or a master product list of 500+ items you’ve been building in Excel for months. Either way, the thought of entering them one by one makes you want to close your laptop and walk away.
I’ve been there. The good news: you can import that entire spreadsheet in minutes once you know the steps that aren’t immediately obvious. The process has a few pre-flight tasks that catch out first-timers, but once you’ve done it once, bulk imports become routine.
In this article, we’ll cover the complete path to import products from Excel to WooCommerce, including the critical XLS-to-CSV conversion step, variable product handling, image imports, and the troubleshooting checklist I run through whenever an import misbehaves. So, let’s get started!
Before You Start: Preparing Your Excel File
Here’s the honest truth about WooCommerce imports: we’ve seen more imports fail because of bad source data than because of bad import tools. Ten minutes of file prep saves an hour of troubleshooting.
Check your data quality
Open your Excel file and scan the rows. Look for empty rows mixed into the data (delete them), inconsistent category naming (T-Shirts versus Tshirts versus T Shirts), merged cells (unmerge everything), and hidden columns that might have stale data.
Price columns are a common trap. If prices are stored as currency-formatted text like “$29.99” instead of the number 29.99, the import will either fail or create products with zero prices. Strip currency symbols and save prices as plain numbers.
One product per row
Each row should represent a single product. The only exception is variable products, which use one row for the parent and additional rows for each variation. I’ll cover that specifically in a later section.
Column headers
Use clear, descriptive headers in row 1: Product Name, SKU, Price, Short Description, Long Description, Category, and so on. Your column names don’t need to match WooCommerce’s internal field names, because you’ll map them during import. They just need to be unambiguous enough that you know what each column contains.
Required fields at minimum
At a bare minimum, each product needs a product name and a price. SKU is strongly recommended (it’s how you’ll match products for future updates), along with at least a short description. Missing descriptions cause products to look bare on the frontend.
Images
If your spreadsheet references product images, make sure the image URLs are absolute (starting with https://) and publicly accessible. If you plan to upload image files separately, have the files ready alongside the spreadsheet.
Save a backup
Before you convert or edit anything, save a copy of your original Excel file somewhere safe. You’ll thank yourself the first time an accidental Find-and-Replace scrambles a column.
What We’ve Seen: The most common import failure we see has nothing to do with the import tool. It’s the source file. Merged cells in Excel, hidden columns, inconsistent category naming, and price fields formatted as currency text all cause problems downstream. Spending 10 to 15 minutes cleaning your Excel file before the import starts saves hours of diagnosing errors that are difficult to trace back to their cause after the fact.
Understanding WooCommerce Product Fields
Before the field mapping step, it helps to know what WooCommerce is expecting on its side. These are the main field categories your spreadsheet columns will map to.
- Essential fields: Product name, SKU, regular price, short description, long description, product type (simple, variable, external, subscription).
- Common fields: Categories, tags, weight, dimensions (length, width, height), stock quantity, stock status (in stock, out of stock, on backorder), tax class.
- Image fields: Featured image URL and gallery image URLs (the plugin’s sample CSV will confirm the exact column format and delimiter used for multiple gallery URLs).
- Custom attributes: Size, color, material. These become the basis for variable products, and they can also live on simple products as informational attributes.
- Custom meta fields: Any third-party plugin fields, like subscription intervals, brand attributions, or SEO overrides.
Your Excel columns don’t need to match these names exactly. Product Importer Deluxe handles the mapping during upload. For a full field reference, see Visser Labs’ guide on importing WooCommerce products, and the official WooCommerce Product CSV Importer documentation for the underlying field schema.
Step 1: Install Product Importer Deluxe
Before you can import products from Excel to WooCommerce in bulk, you’ll need a dedicated import tool. Start by purchasing the Store Exporter Deluxe + Product Importer Deluxe bundle for $79/year (introductory, normally $158/year) from the Visser Labs plugin page. Product Importer Deluxe is sold as part of this bundle rather than standalone. You’ll receive the plugin ZIP and a license key by email.
Upload the plugin via WordPress admin, Plugins, Add New, Upload Plugin. Activate it, then enter your license key in the plugin’s license screen. Confirm Product Importer Deluxe loads under WooCommerce, Product Importer in the admin menu.
For broader context on why a dedicated importer makes sense over the built-in WooCommerce tool, see Visser Labs’ guide comparing the native WooCommerce importer against a plugin approach.
Step 2: Prepare Your Excel File For Import (Convert To CSV)
WooCommerce import tools, including Product Importer Deluxe, accept CSV, TXT, and TSV formats. They don’t read XLS or XLSX files directly. This is standard across the WordPress ecosystem, so the first real step to import products from Excel to WooCommerce is converting your file to CSV.
How to convert in Excel
Open your Excel file. Go to File, Save As. In the format dropdown, select “CSV (Comma delimited) (*.csv)” and save the file. Microsoft’s official Excel CSV documentation walks through the dialog if you get stuck.
How to convert in Google Sheets
Open the sheet. Go to File, Download, Comma-separated values (.csv, current sheet). The file downloads to your browser’s default location.
Encoding matters
If your product data contains special characters (accented letters, symbols, non-English text), save as UTF-8 CSV instead of the default. In Excel: File, Save As, and pick “CSV UTF-8 (Comma delimited) (*.csv)”. UTF-8 encoding preserves characters that the default Windows or Mac encoding would otherwise scramble.
Common gotcha 1: feature loss warning
Excel warns you that saving to CSV will lose features like formulas, formatting, and multiple sheets. This is expected behavior. Only the active sheet is exported, and all formulas are replaced by their computed values. Accept the warning and save.
Common gotcha 2: commas and quotes
If your product descriptions contain commas, those commas would confuse a CSV parser. Excel handles this automatically by wrapping values in double quotes ("description, with comma"). Verify by opening the saved CSV in a text editor and checking that quoted fields are consistent. Most of the time this works without intervention, but it’s worth a quick spot check.
Hands-on tip
When I converted a client’s 1,200-product Excel file to CSV, the one issue I hit was a description column that contained line breaks within cells. Excel preserved them in the CSV output, but the line breaks confused the import parser and truncated descriptions mid-sentence. I replaced the line breaks with <br> HTML tags in Excel before the conversion, and the import ran cleanly. If your descriptions are rich-text with paragraph breaks, plan for the same cleanup pass.

For additional CSV formatting guidance, see Visser Labs’ WooCommerce CSV import guide.
Step 3: Upload And Map Fields
With a clean CSV ready, you’re ready to upload and configure the import.
Upload your CSV
Go to WooCommerce, Product Importer in the admin menu. Click Upload file and select the CSV you just saved.
Delimiter detection
Most Excel-exported CSVs are comma-separated and upload without intervention. If your CSV uses semicolons (common in European Excel installs) or another delimiter, check the upload options for a delimiter setting so the plugin reads your columns correctly.
Field mapping screen
After upload, Product Importer Deluxe displays a field mapping screen. Your CSV column headers appear on the left, WooCommerce fields on the right. The plugin’s intelligent column detection pre-fills mappings for common fields like product name, SKU, and price, leaving you to confirm or override.

Map each column
Go through every column in your CSV and either map it to a WooCommerce field or mark it as Skip. If your spreadsheet includes a column for internal notes, supplier codes, or any other data that shouldn’t import, Skip is the right choice.
Step 4: Run The Import
Once mapping is complete, review the summary screen to confirm which columns will map to which fields. This is your last chance to catch a mis-mapping before rows start writing to the database.
Click Import. Product Importer Deluxe processes the file row by row, creating or updating products based on your configuration.
A progress indicator shows how many rows have been processed and how many remain. Large imports (several thousand products) may take several minutes, especially if each row includes image URLs that need downloading.
Duplicate handling
If a product with the same SKU already exists in WooCommerce, Product Importer Deluxe’s three import modes determine the outcome:
- New products only: The existing product is skipped, and only brand-new SKUs are created.
- New and update existing: Existing products are updated with new field values, and new SKUs are created.
- Update existing only: Existing products are updated, and rows with SKUs that don’t match any existing product are skipped.
Pick the mode that matches your use case before running the import.
Step 5: Verify Your Products
After the import finishes, Product Importer Deluxe displays a summary with counts of imported, updated, and skipped products plus any rows that errored out.
- Check the import log. Product Importer Deluxe lists every row it touched. Look for errors or warnings and note the row numbers for anything that failed.
- Spot-check in WooCommerce. Open Products, All Products and click into a handful of imported products. Verify the name, price, description, categories, and images all look right.
- Check categories. Confirm products landed in the correct categories and that any new categories were created correctly.
- Check images. Verify featured images and gallery images loaded. If they’re missing, the image URLs might not have been accessible during import (covered in the troubleshooting section).
- Check the frontend. View a couple of imported products on your live store. Confirm they display correctly, add-to-cart works, and pricing matches what your CSV said.
Handling Variable Products
When you import products from Excel to WooCommerce, variable products (a t-shirt in multiple sizes and colors, for example) require a specific CSV structure. This is where most DIY imports break.
What variable products are
A variable product is a single product listing on the frontend, but it contains multiple variations that the customer can pick between. Each variation has its own SKU, its own price, and its own stock level. The parent product carries the name, description, and general attributes.
Excel structure for variable products
Your CSV needs a parent row plus one row per variation. If you’re selling a t-shirt in 3 sizes and 4 colors, that’s 12 variations plus 1 parent = 13 rows in the CSV.
- Parent row: Product name, long description, short description, product type = variable, categories, tags.
- Variation rows: Product type = variation, populated attribute columns (Size, Color), and variation-specific price and stock. Variation rows reference the parent through the column structure Product Importer Deluxe expects.
The exact column layout (including how variation rows reference the parent) is documented in the plugin’s sample CSV. Download the sample, match its structure, and your import will pick up the parent-variation relationships correctly.
Attribute columns
The attribute columns are what make variable products work. You need a column per attribute (Size, Color, Material, whatever applies). Each variation row fills in the specific values (Size = Small, Color = Red).
Common mistake
The mistake we see most often is trying to import variations as separate simple products. The result: 12 standalone listings on the frontend instead of one configurable t-shirt. Product Importer Deluxe handles parent-variation relationships through the field mapping, so getting the structure right in the CSV is the part that needs attention.
For a full walkthrough, see Visser Labs’ variable products import guide.

Handling Product Images
There are two main patterns for getting images into WooCommerce during a bulk import.
Method 1: URL references in your CSV
Include a column with the full image URL for each product (for example, https://example.com/images/product-1.jpg). Product Importer Deluxe downloads the image from the URL during the import and attaches it to the product as the featured image.
For gallery images (multiple images per product), the plugin accepts multiple URLs in a single column separated by a delimiter character. Check the plugin’s sample CSV for the exact separator used (commonly a pipe | or comma) so the URLs split into individual gallery entries correctly.
Method 2: Upload images separately, then reference
Upload your product images to the WordPress Media Library first (via Media, Add New, or an FTP upload to the uploads folder). Then reference the images in your CSV by filename (the plugin matches against existing media library entries) or full URL. Product Importer Deluxe also supports remote FTP as an import location alongside file upload and URL.
Format and optimization
- Full URL is the safest format. It removes any ambiguity about which image goes with which product.
- Relative paths work if your images are already in the WordPress uploads folder.
- Optimize images before import. Large uncompressed images slow down the import significantly and bloat your store. Run them through TinyPNG, Squoosh, or a similar tool first.
Troubleshooting Common Errors
If your attempt to import products from Excel to WooCommerce didn’t work, work through this checklist before trying again.
- No products imported or blank import: Usually an encoding issue or delimiter mismatch. Verify the CSV is UTF-8 and comma-delimited (open in a text editor and check).
- Products imported but fields are wrong: Field mapping issue. Go back to Step 3 and verify each column maps to the correct WooCommerce field.
- Categories not created: Check category column formatting. For nested categories use the full hierarchy path (
Clothing > T-Shirts) or ensure the parent categories already exist in WooCommerce before the import runs. - Images not loading: Verify the URLs are publicly accessible. Paste a URL into a browser in incognito mode. If it doesn’t load without authentication, the import can’t load it either.
- Special characters broken: Encoding issue. Re-save the CSV as UTF-8.
- Import times out: For very large files (5,000+ products), break the CSV into smaller batches of 1,000 to 2,000 products each. Most server environments handle batched imports without issue.
- Variable products imported as simple: Check the product type column in your variation rows (should be
variation) and confirm your CSV matches the plugin’s sample structure for parent-variation relationships.
💡 For more detailed troubleshooting guidance, see Visser Labs’ product import troubleshooting guide.
Start Importing Products From Excel To WooCommerce
You can import products from Excel to WooCommerce in bulk routinely once the file is prepared correctly. Preparation is 80% of the work: clean your Excel data, convert to UTF-8 CSV, and the tool handles the rest.
Here’s a quick recap of what we covered:
- Prepare and clean the Excel file before converting anything.
- Convert the file to UTF-8 CSV to avoid encoding problems.
- Upload and map fields in Product Importer Deluxe.
- Verify results after the import and spot-check the frontend.
- Handle variable products with the parent-plus-variation row structure.
- Work through the troubleshooting checklist if anything misbehaves.
If you’re ready to import products from Excel to WooCommerce, grab the Store Exporter Deluxe + Product Importer Deluxe bundle for $79/year with a 14-day money-back guarantee.
Frequently Asked Questions
Can I import products directly from an Excel file?
Product Importer Deluxe accepts CSV, TXT, and TSV formats. To import products from Excel to WooCommerce, you’ll need to save your Excel file as CSV first, which takes about 30 seconds using File, Save As in Excel. Step 2 of this guide walks through the conversion, including the UTF-8 option for special characters.
Will importing overwrite my existing products?
Only if a product with the same SKU already exists and you’ve selected “New and update existing” or “Update existing only” as the import mode. The default mode (“New products only”) skips duplicates, so your existing catalog stays untouched unless you explicitly choose to update it.
How many products can I import at once?
Product Importer Deluxe has no hard cap on import size. Imports of 5,000+ products typically run successfully on standard hosting. For very large catalogs or shared hosting environments, batching into groups of 1,000 to 2,000 products avoids server timeouts and gives you cleaner logs per run.
Can I import product reviews?
Product Importer Deluxe focuses on product data (name, price, description, categories, attributes, variations, images). Reviews are a separate data type in WooCommerce; if you need to bulk-import or migrate reviews, check with Visser Labs support for the recommended workflow.
What if I make a mistake during import?
Product Importer Deluxe logs every action, so you can review the log to identify issues. If products imported incorrectly, you can either fix the source CSV and re-run the import in update mode, or use Store Exporter Deluxe to export the affected products, correct them, and re-import.
Does Product Importer Deluxe handle subscription products?
Yes. Product Importer Deluxe advertises native support for WooCommerce Subscriptions, which includes importing subscription-type products with renewal intervals, trial periods, and subscription-specific fields.
What about WooCommerce Bookings or Tickets?
Product Importer Deluxe supports simple, external, variable, variation, and subscription product types, plus Bookings and Tickets where those plugins are installed and configured.









