Working with WooCommerce orders that include product variations?
Product variations add complexity to order data, with each line item having its own attributes, pricing, and stock levels. You'll often need to move this data for various reasons, such as fulfilling orders accurately, reporting sales by variation, migrating between stores, or syncing with shipping and ERP systems.
In this guide, we'll walk you through exporting and importing WooCommerce orders for a store that contains product variations.
📑 Table of Contents
- What You Can Do with WooCommerce Product Variation Order Export and Import
- Part 1: Exporting WooCommerce Orders with Product Variations
- Part 2: Importing WooCommerce Orders with Product Variations
- WooCommerce Order Export and Import for Variable Products
- Advanced Order Containing Product Variation Workflows
What You Can Do with WooCommerce Product Variation Order Export and Import
WooCommerce orders with product variations include a lot more data than standard orders. This data is useful for everything from accurate fulfillment to detailed sales reporting by variation.
You can use the exported WooCommerce orders with product variations data to:
- Share order data with fulfillment teams who need variation details
- Generate sales reports by variation (size, color, etc.)
- Send order data to shipping platforms with variation info
- Sync orders to ERP systems for inventory tracking
- Migrate orders with variations to a new WooCommerce store
If you have WooCommerce orders with product variations, you can use the import file to:
- Migrate orders with variations from another WooCommerce store
- Bulk update order line items with variations
- Import orders from another platform with variation data
With these use cases in mind, let's start with the basic order export and import processes, both of which take just a few minutes. After that, we'll cover some advanced cases to give you a better sense of what's possible. We'll be using WP All Import and WP All Export throughout.
Part 1: Exporting WooCommerce Orders with Product Variations
How to Export WooCommerce Orders with Product Variations
Exporting orders with product variations works much like exporting any other WooCommerce order data, but with a few additional considerations for capturing the variation details. Here's how it works.
If you want to follow along, you can use our convenient sandbox feature and select WooCommerce Store as the demo type.
1. Start a new WooCommerce order export
From the WordPress admin, head to All Export and click New Export. Choose Specific Post Type, then select WooCommerce Orders from the dropdown. You'll see a summary showing the total number of orders available to export.

2. Add filters to select orders with variations (optional)
Need to narrow down your results to just orders with product variations? Expand the Add Filtering Options panel. For orders with product variations, you can filter by Product Type set to variations.

3. Build your WooCommerce order export file
Click Customize Export File to open the Drag & Drop screen. On the left is your column selection area, and on the right is the Available Data panel with all order fields organized by category. To include variation data, expand the Items category. You'll find fields for product ID, SKU, product name, variation details, and more. Drag the variation fields along with other fields you need into your column selection area.

Within a single order, each variable product is listed on a separate row, with all rows sharing the same order ID.
4. Choose your order export file type
On the same page, expand the Export Type panel near the bottom of the screen. You have two options:
- Spreadsheet: For CSV or Excel. CSV is the default, and you can also pick Excel File (XLS) or Excel File (XLSX) for true Excel output.
- Feed: For XML. Pick Simple XML Feed for standard XML, or Custom XML Feed for full structural control.

Choose Spreadsheet or Feed, then pick your specific format from the dropdown.
5. Run the WooCommerce order export with variations
From the Drag & Drop screen, click Continue to reach the Export Settings screen. Here you can:
- Schedule the export to run automatically through Automatic Scheduling or manual cron jobs
- Adjust Advanced Options like batch size, real-time exports, or splitting large exports into multiple files
- Give your export a custom name

When you're ready, click the green Confirm & Run Export button.
6. Download your orders with variations export file
Once the export completes, head to the Confirm & Run screen to download your file. Click CSV (or Excel or XML, depending on your earlier choice).

That's the basic process. Most stores have their variation order data ready in under five minutes.
What Product Variation Data Can You Export
WooCommerce variation data is scattered across multiple categories in the Available Data panel. The fields available include:
- Product ID: The unique identifier for the parent product
- Variation ID: The unique identifier for the specific variation
- Product name: The name of the product
- SKU: The stock keeping unit for the variation
- Variation details: The attribute values that define the variation (e.g., Color: Red, Size: Large)
- attributes: The attribute values that define the variation (e.g., Color: Red, Size: Large)
- Regular Price: The regular price for the specific variation
- Sale price: The sale price for the specific variation, if applicable
- Stock: The stock level for the specific variation
- Custom variation fields: Data added by WooCommerce extensions or third-party plugins, including ACF, Meta Box, and JetEngine
Drag any of these from the Available Data panel into your column selection area. You can include just a few fields, dozens, or every order-related field at once with the Add All button.
Part 2: Importing WooCommerce Orders with Product Variations
How to Import WooCommerce Orders with Product Variations
Getting orders with product variations into WooCommerce works much like importing standard orders, as long as the products and their variations already exist on the destination site. Here's the basic process.
1. Start a new WooCommerce order import
From your WordPress admin, go to All Import and click New Import. You'll see options for how you want to provide your data. The options include:
- Upload a file: Choose a CSV, Excel, or XML file from your computer
- Use existing file: Reuse a file from a previous import
- Download from URL: Fetch a file from a remote URL on a schedule

For this walkthrough, we'll upload a file from your computer.
2. Upload the import file and choose the target as WooCommerce orders
Choose your order file from your computer and set WooCommerce Orders as the post type. The plugin will detect the file type and configure the interface for you.

3. Add filters to import specific orders (optional)
If you only want to import orders that include variable products, you can add filters before continuing. Use the Element, Rule, and Value dropdowns to define which records to import. We'll skip filtering for this walkthrough as our import file only includes variable products.
4. Map your data to order fields with variations
Click Set Up Import to open the Drag & Drop screen. Your order fields appear on the left, organized by category, and your file's columns appear on the right. To include orders with variation data, expand the Order Items section. Drag a column from the right and drop it onto the matching order field on the left, like Name, Quantity, or Existing Product Identifier.

Since a single order can contain multiple products and product variations, you may need to create an expression to handle the order fields correctly. This ensures each line item's variation data is mapped properly, even when an order includes several products.

Click the Preview button at the bottom to see how the mapped data will look once imported. When everything looks right, click Continue to Import Settings.
5. Run the WooCommerce order import
After mapping, click Continue to move to the Import Settings screen. Here you can:
- Let the plugin auto-detect a unique identifier for your orders
- Choose what to do when the import runs again (create new orders, update existing ones, etc.)
- Schedule the import to run automatically
- Adjust Advanced Options

Click Confirm & Run Import when you're ready. Once the import finishes, check your orders in the WooCommerce dashboard under WooCommerce > Orders.

That's the basic process. Most imports of a few hundred orders complete in a few minutes.
What Product Variation Data Can You Import
The variation fields available for import are the same as those available for export. The import process is simply the reverse of the export: drag a column from your file and drop it onto the matching variation field.
The key fields to map for orders with product variations are:
- Product ID: Links the order to the parent product
- SKU: Links the order to the specific variation
- Variation ID: Unique identifier for the variation
- Variation details: Captures the specific options (e.g., Color: Red, Size: Large)
- Per-variation pricing: Records the price for that specific variation
- Per-variation stock: Records the stock level for that specific variation
Click the Preview button to verify the mapping before running the import.
WooCommerce Order Export and Import for Variable Products
Standard order exports and imports capture the basics, but product variations add layers of complexity that require more advanced handling. Here's how to handle the most common advanced cases:
Handle Complex Variation Attributes
Variable products can have multiple attributes and dozens or even hundreds of variations, each one a unique combination of attribute values. When you export or import orders with these variations, every attribute value needs to come along for the ride.
WP All Export captures every attribute value for each line item in the order. The variation attributes are exported as part of the Items data, with each attribute name and value clearly identified in the export columns. For example, a Red-Large t-shirt order shows "Color: red" and "Size: large" as separate fields alongside the product and order data.

On the import side, these attributes are linked to the correct variation. The plugin maps each attribute field using an XPath expression on the destination site, so the order reflects exactly what was purchased. If you're migrating between WooCommerce stores, WP All Export and WP All Import make it seamless with the bundle file.
Preserve Variation-Specific Pricing and Stock
Each variation can have its own price and stock level. A Blue-Large t-shirt might be priced differently from a Red-Small one, and stock levels vary by combination. Capturing this per-variation data is critical for financial records.
WP All Export handles per-variation pricing and stock as first-class fields in the export. The Items section includes per-variation regular price, sale price, and stock level, all of which travel with the order data. For example, if a Blue-Large t-shirt is on sale for $9.99 and has 50 units in stock, those values are captured alongside the order line item.
On import, these values are written back to the variation using an XPath expression, so the destination store reflects the same pricing and stock as the source. The plugin distinguishes between regular price and sale price, so a sale on the source store carries over to the destination store correctly.

This matters most when you're migrating between stores, syncing with accounting software, or generating financial reports. Without per-variation pricing in the export, you'd lose the ability to track which specific combinations sold at which prices.
Advanced Order Containing Product Variation Workflows
Beyond the common data handling scenarios, there are real-world workflows that come up frequently for stores with variable products. Here's how to handle the most common advanced workflows:
Migrate Orders with Variations Between WooCommerce Stores
Moving orders with product variations from one store to another requires careful sequencing: products first, then orders. Both need to arrive intact for the migration to work. This is where WP All Export and WP All Import work together to make the process seamless.
The migration process happens in two phases. First, export the products (with their variations) from the source store using a Bundle export. This creates a zip file that includes the product data, the variation data, and the settings file for the import. Second, import the products on the destination store, then export the orders from the source and import them on the destination. The order import uses SKU matching to link each order line item to the correct variation on the destination store.

The Bundle export preserves the variation data, the product-variation relationships, and the order-variation links. On the destination store, the orders arrive with the correct variation attached, so the customer-facing order details show exactly what was purchased.
Sync Orders with Variations to External Systems
Shipping platforms, ERPs, and fulfillment centers all need order data with variation details to do their job. The right shirt needs to go to the right customer, in the right size and color.
WP All Export supports custom XML feeds and Zapier integration (1000+ apps), so you can push order data with variation details to almost any external system. The export layout is fully customizable, so you can match the exact format your destination system requires.

For shipping platforms like ShipStation or EasyPost, the export includes the order ID, shipping address, line items with variation details, and weights. For ERPs like Odoo or NetSuite, the export can include the financial breakdown by variation. The data flows on a schedule (daily, weekly, or monthly) or in real time, depending on your needs.
Real-Time Order Exports with Variation Data
When every order needs immediate action, waiting for a scheduled export isn't fast enough. Real-time order exports with variation data push new orders to your destination the moment they're placed.
Real-time exports fire automatically each time a new order reaches a specific status (e.g., completed or processing), with the full variation data included.
This is useful for just-in-time inventory updates (the stock for the sold variation is immediately reflected), real-time fulfillment triggers (the shipping platform receives the order the moment it's ready for processing), and live dashboards (your team sees new orders as they come in). The variation details are part of the export, so the downstream system knows exactly which product was sold, not just a generic order line.
To set up a real-time export, enable the real-time option in the export settings, configure your trigger (e.g., order status changed to "processing"), and connect your destination via Zapier or a custom webhook. The export will then fire automatically for each new order, with no manual intervention required.

Final Thoughts - Exporting and Importing WooCommerce Orders With Variations
Product variations turn a simple order into a multi-line dataset, with each line item carrying its own attributes, pricing, and stock. Both WP All Export and WP All Import handle this complexity behind the scenes, so you can move variation-heavy orders without manually splitting them or rewriting SKUs.
The important thing here is that products must exist on the destination store before orders can be linked to them. With variations, the matching is precise: SKU to SKU, variation to variation. This is different from standard order imports, where the product lookup is often simpler.
If you're working with hundreds or thousands of variations across many products, the same workflow still applies. The export captures everything in one pass, the import matches each line item to the correct variation, and your orders arrive intact.
Frequently Asked Questions - Exporting and Importing WooCommerce Orders With Variations
How do I handle orders with multiple variations of the same product?
When a single order includes multiple variations of the same product, each variation appears as its own line item in the export. The export includes the product ID, variation ID, SKU, quantity, and price for each line item. On import, each line item is matched to the correct variation using the SKU. This preserves the full breakdown of what was ordered.
How do I handle variations with downloadable files or virtual products?
WP All Export and WP All Import handle downloadable files and virtual product variations just like standard variations. The file URLs and download limits are captured in the export and restored on import. For virtual products, the shipping fields are simply empty in the export, which is correct behavior. No special configuration is needed.
Can I export orders that include both variable and simple products together?
Orders can contain both variable products and simple products in the same line item list. The export captures each line item with its type, whether variable or simple. On import, each line item is matched to the correct product using SKU, regardless of whether it's a variable or simple product.

