WooCommerce customers to email list: orders folded per customer, spend added, staff left out
In short: Reads the WooCommerce Customers or Orders download (or an order-export plugin file, or a WordPress users export) and gives one row per billing address with orders, paid orders, total spent and last order. Failed, cancelled and refunded orders don't count as paid; staff accounts can be set aside. Limit: Marketing consent can only be read when an opt-in plugin adds a column to the export.
To get an email list from WooCommerce, go to WooCommerce > Customers (or Analytics > Orders), click Download and upload the CSV here. Orders fold into one row per billing email with paid orders and spend, only completed and processing orders count as paid, and a WordPress users export works too, with staff accounts set aside.
Price: this tool is free. Checking a whole email list is from $9/mo, and the first 100 checks are free with Google, no card. See pricing
Sample result
7 WooCommerce orders became 5 customers, 3 of them paying.
- Customers
- 5 customers
- Order rows
- 7
- Paying
- 3
What this means for you
Only completed and processing orders count toward spend; staff accounts are set aside.
- One row per billing email
- Failed and refunded orders not in spend
- Line items counted once per order
- Staff roles set aside
- WooCommerce
- Orders
- CSV
By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us
Also in: Português (Brasil) · Español
How do I turn a WooCommerce export into an email list?
- In WordPress, go to WooCommerce > Customers and click Download, or Analytics > Orders > Download for an orders file. An order-export plugin's CSV works too, as does Users > Export from a users-export plugin.
- Upload the CSV or Excel file here, or paste it.
- Choose: keep only customers with a completed or processing order, set aside staff accounts, keep only marketing opt-ins when the export has that column.
- Download the customer list and the set-aside file with the reason per address.
Example
- You enter
- A WooCommerce orders export with 7 orders: 2 completed orders for
ana.silva@example.comin different case, one processing, one failed, one refunded and one pending order with no email. - You get
- 5 customers, 3 of them paying. Ana is one row with 2 paid orders and 100.00 spent; the failed and refunded orders are counted but add nothing to spend; 1 order counted as having no address.
- Limits
- Runs in your browser with no row cap; an uploaded file can be up to 25 MB.
How do I export customer emails from WooCommerce?
Go to WooCommerce > Customers, set the filters and click Download; WooCommerce emails you the CSV if the list is large. It has Name, Email, Orders, Total spend and Country / Region. For one row per order, use Analytics > Orders > Download, which includes the order status.
An orders file repeats the customer on every order (and on every line item with some plugins). The tool counts each order number once, adds the spend of completed and processing orders, and keeps the latest order date.
Which WooCommerce orders count as paying customers?
Completed and processing. Pending payment, On hold, Failed, Cancelled and Refunded orders are counted in orders but not in paid_orders or total_spent. Tick Keep only customers with a completed or processing order to set aside people whose checkout never went through; their address is more often mistyped.
Can I email all my WooCommerce customers?
About their orders, yes. For marketing, WooCommerce doesn't record consent by default, so it depends on how you asked at checkout. If an opt-in plugin (MailPoet, a checkout checkbox) adds a column to the export, the tool finds it and can keep only the yes answers. The FTC's CAN-SPAM guide covers the US and the ICO's guidance the UK.
Is this faster than a pivot table on the orders export?
| This tool | Excel pivot table | |
|---|---|---|
| One row per customer | Orders counted once | Pivot on Billing Email |
| Paid orders only in spend | Completed and processing | Filter status first |
| Line-item rows | Order number counted once | Count distinct needs the data model |
| Staff accounts | Set aside by role | Filter roles by hand |
Who uses this tool, and for what?
- Store owners
- Get one row per buyer with spend for a thank-you or win-back email.
- WordPress agencies
- Move a client's customers to Klaviyo or Mailchimp without staff accounts in the list.
- Subscription boxes
- Separate paying customers from checkouts that failed before a relaunch email.
- Marketers
- Segment by country and spend from one clean CSV.
What can’t this tool tell you?
- Marketing consent can only be read when an opt-in plugin adds a column to the export.
- Order totals are added as exported; mixed currencies are not converted.
- It can't tell which addresses still have a working inbox.
- Staff are found by the roles column, so a users export without roles can't tell them apart.
Common questions
- Does it work with a WordPress users export?
- Yes. user_email and roles are read; administrators, shop managers, editors and authors are set aside by default so staff don't get the campaign.
- What about guest checkouts?
- Guest orders appear in the orders download with their billing email and are included. The Customers download lists guests too.
- Does it work with order-export plugins?
- Yes. Columns like Billing Email, Order Number, Order Status and Order Total are found by name, with or without the billing prefix.
- How is total spent worked out?
- From the orders file, the order totals of completed and processing orders are added. From the Customers download, its Total spend column is used.
- Is my customer list uploaded?
- No. It is read in your browser. Nothing is sent unless you choose to check the addresses afterwards.
Sources
A tidy list can still be full of dead addresses.
Extracting, deduplicating and syntax checks all work on the text of an address. None of them can tell whether the mailbox exists. Only the server that hosts it can answer that, through an SMTP check, and that is what the paid product does.
- Upload the cleaned file as it is: CSVs up to 100,000 rows
- A real SMTP mailbox check on every row, with catch-all detection
- Small list? Starter at $9/mo covers 2,500 emails a month, cancel anytime
Plans from $9 a month, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.