WooCommerce Customer Order Coupon Export - WordPress Plugin
The plugin is designed as an export solution for WooCommerce, allowing users to efficiently export customer order coupons data. With its easy-to-use interface, it streamlines the process of exporting crucial information, enabling seamless integration with external systems for further analysis or marketing purposes. This functionality makes it a valuable tool for WooCommerce users looking to optimize their data management processes effectively.

Plugin Features
It simplifies the extraction of customer order coupons data from a WooCommerce store, providing users with a comprehensive overview of coupon usage and customer order details. By offering customizable export options, it ensures that users can tailor the exported data to meet their specific requirements, enhancing flexibility and usability. This flexibility is crucial for businesses seeking to analyze coupon performance metrics and customer ordering patterns accurately.
The plugins intuitive features empower users to export customer order coupons effortlessly, saving time and effort typically required for manual data extraction. With its robust functionality, it enables users to generate detailed reports on coupon usage and customer ordering behavior, facilitating informed decision-making and targeted marketing strategies. This capability is especially beneficial for businesses looking to drive sales growth and optimize their marketing campaigns effectively.
Users can leverage WooCommerce Customer Order Coupon Export to export customer order coupon data in various file formats, enhancing compatibility with different systems and applications. This versatility ensures seamless data integration across platforms, allowing for a smooth transition of information for further analysis or marketing initiatives. By supporting multiple export formats, it caters to diverse user needs and simplifies the data exporting process for enhanced efficiency and convenience.
Overall, the plugin serves as a valuable asset for WooCommerce users seeking to streamline their data export processes and gain valuable insights into customer order coupon usage. Its user-friendly interface, customizable export options, and compatibility with various file formats make it a versatile and practical solution for businesses aiming to enhance their data management capabilities. By simplifying the export of vital coupon and ordering data, it empowers users to make data-driven decisions and optimize their marketing strategies efficiently.
Specifications:
| Release date: | 11-10-2020 | |
| Last updated: | 09-09-2024 | |
| Type: | Paid | |
| License: | GPL | |
| Subject: | Migration & Conversion for WooCommerce | |
| Compatibility: | W5.x W6.x | |
| Includes: | Plugin | |
| Language packs: |
|
|
| Developer: | WooCommerce Plugins | |
| Rating: | ||
Share with your friends!
WooCommerce Customer Order Coupon Export Setup and Usage Guide
WooCommerce Customer Order Coupon Export is not designed to create a pretty report in the admin area. Its job is to regularly export operational store data - orders, customers, and coupons - to CSV or XML. This guide explains how to prepare your store, choose a format, configure manual and automated exports, validate a file before sending it to a CRM, warehouse, shipping provider, or accounting system, and quickly identify why an export may be stuck or contain incomplete data.
This guide starts with practical decision-making rather than repeating the product listing. First, you will see when this exporter genuinely saves time and when WooCommerce's built-in tools or another solution may be simpler. Then we will cover installation, an initial test, custom formats, scheduling, and the Mark as exported status, since those areas most often affect the final outcome.
Special attention is given to troubleshooting. With this class of plugins, an error rarely looks like "the button does not work." More often, an export remains queued, Excel opens the file as a single column, automatic delivery never reaches the server, custom fields do not appear in the CSV, or an order no longer qualifies for a schedule because it was marked as exported. These issues are best investigated as a chain: input data - plugin behavior - file - delivery method - proof of the outcome.
This guide is written for store owners, WooCommerce administrators, and developers who help connect a store to an external system. Code is used only where it is documented and solves a specific task. If you do not write code, nearly all of the guide still applies: the main workflows are handled through the WordPress and WooCommerce admin areas.
What Order, Customer, and Coupon Export Is For
WooCommerce stores a great deal of data, but not every business workflow lives inside WooCommerce. An order may need to go to a warehouse, fulfillment provider, CRM, email platform, accounting system, a manager's local spreadsheet, or a partner portal. WooCommerce Customer Order Coupon Export handles that handoff: it takes structured store data and delivers it in a format another system or person can use.
The plugin works with three data groups: orders, customers, and coupons. For orders, the relevant details may include statuses, products, totals, shipping, taxes, refunds, notes, custom fields, and data from related extensions. For customers, contact and address details matter, as does purchase history, because the documentation specifically notes that a user is considered a customer for export only after placing an order. For coupons, the important fields can include codes, discount types, amounts, restrictions, and expiration dates, depending on your task.
The main practical benefit appears when exports are recurring. You can download several orders once in many different ways. But if a store sends Processing orders to a warehouse every day, pushes paid orders to an integration endpoint every hour, or exports customers for segmentation every week, manual exporting quickly becomes a source of mistakes. This is where schedules, background processing, saved formats, clear filenames, and safeguards against sending the same order twice matter.
Do not treat the plugin as a universal analytics platform. It does not replace a BI report, create visual charts, or correct order data. Its purpose is simpler and more useful: to extract WooCommerce data in a repeatable structure. If an external system expects a CSV with specific columns, XML with defined tags, or a regular file delivered over FTP, this is exactly the plugin's area of use.
When to Use a Manual Export
Manual export works well for one-off tasks: sending a contractor a list of orders for a period, reviewing data before a migration, exporting customers for internal analysis, reviewing coupons before a promotion, or locating the meta key for a custom field through a test file. In manual mode, you choose the output type, export type, format, filename, filters, and, when needed, Batch processing.
A good manual workflow always ends with file validation. Do not stop once the browser has downloaded a CSV. Open it in Google Sheets, LibreOffice, or another spreadsheet editor. Confirm that columns are separated correctly, special characters display properly, totals have not become text, and coupon codes and ZIP codes have not lost leading zeros. If the file will be imported into another system, check not only its appearance but also the column names.
When to Use an Automated Export
Automated export is for cases where data must be delivered without an administrator's involvement. The documentation describes a recurring schedule, order exports after payment, and delivery through local storage, FTP, HTTP POST, or email. This works well for warehouses, fulfillment providers, CRMs, email platforms, and technical integrations where a file or HTTP request acts as an intermediate exchange format.
Automation requires more disciplined preparation. Check background-processing support, WP-Cron, the site's time zone, the selected transfer method, user permissions, logging, and exported-object status. If the store has little traffic or staging is protected by BasicAuth, a schedule may not run as expected. It is best to begin with a test period, a small data set, and active verification of the outcome.
Who the Plugin Suits and When Another Tool Is Better
The plugin is especially useful for stores that need predictable order and customer data outside WordPress in a structured file. This can include stores with manual fulfillment, B2B orders, custom checkout fields, a separate CRM, subscription services, support teams, small warehouses, and agencies maintaining multiple WooCommerce sites.
WooCommerce Customer Order Coupon Export's strength is the combination of simple manual output and more disciplined integration workflows. One product includes predefined formats, custom formats, CSV/XML export, scheduled exports, transfer methods, and exported status. You can begin with a manual CSV, save the format, and later turn it into an automated delivery without changing tools.
The plugin may be excessive if you only need to export products once. WooCommerce includes a built-in product CSV importer/exporter, while Product CSV Import Suite covers more advanced catalog workflows. If you need a deep order migration between two stores with import settings included, tools that support a bundled migration workflow may be more convenient. If JSON or PDF is your primary format, this product may not meet the requirement because its documented formats are CSV and XML.
Do not choose an exporter as a way to "fix" your store's underlying data model. If order addresses are already filled out incorrectly, custom fields are stored inconsistently, products lack SKUs, or a third-party extension saves important data in a nonstandard way, the export will reveal the problem but will not automatically clean up the data. First establish a stable source-field structure, then build the export format.
Common Working Roles
- Store owner receives a repeatable file for a manager, warehouse, or email platform without manually copying rows from the admin area.
- Operations manager exports only the needed order statuses and makes sure repeat exports do not create duplicates.
- Developer or integrator configures a custom format, validates meta keys, uses official filters when needed, and does not rely on an accidental column order.
- Support team can diagnose reports faster: whether an order is in the data set, whether the background task ran, whether the file was sent, and what the logs show.
What to Check Before Installing on a Live Store
Before installation, determine not only whether the WordPress version is compatible, but also whether the store is ready for background tasks and external data delivery. The product page and WooCommerce documentation list PHP and WooCommerce requirements and separately discuss background processing for automated exports and comfortable handling of large files. Check exact versions against the current product page and WooCommerce > Status, because extension requirements can change.
The first step is staging or a backup. Exporting itself should not alter an order's contents, but Mark as exported affects future automated selections. If an administrator accidentally marks older orders as exported, the next scheduled export may omit them. For that reason, perform the initial test on a site copy or a small set of orders where every state is easy to track.
The second step is checking the WooCommerce data model. If the store uses High-Performance Order Storage, make sure every extension involved in order handling is compatible with the current storage mode. Available sources do not provide a separate, confident HPOS compatibility statement for this exporter, so the safe approach is to review incompatible extensions in the WooCommerce admin area, run a test export on staging, and compare the exported order set with what appears in WooCommerce > Orders.
The third step is permissions and access. Order and customer exports contain personal data, addresses, phone numbers, email addresses, and sometimes internal notes. Only administrators or shop managers who genuinely need this information should be able to configure or download exports. Do not send files to personal email accounts or keep them in public site directories.
Pre-Activation Checklist
- Open
WooCommerce > Statusand review PHP, WooCommerce, warnings, and logs. - Confirm that WP-Cron or a server cron runs regularly, especially for a low-traffic store.
- Run the Background Processing Test in
WooCommerce > Status > Toolsif you plan automated exports or large background exports. - Define which order statuses should be included in the first real export: commonly
Processing,Completed, or store-specific operational statuses. - Compile a list of custom fields, checkout fields, order meta, and related-extension data that must be included in the file.
- Decide in advance where the file should go: local Export List, FTP/SFTP, HTTP POST, or email.
- Do not include FTP secrets, HTTP endpoint credentials, or email access details in text prompts, chats, or third-party documents. Configure them only in the site's admin area.
Critical check: if an automated export must send newly paid orders, first confirm that a test order completes the entire path from payment to file delivery and that the order does not appear again in the next run without a reason.
Installation and the First Post-Activation Test
Installation follows the standard process for a premium WooCommerce extension: upload the ZIP file, go to Plugins > Add New > Upload, select Install Now, then Activate. You do not need to implement separate authorization inside the project or attempt to obtain keys through code. After activation, the export workspace is available from the WooCommerce menu. The documentation uses WooCommerce > Export, with tabs for manual export, automated exports, export list, and custom formats.
The first test is not about appearance. It establishes a known baseline. Before complex configuration, create one test order with recognizable data: one simple product, one coupon, a standard address, a clear email address, and a status you intend to export. If the store uses a custom checkout field or admin custom order field, populate that too. You will immediately see whether the required information reaches the file.
Minimum Manual Export Test
- Go to
WooCommerce > Exportand open the manual export tab. - Select an
Output type: CSV is usually easier for human review, while a system with a strict schema may require XML. - Select an
Export type: start with orders because an order has more relationships and exposes problems faster. - Keep a predefined format if you do not yet need custom fields or a special column order.
- Set a clear filename that indicates the export type and purpose but contains no personal data.
- Select a small data set through export options: status, product, category, or an order range, if those filters are available for the selected type.
- Run the export and wait for the completed modal, or find the file under
WooCommerce > Exports > Export List.
After downloading, verify more than the presence of an order row. Compare the order number, customer email, billing address, line items, discounts, refunds, and order notes if they were included. If the file must be sent to an external system, perform a test upload in its test environment or at least validate the column structure with the person responsible for receiving the file.
What Counts as a Successful First Run
Success is not simply "the file downloaded." A successful run means the selected orders are included, unwanted orders are not included, the data can be read in the intended editor, an entry exists in Export List, and WooCommerce logs show no transfer or background-processing errors. For a manual export with Mark as exported enabled, also verify that the order received the expected exported state and that you understand how that state will affect future automated jobs.
If everything looks correct at this stage, you can move on to custom formats. If the first file is already incomplete, do not build automation yet. First determine whether the issue is caused by a filter, format, meta key, incompatible extension, or background processing.
Manual Export: Filters, Data Selection, and Safe File Handling
Manual export in this plugin should not become a "download everything" button. In practice, it is useful when you understand the question in advance: which orders are needed, who needs the file, which fields are mandatory, and whether the export should affect future automated jobs. Without that clarity, it is easy to download an overly broad CSV, expose unnecessary personal data, or accidentally change exported state.
The documentation describes bulk export from WooCommerce > Export, as well as exporting selected orders from WooCommerce > Orders and selected customers from Users. The order list includes bulk actions such as Download to CSV, Download to XML, and Export and Send. The last option uses transfer-method settings from an existing automated export, so use it only after that automation has passed testing.
How to Choose Filters for Orders
For orders, the important criteria commonly include status, product, category, dates, refunds, and order notes. If the warehouse processes only newly paid orders, do not export completed or canceled orders. If marketing needs customers who purchased a specific product, a product filter is better than exporting every order and manually cleaning the spreadsheet afterward. If accounting needs refunds, make sure refunds are enabled and the relevant columns exist in the format.
The filter should reflect the action that follows the export. If the file goes to a warehouse, select statuses the warehouse actually processes. If the file is for coupon review, select the campaign period and confirm that coupon-usage data is included. If you are trying to locate a meta key, you can temporarily include all meta in a custom format, but do not send that file outside the organization without reviewing it: it may contain unnecessary technical fields.
How to Choose Filters for Customers and Coupons
For customers, there is one key detail: a user must have at least one order to count as a customer for this export. Therefore, newly registered users without purchases may be absent from the file without this being an error. For CRM segmentation, decide in advance whether you need all buyers, only buyers from a particular period, or only customers associated with specific orders.
For coupons, manual export is useful before cleaning up promotions, auditing discounts, or moving a campaign. Check more than the code and amount: review restrictions, usage count, dates, discount type, and the relationship to orders if needed. If the task is to bulk-create coupons in another store, check compatibility with Customer / Coupon / Order CSV Import Suite early, because the export format should support re-import.
When to Use Batch Processing
In the documentation, Batch processing is associated with situations where a site does not support background processing. In practical terms, if background processing is available, an export can continue beyond the open modal. If it is not available, you may need to keep the window open and avoid interrupting the process. Do not enable the batch option automatically. First test background processing, then select the mode appropriate for the server.
For large stores, do not begin with a complete historical export. Start with a short period, then a week, then a month or the required operational data set. This makes it easier to locate a problematic row, memory limit, unusual character, conflicting meta field, or endpoint that rejects the file size.
Choosing Orders, Customers, and Coupons for Different Jobs
In the interface, export type looks like a simple switch, but the choices represent different data models. Selecting the wrong type often creates a file that exists but does not answer the recipient's question. A manager asked for CRM customers and receives orders. A warehouse asked for line items and receives a buyer list. A marketer asked for active coupons and receives order history with coupon discounts. Before configuring a format, state clearly which object is primary.
Orders are appropriate when the next action begins with an order: fulfillment, shipping, refunds, payment reconciliation, coupon-campaign reporting, or sending a new order to an external system. In this file, the central entity is the order. Customer data, line items, coupons, fees, shipping, and notes are order details. If one customer placed five orders, that customer may appear in five rows or five XML groups. That is expected because the purpose is tracking orders, not building a clean customer directory.
Customers are appropriate when the next action begins with a person or account: buyer segmentation, a support address list, CRM contact transfer, registered-buyer auditing, or customer export for email marketing when you have a lawful basis and consent. Here, an order matters only as proof that the user is a buyer. If you need all registered site users, customer export may not match that expectation because the documentation defines a customer based on an actual purchase.
Coupons are appropriate when the primary object is a coupon campaign: moving coupons, auditing discounts, checking usage limits, preparing a new promotion from existing codes, or finding expired and incorrectly configured coupons. Do not confuse this with analyzing orders where a coupon was used. If you need to know which orders used a specific coupon code, select orders and filter by or include coupon data in the order export. If you need the coupon rules themselves, select coupons.
Order Export for Warehouse and Operations Control
For a warehouse, an order export usually needs to answer four questions: what to pick, where to send it, who the buyer is, and the order's internal status. A format therefore commonly includes the order number, shipping name, shipping address, phone, email, SKU, item name, quantity, shipping method, customer note, internal order note, and coupon code if the discount affects fulfillment. If the warehouse does not use billing address, do not add it "just in case." The more unnecessary columns there are, the greater the risk that someone sorts by the wrong field or that the recipient's import maps a field incorrectly.
A separate format is useful for operations control. For example, a manager may not need every line item, but may need order status, payment method, shipping method, order total, refunded total, coupon code, and exported state. Such a file helps identify orders stuck between payment and transfer. Do not mix this format with a warehouse format if the recipients are different. The same exporter can store multiple custom formats, and that is better than one oversized CSV for every purpose.
Customer Export for CRM and Email Marketing
Customer export requires especially careful handling of personal data. A CRM may need name, email, phone, city, country, billing/shipping fields, and a last-purchase date or indicator if that column is available in the selected format. But an email platform does not always need the full shipping address, and support does not always need coupon details. Before exporting, ask the recipient not "which fields can I provide?" but "which fields are actually used?"
If you send buyers to an email platform, also verify the source of consent for communications. A purchase alone does not always mean consent to marketing email. The plugin helps export data, but it does not replace legal and operational consent policies. If the store has a separate consent field, identify its meta key and include it in the export only after confirming that its value is stored consistently.
Coupon Export for Moving Promotions and Auditing Discounts
Coupon export is useful before a large seasonal period, when you need to review active codes, existing restrictions, outdated discounts, and coupons that may conflict with a new campaign. When moving coupons to another store, choose an importer-compatible format rather than simply exporting the most complete file. If you plan to import through Customer / Coupon / Order CSV Import Suite, follow its coupon-column requirements.
When auditing discounts, do not stop at coupon amount. Review discount type, expiration date, usage count, usage limit, product and category restrictions where used. An error in one field can have a much larger impact than an incorrect coupon name. For example, fixed cart and percent discount can look similar in a table but behave very differently at checkout.
How to Avoid Uncontrolled Format Proliferation
Custom formats are easy to create, so after a few months a store can accumulate ten similar formats with names such as Export test, new export, and warehouse final final. That is risky: an administrator selects an old format, an external import receives extra columns, and the team looks for an issue in orders instead of checking the format name. Agree on a simple naming convention that includes purpose, object, recipient, and frequency.
Examples of useful internal names include Orders - warehouse - daily CSV, Customers - CRM - weekly CSV, Coupons - migration - import format, and Orders - refunds audit - manual CSV. The name does not need to appear in a buyer-facing interface, but it helps administrators select the right workflow. After every significant format change, run a test export and leave a short team note: what changed, who approved it, and where the file was validated.
Custom Formats: Fields, Meta, Static Values, and Row Structure
Custom formats are the most important feature for real-world use. This is where WooCommerce Customer Order Coupon Export stops being a simple download button and becomes an adapter between WooCommerce and an external system. The documentation allows multiple custom CSV and XML formats, lets you choose export type, define column mapping, add meta fields and static values, change the CSV delimiter, and decide whether an order row represents a whole order or a single line item.
Start with the recipient's schema, not the interface. If the CRM expects email, phone, order_total, and coupon_code columns, do not send the entire default export. If a warehouse expects one row per order item, row type matters more than a polished filename. If an external import maps by column names, column order is secondary. Official documentation specifically warns that integrations should use column names or IDs rather than the order of default columns.
CSV or XML
CSV is convenient for spreadsheets, CRMs, quick human checks, and simple integrations. It opens easily in Google Sheets and LibreOffice, but requires attention to delimiter, encoding, and fields containing nested data such as line items, coupons, fees, and notes. XML is useful when the recipient expects hierarchy: an order as an object containing line items, shipping, fees, taxes, and notes. However, XML is harder to inspect visually and more often requires exact schema compliance.
If the recipient does not impose a strict format, begin with CSV. If the recipient already has an XML schema, use XML and agree on the tags. Do not choose XML merely because it seems "more technical": it is often less practical for a manager's operational spreadsheet.
Meta Fields: How to Avoid Choosing the Wrong Key
Custom meta is added through the Meta field... data source and a meta key. The most common mistake is guessing the field name from its interface label. A label may say "Delivery Window" while the stored meta key is completely different. The documentation suggests a practical approach: temporarily enable Include all meta, create a test export, find the actual meta key, then add only the required column to the permanent custom format.
Keep this test file technical and do not send it to an external contractor. All meta can include technical fields, internal identifiers, payment-gateway data, integration traces, and fields the recipient does not need. A proper operational format is usually minimal: it contains only columns that are used later in the workflow.
Static Value: A Small Setting with Major Benefits
Static value lets you add a column containing the same value in every row. This is useful when an external system expects a store name, source channel, warehouse code, integration label, or an empty reserved column. Rather than adding that column manually to every export, keep it in the custom format.
For example, several stores may send orders to one CRM. Each export format can include a static value named StoreName containing the relevant store's value. The recipient can immediately identify the source of each row, and the administrator does not have to edit the downloaded file.
One Row per Order or per Line Item
For orders, a custom CSV format can choose whether a row represents an order or a line item. One row per order is useful for CRMs and general order lists. One row per item is useful for warehouses, picking, product reporting, cost calculations, and workflows where one order containing several products must expand into several rows.
Agree on this with the recipient in advance. If the warehouse expects an SKU in every row, one row per order can produce an overly complex line-items field. If the CRM expects complete order history, one row per item can create duplicate customers and totals. Do not validate only the first row. Test an order with two or three items, a discount, and shipping. That kind of test reveals whether you selected the correct row type.
Automated Exports: Schedules, Delivery, and Failure Monitoring
Create an automated export through WooCommerce > Export > Automated Exports and Add New. Basic settings include Enabled, Export name, Output type, Export type, Filename, and Format. You then choose a trigger: orders can run after payment or on an interval, while customer exports use an interval trigger. The schedule uses the WordPress time zone, so check Settings > General before enabling it.
Before automating, create a manual export using the same format and filters. If the manual file does not work for the recipient, the automated export will reproduce the same issue on a schedule. Only move to scheduling and delivery after validating the file schema.
Locally, FTP, HTTP POST, or Email
Locally is the simplest method. The file is stored in Export List and remains available for a limited time. This is useful for an internal team that downloads the file itself, but it does not suit a fully automated integration where an external system must receive data without signing in to WordPress.
FTP or SFTP suits warehouses and older integrations that accept files in a folder. Important settings include server address, username, password, port, initial path, security, and passive mode. Documentation specifically notes passive mode as a setting to enable when connection issues occur, particularly if the log shows a successful PORT command followed by a timeout. SFTP requires the PHP SSH2 extension; if it is unavailable, the hosting provider must resolve that issue, not the plugin.
HTTP POST works well for modern integrations, webhook receivers, and workflows using a Zapier-like intermediary. Check the endpoint, SSL, expected content type, request-body size limits, and server response. The developer documentation includes a filter for changing wp_remote_post() arguments, but adding headers and authorization is a developer task, not a production setting to guess at.
Email is convenient for a team that processes the file manually. However, it is less suitable for sensitive data and large files. Configure recipients and the subject line so the message is not lost and the file is not sent to people who do not need it. If the recipients field is blank, the documentation says the site administrator's email is used, so verify that behavior instead of assuming it.
Scheduling and WP-Cron
WooCommerce automated jobs use WP-Cron. This is standard WordPress behavior, but it depends on site visits unless a server cron is configured. On low-traffic stores, a task may start later than expected. Official documentation suggests two alternatives: a server cron job or an external service that regularly requests the site.
For important exports, use a server cron because it makes triggering more predictable. If that access is unavailable, an external ping service may help, but it is a compromise. In all cases, verify actual run times through Export List and logs rather than relying only on the schedule settings in the admin area.
Monitoring and Test Transfer
FTP, HTTP POST, and Email methods include a test feature. Use it before enabling Enabled on a production job. If the test fails, do not try to solve the problem by increasing the schedule interval or changing the filename. First check credentials, endpoint, port, initial path, mail deliverability, firewall rules, and WooCommerce logs.
If a transfer fails repeatedly, administrators and shop managers may see an admin notice. That is useful, but it does not replace regular monitoring. For critical integrations, assign responsibility: who reviews Export List, who checks logs, who reviews the test file, and who confirms receipt on the warehouse or CRM side.
Exported Status and Duplicate Prevention
The exported-status mechanism is one of the product's most important features. It prevents the same order from being sent again in future automated exports, but it can be surprising if you do not understand the difference between manual and automated export. The documentation explains that a manually exported order or customer is marked as exported and excluded from future automated exports. During automatic export, an object is marked as exported for that specific automated export so it is not sent again by the same job.
In practice, this means that if a manager downloads processing orders manually every day and leaves Mark as exported enabled, those orders may not appear in a future automated delivery. This concern also appears in user comments about the product: people sometimes want regular filters and mark state to be easier to preserve. Configure the team's workflow, not just the plugin settings.
When to Enable Mark as Exported
Enable Mark as exported when the file is a genuine data handoff and the order must not be sent again through an automated channel. For example, if a warehouse receives an order through manual Export and Send, sending it again could create a duplicate picking task. In that case, exported status acts as a safeguard.
Disable this option when manual export is used for analysis, auditing, format testing, or a temporary spreadsheet. Such a file should not alter an order's integration lifecycle. Be especially careful in stores with multiple automated exports: one for the warehouse, another for the CRM, and a third for reporting. A global mark can have a broader effect than the user expects.
How to Change the Status Manually
The documentation describes several locations: bulk actions on Orders or Users lists, order details, and user details. You can mark selected objects as exported or not exported. On an individual order or user page, the status can be changed globally or for one or more automated exports when you need to return an object to a particular future delivery.
There is an important limitation: changing an object to "not exported" is not a permanent state. If the object is included in a future export, its status changes again according to that job's behavior. Do not use "not exported" as a permanent business label. It is a technical state for the export queue.
Expected state after testing: an order exported manually only to validate the file should not disappear from the production schedule. If it does, check whether
Mark as exportedwas enabled.
Practical Workflow: Daily Warehouse Order Export
Consider a specific operational workflow. A store sends paid orders in Processing status to a warehouse. The warehouse expects a CSV containing order number, customer name, shipping address, phone, email, SKU, quantity, item name, coupon code, order note, and store code. The file must be sent automatically on a schedule, while the manager must retain the ability to manually send one urgent order from the order list.
The goal is a repeatable, duplicate-free CSV with the correct line-item structure and verifiable delivery. Preparation includes installed WooCommerce, an activated exporter, a test product with an SKU, a test order using a coupon, and an order containing a shipping address and order note. If the store uses a custom checkout field, first locate its meta key through a test export with Include all meta, then add only the required field to the permanent format.
Step 1. Create a Warehouse Format
- Go to
WooCommerce > Exports > Custom Formats. - Select the orders export type and click
Add new CSV format. - Name the format so the team understands its purpose, for example
Warehouse daily CSV. - Choose the delimiter accepted by the warehouse. If the warehouse uses a European locale and Excel opens the CSV in one column, a semicolon may be required.
- For row type, select single line item if the warehouse must see one product item per row.
- Add order number, shipping fields, email, phone, SKU, product name, quantity, coupon data, and required notes.
- Add a static value such as
StoreCodeif the warehouse receives multiple stores through one workflow. - Save the format.
After saving, do not move immediately to scheduling. Run a manual export for one test order containing two products. If the file contains two rows, shipping data repeats correctly, and line-item fields do not collapse into an unreadable string, the row type is correct. If the warehouse expects one row per order, return to the format and change the setting.
Step 2. Validate the Manual File
Open the CSV in the editor the recipient actually uses. If it is Excel, check leading zeros, delimiter, encoding, and addresses. If it is Google Sheets, confirm that the file imports without shifted columns. If it is an API receiver, send the test file to a test endpoint or schema validator rather than production.
Check the order in WooCommerce. If the manual export was only a test, make sure it did not mark the order as exported for the future automated warehouse job. For a clean test, it is better to disable Mark as exported when you do not want to change object state.
Step 3. Create an Automated Export
- Open
WooCommerce > Export > Automated Exportsand clickAdd New. - Enable
Enabledonly after testing the transfer. Leave it disabled during setup. - Select CSV, orders, the warehouse format you created, and a clear filename.
- For the trigger, select a schedule or after payment if the warehouse workflow must receive orders immediately after payment.
- In export options, set status to
Processingand add a product or category filter if needed. - Select a transfer method: local for manual control, FTP/SFTP for a warehouse folder, HTTP POST for an endpoint, or email for the responsible recipient.
- Run a test transfer and verify not only the success message but also that the file appears on the recipient's side.
Step 4. Configure the Urgent Manual Workflow
If a manager must send one urgent order, use WooCommerce > Orders, select the order, and then choose the Export and Send bulk action. This option asks you to select an automated export so it can use its transfer settings. Before allowing the team to use this workflow, explain the impact of exported state. An urgent send may properly prevent a duplicate in the next scheduled export, or it may disrupt the normal queue if it was only a test.
Step 5. Verify the Outcome
After one real cycle, check four places: the Export List entry, the actual recipient file, the order status in WooCommerce, and logs. If the file was received but the order was sent again, inspect exported state. If the order was not sent at all, check the status filter, order date, mark as exported, WP-Cron, and transfer logs. If the file was delivered but the warehouse reports a format issue, return to the custom format rather than the schedule.
Checking File Quality Before Sending It to a CRM or Warehouse
Export quality is not defined by the number of columns. It is defined by whether the file can be used without manual cleanup. A good file is readable by both machines and people, has stable headers, contains no unnecessary personal data, preserves coupon codes and addresses, represents line items correctly, and makes it possible to locate the original order in WooCommerce.
A convenient validation set includes several test orders: one simple order, one order with two products, one with a coupon, one with a refund, one with a custom checkout field, and one with an unusual address or special characters. This prevents you from missing problems that do not appear in an ideal order.
What to Check in CSV
- Headers match recipient requirements and do not depend on visual position in a spreadsheet.
- The delimiter matches the editor and import system.
- The encoding preserves Cyrillic, diacritics, currency symbols, and customer names.
- ZIP codes, phone numbers, and codes do not lose leading zeros when opened in Excel.
- Line items appear in the required structure: separate rows or a structured field.
- Refunds, coupons, shipping, fees, and taxes appear only where needed.
- Technical meta fields are not sent outside the organization unnecessarily.
What to Check in XML
For XML, review the root element, encoding, and nesting of order data, line items, shipping, fees, taxes, notes, and custom tags. If the external system provides a schema or sample, compare not only tag names but also structure. Sometimes data exists but is placed at the wrong nesting level, causing the recipient's import to ignore it.
If you need to change XML version, encoding, or format definition, use the developer documentation and test on staging. Do not add an unverified snippet to a live site. For most stores, the built-in custom format builder is safer than code.
Why Column Order Should Not Be the Only Anchor
Official documentation recommends not relying on the order of default columns in integrations because it may change with updates. Using column names or IDs is more reliable. If a recipient requires "the third column must always be email," create a custom format and lock the headers, but still ask the recipient to map by name if its system supports that.
This is especially important for long-running integrations. A format changes after several months, a discount field is added, a related extension changes, or a new column appears. If the import relies on position, it may begin reading a coupon code as a phone number or an item total as shipping. That is more dangerous than an obvious failure because the file formally exists while the data goes to the wrong place.
Compatibility with Order Fields, Coupons, and Related Extensions
WooCommerce Customer Order Coupon Export is valuable not only because it exports standard orders. Official documentation lists extensions with added fields or compatibility: Admin Custom Order Fields, AvaTax, Checkout Add-Ons, Checkout Field Editor, Cost of Goods, Customer / Order / Coupon CSV Import Suite, Sequential Order Numbers Pro, Shipment Tracking, and Subscriptions in the limited workflow of exporting subscription or renewal orders. The list is not exhaustive, but the confirmed items can be used with greater confidence.
If a required extension is absent from the list, that does not prove incompatibility. It does mean testing is required. Determine where the extension stores data: order meta, line-item meta, user meta, coupon meta, or its own tables. Then create a test export using the required format. If the field does not appear, look for official compatibility documentation or use developer filters only after validating the actual hooks.
Checkout Field Editor and Checkout Add-Ons
For custom checkout fields, distinguish the label on the form from the data's actual storage in the order. WooCommerce Checkout Field Editor documentation directly states that this data is saved in order details and requires an exporter extension. ThemeHigh documentation also describes a practical workflow: enable CSV export support in its Checkout Field Editor settings, then export through Customer / Order / Coupon Export or an alternative exporter.
Checkout Add-Ons has separate compatibility: the add-on value and associated cost can be included in CSV/XML, while custom exports use data-source names containing the add-on ID. If you offer paid gift wrapping, insurance, an extra service, or another checkout add-on field, confirm that the exported file shows both the selected value and the amount when the amount is needed by the recipient.
Admin Custom Order Fields
Admin Custom Order Fields stores internal order fields as order metadata. Its documentation describes compatibility with Customer/Order CSV Export: custom order fields can be added automatically to built-in formats or included in custom formats by ID. This is useful for fulfillment teams when an order contains fields such as "assigned packer," "delivery window," "serial number," or "internal priority."
First create the field and populate it on a test order. Then export and locate the corresponding column. If you use a custom format, add only the required field IDs. Do not include every administrative field when the recipient only needs one.
Subscriptions, Bookings, and Product Add-Ons
For WooCommerce Subscriptions, documentation indicates that subscription or renewal orders can be exported on the Export tab, but separately notes that this is not an export of subscription data for importing elsewhere. For Bookings, there is an important limitation: after booking-data structure changed, booking data is not exported automatically because it is no longer part of order or order-item data. For Product Add-Ons, add-on data may be visible in line-item meta, but a separate clean XML breakdown is not supported as built-in behavior.
The practical takeaway is that if your store depends on Subscriptions, Bookings, Product Add-Ons, or another complex extension, test the exact field and structure you need. It is not enough to see that an order appears in the file. Confirm that the business-critical part of the order also appears where the recipient expects it.
A Safe UTF-8 BOM Snippet
The official FAQ describes an issue where non-English or special characters display incorrectly in Excel and suggests enabling BOM for CSV. Add this code only through a small site-specific plugin or a trusted snippets tool, never to WordPress core or the plugin file. Back up first, then test on staging.
add_filter( 'wc_customer_order_csv_export_enable_bom', '__return_true' );
The validation is simple: export an order containing Cyrillic or diacritics, open it in the same Excel installation where the issue appeared, and confirm that the characters display correctly. To roll back, remove the snippet and repeat the export. If the problem exists only in the Mac version of Excel, documentation recommends considering alternative editors such as Google Sheets, LibreOffice, or Numbers, because not every limitation can be solved through a WooCommerce setting.
Security, Privacy, and Team Discipline for Exports
Order and customer exports almost always contain personal data. Even when a file looks technical, it may include names, addresses, phone numbers, email addresses, purchase details, customer notes, internal manager comments, shipping details, coupons, and sometimes metadata from related extensions. Exporter configuration should therefore include not only format and schedule settings, but also rules for access, storage, and file deletion.
Files in Export List are stored for a limited time, but that does not make them risk-free temporary items. During that time, a user with admin access can download the file. If you send an export by email, a copy also appears in mailboxes. If you use FTP or SFTP, the file resides on an external server. If HTTP POST sends a request body to an integration service, the data passes through that endpoint. Every transfer method expands the data-access surface.
Minimize Fields
The simplest protection is not exporting unnecessary data. A warehouse often does not need billing fields. A CRM may not need the full order contents. A coupon auditor may not need a phone number. A developer looking for a meta key needs a test file on staging, not a complete historical customer export. A custom format helps create a minimal file without manual cleanup after downloading.
If you temporarily need Include all meta, treat the resulting file as diagnostic material. Do not send it externally, attach it to tickets without cleanup, or store it beside production files. Once you find the required meta key, disable all meta and add only the specific field.
User Roles and Workflow
Export access should belong to people who understand the consequences. Shop manager may be the appropriate role for operational exporting, but not for changing developer filters or transfer credentials. If the team is large, divide responsibilities: one person owns the format, another owns the schedule, and a third confirms receipt on the warehouse or CRM side. Then, when a failure occurs, it is clear who checks each point.
For manual actions, a simple internal instruction is useful: which format to choose, which status filters to use, when to enable Mark as exported, where to save the file, who to send it to, and where to record that it was accepted. Without such instructions, even a good plugin cannot prevent human error. This matters especially during sales periods, when order volume grows and manual export happens under time pressure.
Files, Email, and External Endpoints
If you use email, do not send files to shared mailboxes without access control. A business address with a restricted recipient group and a clear subject is better. If you use FTP/SFTP, check who can access the folder, how long older files remain there, and whether they are overwritten by filename. If you use HTTP POST, agree with the recipient on file size, content type, successful-receipt response, and behavior on repeated delivery.
The external system should return a clear success/failure signal. If an endpoint responds successfully but silently discards some rows, WooCommerce may consider the export delivered. During initial setup, ask the recipient to provide not only "the file arrived," but also the number of accepted orders, a list of rejected rows, and the reason for rejection. This is particularly important for custom fields and line-item formats.
Format Change Log
Any change to a custom format can break acceptance on the other side. Adding a column, renaming a header, changing a delimiter, switching row type, or enabling refunds all affect the file. Keep a small log: the change date can be stored in internal documentation, but dates are not needed in the guide HTML itself. The log only needs to say what changed, why, who checked it, and which test order was used.
If the file recipient is an external CRM or warehouse, notify them of format changes in advance. A reliable order is: create a copy of the format, test it with a test file, agree it with the recipient, switch the automated export, then leave the old format disabled rather than deleting it immediately. If the new schema fails, you will have something to roll back to.
Troubleshooting: When an Export Gets Stuck, the File Is Unreadable, or Data Is Incomplete
Investigate by symptom. The exporter has several separate layers: data selection, file creation, background processing, scheduling, transfer method, and file interpretation by the recipient. If all of this is reduced to one question - "the plugin is not working" - you can spend a long time changing settings unrelated to the real issue.
The Export Remains Queued or Gets Stuck
Symptom: the modal shows processing for too long, Export List does not provide a completed file, or a scheduled export never finishes. One possible cause is that the site blocks its own HTTP requests while background processing requires loopback connections. Documentation lists common causes: maintenance mode or a blocking plugin, BasicAuth on staging, a developer's hosts file, hosting-level loopback blocking, and options-table limitations in some environments.
What to check: the Background Processing Test in WooCommerce > Status > Tools, BasicAuth, maintenance mode, firewall rules, WooCommerce logs, and whether the server can reach the site's public domain. How to fix it: temporarily remove the block on staging, configure loopback access, ask hosting support to check server-to-self requests, or configure a server cron. Roll back changes that expose the site more broadly than necessary, such as disabling BasicAuth on production without compensating controls.
The Automated Export Runs at the Wrong Time
Symptom: the file appears later than scheduled or does not appear on a low-traffic site. The likely cause is that WP-Cron depends on visits when no server cron is configured. Check the WordPress time zone in Settings > General, the Export List history, and the actual run time.
Fix: configure a server cron that regularly invokes WordPress cron, or use an external ping service as a less rigorous alternative. If the store is time-sensitive, server cron is preferable. Do not try to fix delays by changing the filename, delimiter, or custom format: those settings do not control job triggering.
The File Opens in Excel as One Column
Symptom: the CSV downloaded, but all data appears in the first column. Most commonly, local Excel expects a different delimiter, such as a semicolon instead of a comma. Check custom CSV format settings and import the file through the import wizard, where you can select the delimiter.
Fix: change the CSV delimiter in the custom format and repeat the export. Do not edit every file manually when the workflow recurs. If the recipient is in another locale, agree on the delimiter in advance and document it in the format.
Cyrillic, Diacritics, or Special Characters Display Incorrectly
Symptom: names, addresses, or notes display with incorrect characters. One possible cause is that the spreadsheet editor detected the encoding incorrectly. Documentation suggests enabling BOM through the wc_customer_order_csv_export_enable_bom filter. Also check which application the recipient uses to open the file.
Fix: add the documented BOM snippet on staging, repeat the export, and compare the file in Excel, Google Sheets, and LibreOffice. If the issue occurs only in a particular Excel version, it is safer to document the recommended CSV-import method for the recipient than to change the entire integration workflow.
A Custom Field Is Missing from the File
Symptom: the order is present, but a custom checkout field, admin custom order field, or add-on value is absent. Possible causes include an incorrect meta key, data stored outside order meta, a required compatibility option not enabled in a related extension, a custom format without the data source, or a selected row type where line-item meta is not available as a separate column.
What to check: extension documentation, the official compatible plugins list, a test export with Include all meta, the field ID, and whether the specific order contains a value. Fix: add the correct data source to the custom format, enable CSV export support in the extension if required, or use developer filters only after confirming how the data is actually stored.
An Order Is Missing from a Scheduled Export
Symptom: the order is visible in WooCommerce and has a qualifying status, but the automated export skips it. Check Mark as exported, exported status in order details, automated-export filters, order date, payment status, and whether the order has already been included in this automated export. Documentation separately warns that orders placed before the plugin was activated are not automatically exported on their own, though they can be marked as exported if needed for queue behavior.
The fix depends on the cause. For a test order, you can restore the required exported state. If the filter is too narrow, change export options. If the order is old and needed in the first run, perform a manual export or prepare its status so automation does not create duplicates. Roll back mass changes to exported status if the team does not understand how they affect future automated exports.
An SFTP Test Says the SSH2 Extension Is Not Installed
Symptom: when configuring SFTP, the test reports that SSH2 Extension is missing. This is a server-side PHP limitation, not a CSV-format issue. Documentation says to contact the hosting provider; on WordPress.com, this extension may be unavailable, in which case another FTP type must be selected.
Fix: ask hosting support to confirm the PHP SSH2 extension or use another transfer method. Do not keep passwords in notes, send them to contractors in plain text, or try random ports without understanding the server policy.
A Large Export Is Slow or Ends with an Out-of-Memory Error
Symptom: a large file takes too long to build, the server reports a memory error, or the process fails. Documentation states that the plugin aims to stream exports and that this requires the MySQLi extension to be enabled and used by WordPress. In rare cases, the extension is installed but WordPress does not use it; documentation names WP_USE_EXT_MYSQL as a possible fix.
What to check: PHP extensions at the host, WooCommerce logs, data-set size, filters, a custom format using all meta, the number of line items, and refunds. Fix: confirm MySQLi with hosting support, reduce the data set, remove all meta from the production format, and split historical exports into periods. Change wp-config.php only with a developer and a quick rollback option.
WooCommerce Customer Order Coupon Export FAQ
Can I use the plugin only for manual CSV export?
Yes. Manual export through WooCommerce > Export and bulk actions on orders/users lists is a complete workflow. Automation is necessary only when the file must be delivered on a schedule or immediately after an event. Even for manual use, configure a custom format so you do not need to clean up the file after every download.
Why is a registered user missing from customer export?
The official FAQ explains that a user becomes a customer for this export after placing at least one order. If you need a list of all registered users, that is a different export type or a developer-level query-arguments configuration. Do not call the missing user an error until you verify whether they have placed an order.
Can I export refunds?
Yes. Documentation lists a refunds option in Export Options and additional fields such as refunded total for formats that require them. Test with an order that has an actual refund, because the existence of a refund and how its details appear in file rows are different things.
Can I add custom order fields without code?
Often, yes. Custom formats can add a meta field if you know the meta key, and some compatible extensions add fields automatically or through a documented data source. Code is needed only for cases not covered by the format builder or documented compatibility.
Why does Excel hide the first zero in a ZIP code or open the CSV incorrectly?
Excel can interpret a ZIP code as a number and hide the leading zero. The delimiter also depends on the system locale. Check CSV import through the import wizard, format the column as text, and change the delimiter in the custom format if needed. For encoding issues, use the documented BOM filter and test the outcome.
Is background processing required?
For a simple manual export where you keep the modal open, it may not be critical. For automated exports and convenient background processing of large files, it is effectively required. If the background processing test fails, resolve the loopback/WP-Cron issue first, otherwise scheduled export will be unreliable.
Is the plugin suitable for product export?
No. Its primary area is customers, orders, and coupons. For products, use the built-in WooCommerce product CSV tool or Product CSV Import Suite when you need a more advanced catalog workflow.
Can I send files through SFTP on any hosting provider?
No. SFTP requires the PHP SSH2 extension. If the test reports an SSH2 error, contact the hosting provider or choose another transfer method. Do not attempt to work around this by manually placing passwords in third-party locations.
When WooCommerce Customer Order Coupon Export Is a Good Choice
Use the plugin if your store needs repeatable, verifiable exports of orders, customers, or coupons in CSV/XML rather than an occasional one-off spreadsheet. Its strengths become clear after configuration: recipient-specific custom formats, manual and automated exports, transfer methods, Export List, background processing, and exported status to prevent duplicates.
Before a live launch, follow a short path: one test order, a manual export, file validation, a custom format, a test transfer, then an automated export. If the store includes custom fields, coupons, refunds, Subscriptions, Checkout Add-Ons, Admin Custom Order Fields, or another source of nonstandard data, add a separate test for each detail. Prove the outcome with a small data set first, then expand the workflow.
If this workflow fits your needs after testing, you can download the installation file and test it on a site copy or in a limited live workflow. Do not begin with a complete historical export of every order. First configure the format, permissions, schedule, and outcome monitoring.
The conclusion is straightforward: this exporter works well when WooCommerce data must regularly leave the store in a clean structure. It does not replace analytics, correct source orders, or make an external integration reliable on its own. But when you understand the source data, format, delivery method, and validation process, it turns exporting from a manual routine into a manageable workflow.


