By
Published on July 31, 2026

A Quick Look at Importing Variable Products into WooCommerce

Importing variable products into WooCommerce gets complicated fast, and how complicated depends entirely on the state of the file you’re importing from. Most of that complexity comes down to two things: telling WooCommerce which products are variable, and correctly linking each variation back to its parent product.

In this article, I’m going to walk through both ways WP All Import handles this: Automatic Setup, which maps everything for you in a few clicks, and the manual Drag & Drop process, which gives you full control over exactly how each field is mapped.

Table of Contents

What Makes Importing Variable Products Different?

To help you understand the basics of importing WooCommerce products, give this article a quick read: How to Import WooCommerce Products from CSV and XML. If you skip it, you may not understand the context of some of the screens I’m about to show you.

As you’ll see from that article, importing even simple WooCommerce products isn’t all that simple. You need to map more incoming data elements to fields for WooCommerce products than you do for other data types, and those mappings can have a significant impact on how those products interact with your WooCommerce store.

Importing variable products adds another layer of complexity and involves three specific touchpoints:

  • Specifying that you’re importing a variable product;
  • Mapping incoming data elements to the fields in the Attributes tab of the WooCommerce Add-On section of the Drag & Drop screen;
  • Mapping incoming data elements to the fields of the Variations tab in the same section.

How much of this you handle yourself depends on which method you use. Automatic Setup identifies all three and maps them for you. Manual field mapping means configuring each one yourself. I’ll cover Automatic Setup first, then walk through the manual process for anyone who needs that level of control.

Using Automatic Setup to Import WooCommerce Variable Products

WP All Import’s Automatic Setup feature identifies all three touchpoints from the last section (product type, attributes, and variations) without you mapping anything yourself. Upload your file, tell it what you’re importing, and it builds the field mapping for you.

wp-all-import-automatic-setup-select-import-file

I used an existing CSV containing both simple and variable products, then selected WooCommerce and Products as the import type.

wp-all-import-automatic-setup-choose-what-to-import

Automatic Setup requested my data consent, analyzed and mapped 19 fields from the file, and queued 7 records for import:

wp-all-import-automatic-setup-import-ready-summary

Expanding Field Mappings shows exactly which column went where:

WordPress/WooCommerce FieldMapped To
Post Title{producttitle[1]}
Post Content{description[1]}
Product Typevariable
Product ID (Matching){sku[1]}
Parent Product ID{parentsku[1]}
Product SKU{sku[1]}
Regular Price{price[1]}
wp-all-import-automatic-setup-field-mappings-summary

The line that matters most for a variable product import is Parent Product ID mapped to {parentsku[1]}. That’s the column Automatic Setup identified as the link between each variation and its parent, which is the same relationship you’d otherwise have to configure by hand in the Variations tab.

Two buttons sit at the bottom of this screen: Manual Setup, which drops you into the Drag & Drop screen if you want to adjust anything yourself, and Run Import, which starts the job as mapped. I went straight to Run Import.

wp-all-import-automatic-setup-import-running-modal

When it finishes, the completion summary reports exactly what happened:

Import Complete
Created: 7 ยท Updated: 0 ยท Skipped: 0

wp-all-import-automatic-setup-successful-import-notification

Every variation in the file was created as expected, with no records skipped due to an unresolved mapping.

Manually Importing WooCommerce Variable Products with Field Mapping

Setting the Product Type to Variable Product

This is a simple task with two different scenarios. The first scenario involves an import file that contains only variable products. In this case, you can simply set the Product Type to “Variable product” in the WooCommerce Add-On section:

Importing Variable Products WooCommerce - Setting Product Type

As soon as you do this, the Variations tab will appear in the lower left portion of the screen.

The other scenario involves a file that contains multiple product types but has an incoming data element that identifies the product type for each product. In this case, you use the Set Product Type With XPath option. This opens up an edit field where you can drag the incoming data element that contains the product type for each product:

Importing Variable Products WooCommerce - Setting Product Type with XPath

Again, the Variations tab will appear on the lower left.

Mapping Incoming Data Elements to the Attributes Tab

Attributes are data elements that allow you to describe certain qualities of a product. In many cases, such as size or color, they combine to form variations like a large blue sweatshirt. In other cases, they are used for added description of the product, such as whether it is flammable or machine washable.

You import product attribute data in the Attributes tab of the WooCommerce Add-On section of WP All Import’s Drag & Drop interface:

Importing Variable Products WooCommerce - Attributes Tab

For each attribute that you want to import, you must do the following:

  1. Click the Add Attribute link, shown near the bottom of the above image. This creates a new attribute “row” in the tab, with each row consisting of two fields: Name and Values.
  2. Type the attribute’s name in the Name field.
  3. Drag and drop the incoming data that contains the attribute’s values into the Values fields.

That’s all there is to know for the basics of importing product attributes, and there is really only one complication: you need to know the number and general description of the attributes, as well as which incoming data elements contain their values.

However, if you expand the Advanced option for any given attribute row, you will see several additional options:

Importing Variable Products WooCommerce - Variations Tab

Here are what these options mean:

Variations

  • In Variations: Enabled by default and makes the attribute usable for variations.
  • Not in Variations: This does the opposite and prevents the attribute from being used in variations.
  • Set with XPath: Used to define this option dynamically. Accepts eitherย yesย orย no.

Taxonomy

  • Is Taxonomy: Enabled by default and defines whether the attribute is imported as a taxonomy (global attribute) or not (custom attribute).
  • Not Taxonomy: Select this to import the attribute as a custom attribute.
  • Set with XPath: Used to define this option dynamically. Accepts eitherย yesย orย no.

Visible

  • Is Visible: Enabled by default. This makes the attribute visible on the product page.
  • Not Visible: Select this to make the attribute not visible on the product page.
  • Set with XPath: Used to define this option dynamically. Accepts eitherย yesย orย no.

Auto-Create

  • Auto-Create Terms: Enabled by default and ensures that any newly found terms are automatically created during the import.
  • Do Not Create Terms: Select this if you don’t want to create new terms and only wish to import attributes to a product if the term already exists.
  • Set with XPath: Used to define this option dynamically. Accepts eitherย yesย orย no.

Finally, if you look toward the bottom of the preceding image, you will see a Link all variations option. Checking this causes WP All Import to automatically generate variations for every possible combination of attributes. If you do this, the Variations tab will disappear because there’s no longer any need for it.

As you can see, there is a bit to know about attributes and their relationship to variations.

Speaking of variations…

Mapping Incoming Data Elements to the Variations Tab

WooCommerce stores a variable product as one parent product with multiple child variations. The goal of the Variations tab is to specify how incoming child variations should be associated with the parent product.

This would be quite easy if everyone simply agreed on a universal way to store this data in an import file, but that’s not what happens. What happens is that you end up with multiple ways of storing the same data:

Example 1 โ€“ Linking Variations to Parent Based on Parent SKU

Importing Variable Products WooCommerce - Linking Variations by Parent SKU

In this example, the import file contains two parent products with two variations each (based on color).

The variations are associated with their parent products using the SKU and Parent SKU columns.

Example 2 โ€“ Product Variations Grouped by a Unique Identifier

Importing Variable Products WooCommerce - Linking Variations by Group ID

Here, there are four variations based on size but no parent products. However, the variations are grouped together with a common Group ID value.

Since WooCommerce requires parent products, WP All Import will automatically create the parent products for us and automatically associate them with the variations that have the same Group ID.

Example 3 โ€“ Variations Grouped by Title

Importing Variable Products WooCommerce - Linking Variations by Product Title

In this example, there are two products with three variations, each based on the weight of the steak or the quantity of the lamb.

The variations are grouped together with their parent by common values in the Product Title column. 

There are actually six common ways for an import file to define parent products, variations, and the relationship between them. This is what often confuses users when importing WooCommerce variable products. It’s also the area of an import plugin’s functionality that matters most because the plugin should help you resolve any confusion, not add to it.

WP All Import does a great job of this. It actually provides you options with the six most common ways of dealing with incoming product variation data, each accompanied by a very clear example:

Importing Variable Products WooCommerce - Variations Tab

In fact, all of the preceding samples were copied directly from WP All Import’s interface!

Finally, WP All Import lets you control other important variation options near the bottom of the Variations tab, including whether variations are enabled for a product, the default selection in the attributes dropdowns (i.e., the dropdowns customers use to select variations through the WooCommerce store), whether products without variations should be converted to simple products instead, and so.

Our Experience Importing Variable Products with WP All Import

I used WP All Import for the examples in this article because I wanted to show both the fast path and the detailed path with the same plugin, rather than switching tools halfway through.

The difference between the two was mostly about where I spent my attention. With Automatic Setup, I spent it verifying the Parent Product ID mapping before running the import, as everything else was already correct. WP All Import’s Automatic Setup maps a variable product’s parent-variation relationship automatically, without requiring the Variations tab to be configured by hand. With manual mapping, I spent my attention configuring the Attributes and Variations tabs myself, which took longer but let me see exactly how each variation would link back to its parent before I ran anything.

Neither method left me guessing, as I could see the mapping in both cases before committing.

If you want to try either approach yourself, WP All Import’s online sandbox lets you test both without touching a live site.

Wrapping Up

WP All Import handles the import of WooCommerce variable products in two ways: Automatic Setup, which detects the parent-variation relationship and maps it without manual configuration, and manual field mapping, which gives full control over the Attributes and Variations tabs. Which one to use depends on the file.

A clean export from another WooCommerce store is usually straightforward either way. However, a product list assembled from multiple suppliers is more likely to need the manual process, since supplier files rarely agree on how to structure attributes and variations.

If you want to go deeper, WooCommerce’s own documentation covers how variable products are structured on the WordPress side, and WP All Import’s documentation covers the import side in more detail than this article does.

Frequently Asked Questions

Can I import WooCommerce variable products from a CSV file?

Yes. WP All Import imports variable products from CSV, XML, or XLSX files, using either Automatic Setup or manual field mapping to handle the parent-variation relationship.

What columns do I need in my file to import variable products into WooCommerce?

  • A column identifying the product type (variable or simple)
  • A SKU column for each product and variation
  • A parent-identifying column, such as a parent SKU or group ID, linking variations to their parent
  • One column per attribute (size, color, etc.)
  • A price column for each variation

How do I import variable products into WooCommerce?

To import variable products into WooCommerce, you need to specify the product type, define the attributes each variation is based on, and link each variation back to its parent product. WP All Import handles this two ways: Automatic Setup analyzes the file and maps all three automatically, while manual field mapping lets you configure the Attributes and Variations tabs yourself. Which one to use depends on how predictable the structure of your import file is.

Can I bulk import variable products in WooCommerce?

Yes. WP All Import processes however many variation rows exist in a single file, without the 50-combination-per-run limit that applies to WooCommerce’s own “Create variations from all attributes” tool. A file with several thousand variations imports the same way as a file with a handful of variations, either through Automatic Setup or manual field mapping, depending on how much control the import requires.


Oxygen Builder
Updated on: September 8, 2026

Pixel-perfect design meets WordPress!

Oxygen is the best way to visually design WordPress websites.
If you can build it with WordPress, you can design it with Oxygen.
  • Lifetime Access
  • Oxygen Classic + New Oxygen
  • All Premium Add-Ons
  • 60-Day Money Back Guarantee
Start Designing

You'll build incredible websites with Oxygen

Get started with Oxygen today and unlock incredible value.

Get Oxygen

30-day money back gurantee

Try Oxygen risk-free. If youโ€™re not satisfied, get a full refund within 30 days.

Unlimited site license

Use Oxygen on as many personal or client projects as you want โ€” no limits.

Fast, world-class support

Our experienced team is eager to assist you with technical questions.

Use on client websites

Build and deliver professional-grade websites for your clients with no extra fees.