Skip to main content
4 min read
By Chieyine NelsonPublished December 5, 2025Reviewed August 15, 2026

Import Products to WooCommerce via CSV

Bulk upload products to WooCommerce using the built-in CSV importer. Handle images, variations, categories, and attributes correctly.

Adding products one by one in WordPress is slow. If you have a catalog of 500 items, you need CSV import.

WooCommerce includes a product CSV importer and exporter. It supports simple products, variations, attributes, categories and remote image URLs when the file follows the expected schema.

The CSV Format

WooCommerce uses a specific schema. The easiest way to get a template is to Export a few existing products first.

Key Columns:

  • ID: Leave blank for new products. Use exact ID to update existing ones.
  • Type: simple, variable, grouped, or external.
  • SKU: Unique identifier.
  • Name: Product title.
  • Published: 1 (yes) or 0 (no).
  • Regular price: Number (no currency symbol).
  • Images: URL to the image (e.g., https://mysite.com/image.jpg).
  • Tax: product_cat: Category name.

Step-by-Step Import

  1. Go to Products:

    • In WordPress Admin, go to Products > All Products.
    • Click Import (top button).
  2. Upload CSV:

    • Choose your file.
    • Check "Update existing products" if you are modifying stock/prices (matches by ID or SKU).
  3. Map Fields:

    • WooCommerce maps columns automatically.
    • Review fields like "Price", "Description", "SKU".
  4. Run Importer:

    • Click Run the importer.
    • Wait for the progress bar.

Importing Images

This is the trickiest part. You cannot upload an image file via CSV. You must provide a URL.

  1. Upload your product images to your WordPress Media Library (or an external host).
  2. Copy the URL of each image.
  3. Paste the URL into the Images column in your CSV.
  4. For multiple images, separate URLs with commas.

WooCommerce will download these images to your server and attach them to the product during import.

Importing Variable Products (Size/Color)

This requires multiple rows.

Row 1 (Parent):

  • Type: variable
  • SKU: shirt-parent
  • Name: Cool Shirt
  • Attribute 1 name: Size
  • Attribute 1 value: S, M, L
  • Attribute 1 visible: 1
  • Attribute 1 global: 1

Row 2 (Variation):

  • Type: variation
  • Parent: shirt-parent (Must match Parent SKU)
  • Attribute 1 name: Size
  • Attribute 1 value: S
  • Regular price: 20.00

Row 3 (Variation):

  • Type: variation
  • Parent: shirt-parent
  • Attribute 1 name: Size
  • Attribute 1 value: M
  • Regular price: 20.00

Common Issues

1. "Invalid file type"

Use WooCommerce's built-in importer under Products > All Products > Import. Do not enable unrestricted uploads in WordPress to work around an error. Confirm that the file is a real UTF-8 CSV, not an Excel workbook renamed with a .csv extension.

2. Images Not Importing

Fix: Ensure the URLs are public (http/https). If your site is in "Maintenance Mode", the importer can't fetch the images.

3. Timeout / Memory Limit

Fix: Test a small batch first, then split a large catalog into manageable files. Server limits vary, so use the import log and hosting diagnostics before changing PHP settings.

Use an export as your template

Create one simple product and one variable product manually, then export them from WooCommerce. That file reflects the columns and conventions supported by your installed version and extensions. Work from a copy and keep the original export for rollback.

For updates, retain ID or SKU and select the option to update existing products. Check that each identifier is unique. An incorrect identifier can update the wrong product, while a missing one can create duplicates.

Categories use > for hierarchy, such as Clothing > Shirts. Multiple categories are comma-separated, which means the CSV serializer must quote the whole field. Variation rows need a stable parent reference and consistent attribute names. Test one parent and two variations before importing the full catalog.

After import, review the WooCommerce results screen and error log. Check prices, tax status, stock, images, categories and at least one variable product on the storefront. The official WooCommerce Product CSV Importer and Exporter documentation remains the authority for supported columns and current behaviour.


Preparing a WooCommerce CSV? Use HappyCSV to merge supplier lists, calculate prices, and format your columns before importing.

Use the CSV Editor

Edit CSV cells locally in your browser, review changes, and download a clean copy without uploading your data. Your file is processed locally in the browser.