WooCommerce Customer / Order XML Export Suite
The WooCommerce Customer / Order XML Export extension exports customers or orders into an XML file. Export individual orders, multiple orders with a bulk action, or even all orders with the bulk export tool. Customers can be exported via the manual export tool as well.
Orders and customers can be automatically exported to XML and uploaded to a remote server via FTP, HTTP POST, or sent via email, which is helpful for fulfillment systems that require automated uploads. Export processes take place asynchronously on your site, meaning you can export thousands of records at once, and you can continue with site management while your export happens in the background.
Sample XML Files
You can use a built-in export format for your order or customer records, or you can create a custom format for your XML file by selecting which information should be included.
Below are some sample XML files generated by the extension so you can see the built-in export formats available and compare formats.
Legacy Formats represent formatting for all versions prior to 2.0 for backwards compatibility.
The extension is very flexible and the output can be customized or replaced entirely with your own specific format. Learn more in the developer documentation.
- Download the extension from your WooCommerce.com dashboard
- Ensure your store uses WordPress 4.4 or newer.
- Go to Plugins > Add New > Upload and select the ZIP file you just downloaded
- Click Install Now, and then Activate
- Click the Configure link and read the next section to learn how to setup and configure the plugin.
Both order and customer XML exports are processed asynchronously in the background on your site. This means that you can begin an export, and it will process as you continue to work on other things. These exports are batch-processed to prevent timeouts, letting an export churn through thousands of records while you continue working on your site. You can even leave your site completely and exports will continue to process, waiting for you to return to download them.
If you start a manual export, you’ll be notified of it beginning, and can wait for the process to complete if desired. Typically for exports of a couple hundred rows or less, this process will occur quickly (less than 10 seconds).
If you wait for the export process to complete, your file download will begin automatically, and you’ll see a notification that the process has completed.
If you don’t want to wait for the export, that’s okay too! You can leave the page to continue working, or leave the site completely. As soon as the export has completed, you’ll receive a notification that your file is ready, and can be downloaded from the “Exports List”. If you’ve left the site, this will be shown to you upon your return.
You can then access any manually or automatically-generated file export from the “Exports List” to download or transfer it. You’ll also see jobs in progress or queued if they’re ready to begin, and see the transfer status of automatic exports.
This list will keep export records for 14 days, after which they’ll automatically be removed.
If your site is not capable of processing exports in the background, this is due to your hosting configuration, and you’ll need to reach out to your hosting provider to resolve this. You’ll see a notice on the plugin settings to inform you of this.
You will not be able to process automated exports if your host does not support background processing. In the meantime, you can enable the “Batch Processing” setting. This will require you to stay on the page for manual exports, but will provide an alternate way of exporting orders and customers until your host resolves background processing on the site.
Custom Export Formats
Both customer and order XML exports can allow you to set a custom export format, or use a built-in format instead. Custom formats are useful if you need to re-order fields, remove fields, or add fields for order or user meta. You can then use this format for your manual and automatic exports.
You can view your custom formats settings from WooCommerce > XML Export > Custom Format, and switch between the “Orders” and “Customers” section to customize your format for each.
You can build this format manually, or you can click Load Column Mapping in the bottom-right corner. This will let you load one of the pre-built order or customer formats as a starting point, which you can then modify.
Custom Meta Keys
You can add columns for meta to both custom order and customer formats (advanced usage). This can let you add dedicated columns for order meta, or for user meta in customer exports.
If you’re not sure, running an export with “add all meta” enabled will add columns for each meta key, which should help you determine the meta key for the data you want (it will be the column name).
You can also add columns for static information to custom order and customer formats, which will allow you to add blank columns, or columns with a set value for all rows, such as store name.
To add a static value, select “Static value” for the data source, then enter the information that should appear in each row of the export.
Custom Export Format Settings
The custom export formats do have some settings you can configure as well.
- Indent output – Enable this to pretty print the XML with indents. Useful if a human is reading the XML instead of a machine, can be disabled otherwise.
- Include all meta – Enable this to add all order or user meta to the export, one tag per meta key (this will include hidden meta)
After configuring settings, you can load or add the fields as desired for each custom export format.
Order Export Settings
Go to WooCommerce > XML Export > Settings > Orders to configure order export settings and optionally setup your FTP, HTTP POST, or email export information for automated exports.
Export Format Settings (Orders)
- Export Format – Change the format for your order exports. The export formats are:
- Default – This format was added in version 2.0 and includes detailed order export information.
- Legacy – This format was used in the plugin prior to version 2.0; we recommend using the default for new installations.
- Custom – This format will use the field mapping you’ve created under the “Custom Formats” tab for the order export.
You can view sample export files for formatting to choose the best export format for your needs.
- Order Export Filename – Change the name of the filename that is exported. You can use
%%timestamp%%to represent the date / time (in YYYY_MM_DD_H_S format), and
%%order_ids%%to include a dash-separated list of the order IDs exported in the file.
- Add Order Notes – Enable this to add a note to orders when they’re exported. This note will only be added the first time an order is exported, and is not added for subsequent exports.
- Batch Processing – Uses batch processing for manual order exports instead of processing these asynchronously. Can be used when background processing is not supported, but requires you to keep the page open while running an export.
You can also determine if you’d like to set up automated order exports from this settings.
Automated Export Settings (Orders)
- Automatically Export Orders – Select an auto-export method to automatically export un-exported orders on the recurring interval set. Auto exports only include “new” (non-exported) orders with each run.
- Trigger Automatic Export – Determine whether auto-exports should happen for each order after it’s marked “paid”, or if exports should happen on a defined schedule.
- Export Start Time – (If exports are scheduled) Choose the start time for automatic order exports. The next export will run at the chosen time and continue on the recurring interval set.
- Export Interval – (If exports are scheduled) Choose the interval for automatic order exports. The default is 30 minutes.
- Order Statuses – Select the order statuses that should be automatically exported. For example, if you only want processing and completed orders to be exported, use the multi-select box and click on “Processing” and “Completed”. Leave this blank to export new orders with any status.
- Product Categories – Select product categories for automated exports. This will only include orders that contain products from the selected categories. Leave this blank to export new orders with any product category.
- Products – Select products for automated exports. This will only include orders that contain the selected products. Leave this blank to export new orders with any product.
Email Settings (Orders)
- Recipient(s) – Enter recipient email address(es) to receive the XML export. Separate multiple addresses with commas. Defaults to site admin email.
- Email Subject – Enter the subject of the Export email. Defaults to
[Store Name] Order XML Export.
- Test – Once you save your email settings, you can send a test email with a dummy XML file to check your settings.
Local Exports (Orders)
Local auto-exports have no specific settings; these files are generated and simply saved for 14 days in your “Export List” without being transferred.
FTP Settings (Orders)
- Server Address – Enter either an IP address or hostname for the FTP server
- Username – Enter the username for the FTP server
- Password – Enter the password for the FTP server
- Port – Enter the port to connect to for FTP. This should be port 21 for regular FTP, 22 for SFTP, and 990 for FTP with Implicit SSL
- Initial Path – Enter the initial path to change to before uploading the export file. The initial path already includes a leading slash so do not include one. It does require trailing slash. For example, to upload to a “test” folder, you would enter
test/. If you are connecting via SFTP, the initial path needs to be a full path to the folder if the username you are connecting with does not default to the HOME directory
- Security – Choose the type of security for the FTP server. Ask your FTP provider if you’re unsure what to select.
- Passive Mode – Enable this to turn on passive mode for FTP connections. This should be unchecked unless you are having issues connecting, especially if you are seeing the “PORT command successful” message followed by a timeout in the error log
HTTP POST Settings (Orders)
- HTTP POST URL – Enter the URL to which you want to POST the exported CSV.
Customer Export Settings
Go to WooCommerce > XML Export > Settings > Customers to configure customer export settings and optionally setup your FTP, HTTP POST, or email export information for automated exports.