Connectors 10 min read Intermediate

Export WooCommerce Data to Excel: Orders, Products & Customers

WooCommerce exports are messier than Shopify. Learn how to pull clean orders, products, and customer data into Excel without wrestling with plugins, dealing with encoding issues, or losing custom fields.

Platforms: WooCommerce WordPress

Why WooCommerce Exports Are Harder Than Shopify

Shopify has polished, one-click CSV exports built in. WooCommerce doesn't.

The WooCommerce Reality:

  • Native exports are basic (missing custom fields, meta data)
  • Most exports require installing plugins
  • Plugin exports vary wildly in quality
  • Custom fields need manual configuration
  • Product variations export messily
  • Order meta data (shipping methods, custom checkout fields) often missing
  • UTF-8 encoding breaks international characters

But you can get clean, automated WooCommerce exports with the right approach.

Option 1: Built-in WooCommerce Export (Orders Only)

WooCommerce has a simple built-in exporter for orders - but it's limited.

What You Get:

  • Order number, date, status
  • Customer name, email
  • Product names, quantities
  • Order total, shipping, tax

What You DON'T Get:

  • Custom order meta fields
  • Detailed payment method info
  • Shipping method details
  • Product SKUs in line items
  • Custom checkout fields
  • Order notes

How to Use It:

  1. WooCommerce → Orders
  2. Click "Export" button at top
  3. Select date range
  4. Choose "All columns" or custom columns
  5. Click "Generate CSV"
  6. Import to Excel using Text Import Wizard (see our CSV import guide)

Good for: Quick one-time exports, basic order lists

Not good for: Detailed analysis, custom fields, automated reporting

Option 2: Export Plugins (Best for Manual Exports)

Several quality plugins make WooCommerce exports much better:

WooCommerce Customer / Order / Coupon Export (by SkyVerge)

What we like:

  • Exports orders, customers, coupons
  • Includes custom fields and order meta
  • Scheduled automated exports
  • Export to CSV, XML, or direct to Excel
  • Can filter by date range, status, products

What's missing:

  • Product exports require separate plugin
  • Free version is limited

Product Import Export for WooCommerce (by WebToffee)

What we like:

  • Exports products with variations
  • Includes product meta, custom fields, categories
  • Exports images (URLs)
  • Can filter by category, type, status

What's missing:

  • Order exports require different plugin
  • Variations export in multiple rows (needs cleanup)

All-In-One WP Migration (for full backups)

What we like:

  • Complete site export including all data
  • Database included
  • Good for disaster recovery

What's missing:

  • Not designed for analytics
  • Data is in raw database format, not Excel-friendly

Export WooCommerce Orders to Excel (Clean Method)

1

Install an Export Plugin

Go to WordPress admin → Plugins → Add New. Search 'WooCommerce Customer / Order Export'. Install and activate. Free version works for basic needs.

Install an Export Plugin
2

Configure What to Export

WooCommerce → Export → Orders. Select columns to include. Key ones: Order ID, Date, Status, Total, Payment Method, Shipping Method, Customer Email, Billing Info, Line Items with SKUs.

Configure What to Export
3

Set Date Range and Filters

Choose date range (Last 30 days, Last 90 days, Custom). Filter by order status (Completed, Processing, etc.). Filter by product if analyzing specific SKUs.

Set Date Range and Filters
4

Export to CSV (Not Excel)

Always export as CSV first, not Excel. Direct Excel exports often have encoding issues. CSV → Excel via Text Import Wizard gives you control.

Export to CSV (Not Excel)
5

Import CSV to Excel Using Text Import Wizard

In Excel: Data → From Text/CSV. Select your downloaded CSV. Choose 'UTF-8' encoding, delimited by comma, text qualifier double-quote. Preview and import.

Import CSV to Excel Using Text Import Wizard
6

Clean and Format the Data

Common issues: Date format (convert to Excel date), Money format (remove currency symbols), Multi-line item rows (may need unpivot), Custom fields in separate columns.

Clean and Format the Data

Handling WooCommerce Data Quirks

Issue 1: Product Variations Export as Multiple Rows

Problem:
Order #1001 has 2 line items (Red Shirt - Small, Blue Shirt - Large). Plugin exports 2 rows, both with Order #1001.

Solution:
Use Excel CONCATENATE or Power Query to merge line items by Order ID:

=TEXTJOIN(", ", TRUE, IF($A$2:$A$100=A2, $C$2:$C$100, ""))

Or use Power Query:

  1. Select data → Power Query
  2. Group by Order ID
  3. Aggregate line items as concatenated text

Issue 2: Custom Fields Don't Export

Problem:
You have custom checkout fields (Gift Message, Delivery Instructions) but they're not in the export.

Solution:
Most plugins have "Custom Fields" section. You need to manually add:

  1. Field name (exactly as stored in database, usually _gift_message)
  2. Display name (what you want in Excel: "Gift Message")

Check WooCommerce → Settings → Advanced → Custom Fields to find field names.

Issue 3: Order Meta is Ugly

Problem:
Shipping method exports as flat_rate:3 instead of "Standard Shipping - $10".

Solution:
Use VLOOKUP table to translate codes:

CodeDisplay Name
flat_rate:3Standard Shipping
local_pickup:1Local Pickup
free_shipping:2Free Shipping

Then: =VLOOKUP(A2, TranslationTable, 2, FALSE)

Issue 4: International Characters Break

Problem:
Customer name "José García" exports as "José García".

Solution:
This is UTF-8 encoding issue. When importing CSV to Excel:

  • File → Import → Text File
  • File Origin: "65001: Unicode (UTF-8)"
  • NOT the default "Windows (ANSI)"

Exporting Products with Variations

Product exports are trickier because variations create complex structures.

Simple Products (No Variations):

Export includes:

  • Product ID, Name, SKU
  • Price, Sale Price
  • Stock quantity
  • Categories, Tags
  • Short description, long description
  • Image URLs

Variable Products (With Variations):

Two export formats:

Format 1: Parent + Child Rows

Row 1: T-Shirt (Parent) - No price, no SKU
Row 2:   └─ T-Shirt - Small - Red (Variation) - SKU: TSHIRT-SM-RED, Price: $20
Row 3:   └─ T-Shirt - Medium - Red (Variation) - SKU: TSHIRT-MD-RED, Price: $22
Row 4:   └─ T-Shirt - Large - Blue (Variation) - SKU: TSHIRT-LG-BLU, Price: $24

Format 2: Flattened (One Row Per Variation)

Row 1: TSHIRT-SM-RED, T-Shirt, Small, Red, $20, 10
Row 2: TSHIRT-MD-RED, T-Shirt, Medium, Red, $22, 15
Row 3: TSHIRT-LG-BLU, T-Shirt, Large, Blue, $24, 8

For analysis, Format 2 is better. Most plugins let you choose.

Data Type Built-in Export Plugin Export API Export Best Method
Basic Orders ✓ Good ✓✓ Better ✓✓✓ Best Plugin for one-time, API for automated
Orders + Custom Fields ✗ No ✓✓ Good ✓✓✓ Best Plugin or API
Products (Simple) ✓ Basic ✓✓ Better ✓✓ Good Plugin
Products (Variations) ✗ No ✓✓ Good ✓✓ Good Plugin with flatten option
Customers ✗ No ✓✓ Good ✓✓ Good Plugin
Automated Scheduling ✗ No ✓ Some plugins ✓✓✓ Best API integration

Option 3: Automated API Exports (Best Long-Term)

If you export WooCommerce data regularly, manual plugin exports get tedious.

API Export Advantages:

  • Fully automated (no logging in, clicking buttons)
  • Scheduled (daily, weekly, monthly)
  • Direct to Excel format
  • Can combine multiple data sources (orders + products + analytics)
  • Handles custom fields automatically
  • No plugin maintenance

How It Works:

  1. Connect WooCommerce via REST API (view-only - cannot modify your store)
  2. Set export schedule (e.g., every Monday at 9 AM)
  3. Receive formatted Excel file via email or cloud storage
  4. Open and analyze - no import/cleanup needed

Setting Up API Access:

  1. WooCommerce → Settings → Advanced → REST API
  2. Click "Add Key"
  3. Description: "Spreadsheet Broccoli" (or your tool)
  4. User: Select admin user
  5. Permissions: Read (never Write unless explicitly needed)
  6. Generate API Key
  7. Copy Consumer Key and Consumer Secret - share with integration tool

Pro Tip: Incremental Exports

Instead of exporting all orders every time, use incremental exports: only export new/modified orders since last export. Saves time and file size. Most API integrations handle this automatically.

Common Mistakes to Avoid

Mistake: Opening CSV exports by double-clicking (breaks encoding)
Solution: Always import CSVs using Excel's Text Import Wizard with UTF-8 encoding. See our CSV import guide.
Mistake: Not configuring custom fields in export settings
Solution: Default exports won't include custom fields. You must manually add them in the plugin settings with exact field names.
Mistake: Exporting variations as nested rows and trying to analyze
Solution: Use 'flatten variations' option if available, or use Power Query to unpivot the data.
Mistake: Exporting to Excel format instead of CSV
Solution: CSV gives you more control during import. Excel-formatted exports often have encoding/formatting issues.
Mistake: Not testing exports with small date ranges first
Solution: Test with last 7 days before exporting all-time data. Catch issues early.

Verification Checklist

  • You can export orders with all needed fields (custom fields, meta data)
  • International characters display correctly (not garbled)
  • Product variations export in a usable format
  • You know how to automate exports (plugin scheduling or API)
  • You have a template or process document for repeatable exports

Frequently Asked Questions

UTF-8 encoding issue. When importing the CSV to Excel, choose 'File Origin: Unicode (UTF-8)' in the Text Import Wizard.
Yes, but you need WooCommerce Subscriptions plugin active and an export plugin that supports subscriptions (like WooCommerce Customer Export).
LTV isn't a single field - you calculate it. Export all orders, then use pivot table or SUMIF to sum order totals by customer email.
WooCommerce REST API is specifically for store data (orders, products). WordPress API is for site content (posts, pages). You want WooCommerce API.
Yes, but not in built-in export. You need a plugin like WooCommerce Customer Export with 'Include Order Notes' enabled.