Overview
↑ Back to top- Export customers, orders, or coupons, in CSV or XML format, individually or in bulk.
- Create your own custom formats to determine which fields are included and where they’re positioned.
- Automatically export and send your file to a remote server via FTP, HTTP POST, or email, such as to your fulfillment service.
- Exports run asynchronously in the background, meaning you can export thousands of records while you complete other tasks – or take a well-earned break!
Requirements
↑ Back to top- PHP 7.4+ (you can view this under WooCommerce > Status)
- WooCommerce 5.6+
- Your site must support background processing to use automated exports or process exports in the background of your site. Click here to learn more about this requirement.
Installation
↑ Back to top- Ensure your store meets the plugin requirements.
- Download the extension from your WooCommerce dashboard.
- Go to Plugins > Add New > Upload and select the ZIP file you just downloaded.
- Click Install Now and then Activate.
- That’s it! You’re all set. Keep reading this documentation to learn more about exporting customers, orders, and coupons from your site!
Upgrading from another plugin
↑ Back to top- The Customer / Order / Coupon Export plugin wil be downloaded from your WooCommerce.com account
- The plugin will be installed and activated on your site
- Your previous exports, custom formats, and automated export (if applicable) will be migrated from the XML Export plugin to this plugin
Upgrade FAQs
↑ Back to top- Download the Customer / Order / Coupon Export plugin from your WooCommerce.com account (you will already have a new subscription for it).
- Install this plugin under Plugins > Add New > Upload.
- Activate this plugin.
Q: What will happen to my XML Export plugin subscription? A: Your WooCommerce.com account was automatically gifted a new subscription for this plugin. Here’s how we handled the change:
- You have been gifted a subscription for this plugin that ends on the same date as your XML Export plugin subscription.
- If your XML Export subscription was set to auto-renew, we’ve turned it off, and enabled auto-renew on the new plugin subscription. If your subscription did not auto-renew, we’ve left it disabled.
- Your XML Export plugin subscription is still in your account for now, but it will end on its original date, and cannot be renewed again.
Q: What if the migration doesn’t go smoothly? A: The worst-case scenario is that we’re not able to migrate the plugin’s settings, and you would need to update them manually. This is a pretty foolproof process, though, that we have used for other plugin retirement migrations. Our support team is also happy to help out with any questions or migration concerns!
Export data manually
↑ Back to topNote: If your site does not support background processing, your site is incapable of processing the export in the background. That means you’ll need to leave the export modal open while the export processes. Click here to read more about background processing and how to resolve this issue.
Exporting data in bulk
↑ Back to top- Go to WooCommerce > Export.
- On the Manual Export tab, update the following settings:
- Output type: Choose to export your file in CSV or XML format.
- Export type: Choose whether to export orders, customers, or coupons.
- Format: Select a predefined or custom format.
- Filename: Enter a name for the file generated by this export.
- Mark as exported: Enable to ensure the exported data is excluded from future exports. Click here to learn more about this setting.
- Batch processing: Only enable if your site does not support background processing.
- Update the Export Options section to target particular orders (and include order notes), customers, or coupons. The available options will change based on your selected Output type.
- Click Export.
If you have WooCommerce Subscriptions activated on your site and you’re exporting orders, you can also choose to export subscriptions orders only.
You can download the export file as explained above.
Exporting data from the Orders list
↑ Back to top- Go to WooCommerce > Orders.
- Select one or more orders to export. You can set the Exported filter to show orders based on their export status.
- From the Bulk Actions menu, choose one of the following actions:
- Download to CSV
- Download to XML
- Export and Send: Export the selected orders and send them via FTP, HTTP POST, or email.
- Click Apply.
- If you selected an immediate download (e.g. Download to CSV or Download to XML), you can retrieve the download file as explained above.
- If you chose Export and Send, you’ll be prompted to select one of your automated order exports so the same transfer method can be used to send this export. Only automated order exports with FTP, HTTP POST, or email transfer methods can be selected for this type of export.
Exporting data from the Users list
↑ Back to top- Go to Users and select one or more customers to export.
- From the Bulk Actions menu, choose one of the following actions:
- Download to CSV
- Download to XML
- Export and Send: Export the selected customers and send them via FTP, HTTP POST, or email.
- Click Apply.
- If you selected an immediate download (e.g. Download to CSV or Download to XML), you can retrieve the download file as explained above.
- If you chose Export and Send, you’ll be prompted to select one of your automated order exports so the same transfer method can be used to send this export. Only automated customer exports with FTP, HTTP POST, or email transfer methods can be selected for this type of export.
Export data automatically
↑ Back to top- Orders placed / customers created before activating this plugin will not be automatically exported. They can, however, be marked as exported if you’d like.
- Only items marked as not exported will be included in automated exports. Click here to learn more.
- Exports are scheduled in your WordPress site’s timezone. You can find your timezone settings under Settings > General.
Create an automated export
↑ Back to top- Go to WooCommerce > Export > Automated Exports and click Add New.
- Update the following settings for the automated export:
- Enabled: Turn the automated export on or off.
- Export name: Enter an internal name for the export.
- Output type: Choose to export your file in CSV or XML format.
- Export type: Choose whether to export orders, customers, or coupons.
- Filename: Enter a name for the files generated for the export.
- Format: Select a predefined or custom format.
- Update the Trigger automated export setting to determine when the export will run. Click here to read more about scheduling.
- You can run order exports as orders are paid or on set intervals.
- You can only run customer exports on set intervals.
- Update the Method setting to determine how the export will be sent / transferred. Click here to read more about transfer methods.
- If you’re exporting orders, you can update the Export Options section to target particular orders and include order notes.
- Click Save.
Export schedules
↑ Back to top- Setup a real system cron on your server that ensures WP-Cron is triggered every minute. Click here to learn about setting this up. Your hosting provider should be able to help with this workaround, which would be ideal since it’s guaranteed to solve the issue with random times.
- Use a service (e.g. Pingdom or UptimeRobot) to ping your site every few minutes. This will ensure WP-Cron fires regularly.
Export transfers
↑ Back to topTransfer methods
There are four methods you can use to transfer automated exports:Note: When you choose to Export and Send data from the Orders or Users pages, you’ll be prompted to select an automated export. The plugin will then use that export’s transfer method settings to send the exported data.
The FTP, HTTP Post, and Email methods include a test feature that you can use to confirm that everything is setup properly before activating the automated export.
Locally
Exports transferred locally are available for 14 days in the Export List. There’s no special setup required for this transfer method.FTP
To transfer via FTP, you’ll need to update the following settings:- Server address: Enter an IP address or hostname for the FTP server.
- Username
- Password
- Port: Enter “21” for regular FTP, “22” for SFTP, or “990” for FTP with Implicit SSL.
- Initial path: Enter the initial path for the FTP server without a leading slash and with a trailing slash. If you’re connecting via SFTP, the initial path should be the full path of the folder if your username doesn’t default to the
HOME
directory. - Security: Choose your FTP server’s security.
- Passive mode: Enable to turn on passive mode for FTP connections. This should be disabled unless you are having issues connecting, especially if you’re seeing the
PORT command successful
message followed by a timeout in the error log (WooCommerce > Status > Logs).
Don’t know your FTP settings or credentials? Get in touch with your FTP provider to confirm any details you aren’t sure about.
HTTP POST
To transfer via HTTP POST, you’ll need to enter the HTTP POST URL where the export file should be sent. This is a great option for sending files to Zapier.- Recipient(s): Enter one or more (comma-separated) emails that should receive the export. If left blank, the export will send to the site admin’s email address, which is shown in the field’s tooltip and can be edited by going to Settings > General.
- Email subject: Set a subject line for the export email to help recipients identify the export file.
Transfer monitoring
When you configure automated exports, the plugin will track the transfer status of each export under the Export List. If a transfer fails, any site user who can manage WooCommerce (typically admins and shop managers) will be notified via admin notice. If several failures occur consecutively, an admin notice will recommend checking out the logs and export settings to ensure the automated export is setup properly.Marking data as exported
↑ Back to topWhat happens when something is exported?
↑ Back to topHow can I change whether something is marked as exported?
↑ Back to top- Orders or Users lists. Use the Mark as Exported or Mark as Not Exported bulk actions to change the export status for the selected objects. This will change the export status for all exports.
- Order detail or User detail pages. Select a specific order or user to toggle the export status at a global level (i.e. impacts all exports) or for one or more automated exports. This lets you determine whether an order or customer should be included in particular future automated exports.
Note: Changing the export status to “not exported” is not a permanent change. This status will revert if the order or customer is included in a future export, as defined here.
Export formats
↑ Back to topNote: While we do our best to not change column ordering in our default formats, we strongly recommend not relying on column ordering, since any changes we must make will break integrations that rely on a specific order. Instead, we recommend using the column names / IDs, which are guaranteed to never change.
Predefined formats
↑ Back to topCustomer exports
Order exports
Coupon exports
Note: You can download our sample CSV files from Google Sheets by clicking File > Download as > CSV or make a copy to your own Google Sheets to modify by clicking File > Make a Copy.
Create custom formats
↑ Back to topCustom CSV format
Follow the steps below to create a custom CSV export format:- Go to WooCommerce > Exports > Custom Formats.
- Select the export type you want to create – Orders, Customers, or Coupons.
- Click Add new CSV format.
- Select an existing format to use as a starting point for your custom format and click Load, or click X to start from scratch.
- Update the Format Options:
- Name: Enter an internal name for your export format.
- CSV delimiter: Select a delimiter to separate columns in your file.
- Include all meta: Choose whether to include all meta in the export. Click here to learn more about adding meta to exports.
- If you are creating an orders export format, you can also update the following extra options:
- A row represents: Choose whether a row should represent a single order or a single line item (e.g. an order with multiple line items will span multiple rows).
- Item columns should use: Choose whether items columns (e.g. line items) should be pipe-delimited or JSON format.
- JSON example: typically used in the predefined CSV Import format for orders –
[{"product_id":99,"product_name":"Woo Album","quantity":1,"total":19.99}]
- Pipe-delimited example: typically used in the predefined Default CSV format for orders –
product_id:99|sku:woo-album|name:Woo Album|quantity:1|total:19.99
- Update the Column Mapping to determine which fields will appear on your export.
- When adding columns, the data source determines what data will appear in the export. You can select an option from the list, add a custom meta key, or add a static value.
- Click Save.
Custom XML format
Follow the steps below to create a custom XML export format:- Go to WooCommerce > Exports > Custom Formats.
- Select the export type you want to create – Orders, Customers, or Coupons.
- Click Add new XML format.
- Select an existing format to use as a starting point for your custom format and click Load, or click X to start from scratch.
- Update the Format Options:
- Name: Enter an internal name for your export format.
- Indent output: Enable to pretty print the XML output with indents, which is helpful if a human is reading the file but unnecessary otherwise.
- Include all meta: Choose whether to include all meta in the export. Click here to learn more about adding meta to exports.
- Update the Column Mapping to determine which fields will appear on your export.
- When adding columns, the data source determines what data will appear in the export. You can select an option from the list, add a custom meta key, or add a static value.
- Click Save.
Adding custom meta
You can add columns for order, coupon, or user meta to custom formats. To add custom meta, select “Meta field…” from the Data source drop-down menu and enter the Meta key. You must know the correct meta key for the data when adding a column for meta. If you’re not sure, running an export with the Include all meta setting enabled will include all meta keys, so you can use that to find the meta key you want to include in your custom format going forward.Note: While this plugin can export order metadata, it cannot export metadata for line items. Line item metadata can only be added as a single column when the A row represents setting is configured to “A single line item” and the item meta key is added to the column list.
Adding static values
You can add columns for static values to custom formats. You can use this feature to add blank columns or columns with a set value for all rows (e.g. your store’s name). To add a static value, select “Static value…” from the Data source drop-down menu and enter the Value.Compatible plugins
↑ Back to topNote: Just because a plugin is missing from this list doesn’t mean it’s incompatible! You can also consult our developer documentation for compatibility with other extensions.
Extension | CSV Fields | XML Fields | Notes |
---|---|---|---|
Admin Custom Order Fields | admin_custom_order_field_[column name/ID] (value / option for custom field) | CustomFields – ID – Name – Value | |
AvaTax | vat_id (customer VAT ID) tax_exemption (customer tax exemption status) | VATid(customer VAT ID) TaxExemption(customer tax exemption code) | |
Checkout Add-ons | checkout_add_on_[add-on name/ID] (add-on value) checkout_add_on_total_[add-on name/ID] (add-on cost) | CheckoutAddOns – ID – Name – Value – Cost | |
Checkout Field Editor | field_name | CheckoutFields – FieldName | Column name generated from field name |
Cost of Goods | order_cost_total total_cost item_cost | OrderCostTotal LineCostTotal ItemCost | |
Customer / Order / Coupon CSV Import Suite | N/A | N/A | Use CSV Import formats |
Sequential Order Numbers Pro | order_number order_number_formatted | OrderNumber OrderNumberFormatted | Uses SONP order number |
Shipment Tracking | tracking_provider custom_tracking_provider custom_tracking_link tracking_number date_shipped tracking_ID formatted_tracking_provider formatted_tracking_link | tracking_provider custom_tracking_provider custom_tracking_link tracking_number date_shipped tracking_ID formatted_tracking_provider formatted_tracking_link | When this plugin is activated, these fields will be automatically added within a shipment_tracking field (CSV) or ShipmentTracking tag XML |
Subscriptions | N/A | N/A | Can export subscription or renewal orders on the Export tab. This plugin does not export subscriptions data that you can import elsewhere! |
Frequently asked questions
↑ Back to toprefunded_total
: The amount refunded in the orderItem_refunded
: The total refunded for a particular item in the order
Q: Can I export a customer’s VAT number in an order export? A: If you’re using WooCommerce Taxamo or EU Vat Number plugins, the VAT number associated with the customer who placed the order will be included in your order exports in a
vat_number
column.
Q: There are users missing from my customer export. Where are they? A: Users must place at least one order before they will be considered “customers” and included in this export.
Q: Can I duplicate columns in my custom export format? A: No, we automatically remove all duplicate sources because columns are used as keys for the column headers.
Q: Can I remove the Export Status column from the Orders or Users pages? A: Sure thing! You can hide this column (and many others!) by going to the Screen Options pages at the top of these screens. Q: Can I export serialized data? A: Yes! You can export serialized data in it’s serialized form. If you need to add custom meta, you can create a custom format and use the Include all meta option.
Background processing
↑ Back to topQ: My site doesn’t support background processing – do I need this to use the plugin? A: Strictly speaking, no – you can still run exports without background processing enabled for your site. However, background processing is required to run automated exports. Additionally, without background processing, you can’t leave the export modal while running a manual export. So while it’s not required, we highly recommend it for the best experience with this plugin! More importantly, many current and upcoming features in WooCommerce need loopback connections to function. For example, the database updater (already in use) and future plans for backgrounded email sending, both of which use the same type of background processing (and require loopback connections). It’s essential that a host for an eCommerce site support this.
Excel display issues
↑ Back to topQ: Why are the foreign / special characters not displaying correctly in Excel? A: We’ll need to force Excel to use UTF-8 encoding to render these characters properly by adding this snippet to your site – please be sure you know how to safely add custom code to your site before adding this snippet:
add_filter( 'wc_customer_order_csv_export_enable_bom', '__return_true' );
Note: Excel for Mac doesn’t support UTF-8 characters, so your exports may not display accented or special characters properly. We recommend using a different application, such as:
Q: How can I ensure that Excel won’t show all my data in one column? A: It sounds like your computer is setup to use a different delimiter than the standard comma. In most cases, the alternative delimiter is a semicolon. You can change delimiters in your export format.
XML format questions
↑ Back to topQ: Can I change the character encoding or XML version? My site uses special characters. A: Absolutely! The defaults should work for most sites, but if you need to filter the character encoding, standalone definition, XML version, or other format definitions, you can do so using the
wc_customer_order_export_suite_format_definition
filter. Here’s a sample snippet to get you started – please be sure you know how to safely add custom code to your site before installing this snippet!
Troubleshooting
↑ Back to top- Another plugin’s data isn’t showing up in the export
- Exports are remaining queue / freezing
- Exports are slow / receiving out-of-memory errors
- SSH2 Extension is not installed, cannot connect via SFTP
- Other issues
Incompatible plugins
↑ Back to top- Product Add-Ons: While add-on data will be displayed in line item meta when exported, the plugin does not show add-ons separately for each line item.
- WooCommerce Bookings: Version 1.10.0+ changed the way booking data is related to an order. Because booking data are no longer part of the order or order item data, bookings won’t be exported automatically.
Exports remaining queued
↑ Back to top- If your site is hosted with WordPress.com, the options table may be too limited. When setting up WooCommerce on WordPress.com, the site database must be updated; sometimes the options table limit is outdated at 64 characters when it should be 255 characters (as of WordPress 4.4). This limit should be fixed so that export jobs save properly. If WordPress.com confirms that the limit is 255 characters, please get in touch with our support team.
- Using a maintenance mode or blocking plugin. For example, the Airplane Mode plugin for developers will block HTTP requests.
- Your site is behind BasicAuth, which will require you to login before you can visit the site. This prevents background requests from completing. For example, WP Engine staging sites often use basic authentiacation to block site access. Click here to learn about correcting this issue, or disable BasicAuth while testing exports.
- Host files: For developers – hosts files to resolve a site to a different domain can’t be used with Customer/Order/Coupon Export and many other WooCommerce plugins. Customer/Order/Coupon Export uses
wp_safe_remote_*
requests to get data from itself, and these requests require a domain name. If your site is pointing to a domain from a hosts file, rather than a public site, these requests will fail. - Your site host blocks requests from servers to themselves, called loopback connections. Click here to learn more about this requirement and how to test for this.
Slow exports / out-of-memory errors
↑ Back to topdefine( 'WP_USE_EXT_MYSQL', false );
to your wp-config.php
file.
SSH2 Extension is not installed, cannot connect via SFTP
↑ Back to topOther issues
↑ Back to top- Please ensure your site meets the plugin requirements.
- Check the FAQs to see if they address your question.
- Having trouble adding custom meta fields? Please ensure your meta keys are correct.
- Having a problem with an automated export delivery?
- Confirm that your FTP, HTTP Post, or email information is correct.
- Run a test to see if the transfer method is working properly.
- Review our section on export schedules to see if there might be any issues with your export schedule.
- If you encounter the following error when exporting via FTP –
Error message: Uncaught Error: Call to undefined function ftp_connect()
checkphpinfo()
to ensure that your server’s PHP has FTP support enabled. - If you’re experiencing a different issue, please turn on and review error logs under WooCommerce > System Status > Logs and get in touch with support if this doesn’t help you identify the problem.