A monthly sales report can look correct while still missing refunded orders, shipping taxes, product variations, or orders created before a store migration. That is why learning to export WooCommerce orders is more than a CSV task. A useful export must match the question you need to answer, whether that is accounting reconciliation, fulfillment, customer analysis, or a backup before making store changes.
WooCommerce stores order data across several related records. The order itself, line items, taxes, coupons, shipping methods, refunds, and customer details do not always fit neatly into one spreadsheet row. A reliable process starts with defining the output you need before selecting fields or clicking Export.
Decide what your order export needs to answer#
Start with the intended use. An accountant may need order number, payment status, tax totals, shipping totals, refunds, and transaction dates. A fulfillment team needs recipient details, SKU, quantity, variation attributes, shipping method, and customer notes. A marketing review may focus on first-time versus returning customers, coupon use, products purchased, and order value.
Trying to build one universal file for every purpose usually creates a spreadsheet that is difficult to read and easy to misuse. It is better to maintain separate export presets for finance, operations, and reporting. This also reduces the amount of customer information shared with staff who do not need it.
Before exporting, document three decisions: which order statuses count, which date controls the report, and whether totals should include refunds. Those choices affect every number in the file.
For example, a sales report based on the order creation date tells you when customers placed orders. A payout reconciliation may need the paid or completed date instead. If you include only completed orders, you may exclude valid paid orders that are still processing. If you include refunded orders without their refund amounts, revenue will be overstated.
Choose the correct date range and statuses#
Date filters are one of the most common causes of inaccurate WooCommerce reports. Orders may be created late on the last day of a month, paid the next day, and completed after shipment several days later. There is no single correct date field. There is only the field that fits the business process being measured.
For routine accounting, use a consistent rule approved by whoever handles the books. For fulfillment, filter by orders that require action, normally processing and on-hold orders, depending on your payment workflow. For historical analysis, include completed, processing, and refunded records, then show each status clearly in the export.
Be cautious with canceled, failed, pending payment, and draft orders. They can be valuable for diagnosing checkout problems or payment failures, but they should not be counted as sales. Test orders should also be excluded or labeled. A simple order note or a dedicated test product makes this easier to manage over time.
Time zones deserve the same attention. WooCommerce and reporting tools may use the WordPress site time zone, UTC, or the server configuration. If a store sells internationally or closes its books at a fixed local time, confirm the setting before comparing an export with payment processor data.
How to export WooCommerce orders with useful fields#
WooCommerce provides basic order management tools, but stores often need a dedicated order export feature or extension when they require scheduled files, custom field selection, repeatable templates, or line-item-level data. The exact interface varies by tool, yet the workflow is similar: filter orders, select fields, set the output format, preview results, and save the configuration for later reuse.
For an order-level export, include the order ID or number, status, creation date, paid date if available, currency, subtotal, discounts, shipping, tax, refund total, order total, payment method, and customer identifier. This provides a usable financial and operational record without forcing every product detail into the same row.
For a product-level export, use one row per line item. Include the order number on every row, then add product name, SKU, variation, quantity, line subtotal, line discount, line tax, and line total. This format is better for inventory planning, supplier reporting, and product performance analysis.
Do not mix these two layouts without planning for duplicated totals. If an order contains three products, an order-level total repeated on all three line-item rows will inflate revenue when someone sums the column. Either keep order totals in a separate order report or use formulas and pivot tables that count each order once.
Custom checkout fields need special attention. Delivery instructions, business tax IDs, requested delivery dates, and other custom values are often saved as order metadata. Confirm that your export method can access the needed metadata and gives it a clear column name. A blank column does not always mean the data is absent. It may be stored under a different meta key or only exist on orders created after a checkout change.
Use CSV carefully and preserve data quality#
CSV is widely compatible with spreadsheets, accounting systems, and warehouse tools, but it has limitations. Values containing commas, quotes, or line breaks must be properly escaped. Leading zeros in postal codes, phone numbers, and order references can disappear when a spreadsheet opens the file automatically. Long transaction IDs may be converted into scientific notation.
When importing a CSV into Excel or another spreadsheet application, use its import function rather than double-clicking the file. Set columns such as order numbers, SKUs, ZIP codes, and phone numbers to text where appropriate. Verify that date columns use a recognized format and that decimal separators match the destination system.
UTF-8 encoding is generally the practical choice for stores with customer names, addresses, or product titles containing accented characters and non-English text. If a downstream accounting or shipping system requires a different encoding, test a small export first. A technically valid file can still fail when the receiving platform has strict field or character requirements.
For recurring exports, use stable column names and column order. Renaming `order_total` to `total` may look cleaner, but it can break an import mapping or a spreadsheet maintained by another team member. Consistency is usually more valuable than a cosmetic adjustment.
Handle refunds, taxes, discounts, and shipping separately#
The order total is not always the sales number you want. It can include shipping and tax, and it may not reflect later partial refunds in the way your report expects. A store that offers frequent discounts or split refunds needs more than a single total column.
Export separate values for product subtotal, coupon discount, shipping charge, shipping tax, product tax, refund amount, and final paid amount when possible. This makes it easier to reconcile with payment processor settlements and to see whether discount activity is reducing margin more than expected.
Tax reporting depends on how taxes are configured and where the business has obligations. Do not assume an exported tax total is ready to file. Check whether the figure includes refunded tax, shipping tax, and taxes collected for different jurisdictions. If an automated tax service or external accounting platform is involved, compare a sample period before relying on an automated import.
Currency is another frequent complication. Stores selling in multiple currencies should export both the order currency and the amount charged in that currency. Converting every order to a home currency is useful for management reporting, but the conversion rate, source, and conversion date must be defined. Otherwise, two reports for the same month can produce different totals.
Protect customer data in every export workflow#
Order exports commonly contain names, addresses, email addresses, phone numbers, and sometimes business details. Treat the file as confidential business data, not as an ordinary spreadsheet attachment.
Export only the fields required for the task. A warehouse may need recipient name and shipping address but not payment method details or customer lifetime spending. A product performance report may need no personal data at all. Data minimization reduces risk and makes compliance work simpler.
Store exports in access-controlled locations, use meaningful file names that include the reporting period, and avoid sending unprotected customer files through informal channels. Set a retention rule as well. Keeping every export forever increases exposure without necessarily adding business value.
If several people run exports, create a short internal procedure: approved statuses, date basis, fields, file naming convention, storage location, and the person responsible for checking totals. This is a small operational control that prevents large reporting disputes later.
Validate the first export before automating it#
Before scheduling a daily or monthly export, compare a limited date range against the WooCommerce Orders screen and your payment provider. Select several orders with different conditions: a standard paid order, a discounted order, an order with multiple items, a partial refund, and an order using a product variation.
Check that the order count matches, IDs are unique where expected, line items appear correctly, taxes are not duplicated, and refunds reduce the appropriate values. Also test how canceled or failed payments are handled. This takes less time than correcting a quarter of inaccurate reports.
Once the output is verified, save the field mapping and filters as a named preset. Review it after major WooCommerce updates, checkout changes, new payment gateways, tax configuration changes, or a migration to custom order tables. Changes to store structure can affect how plugins read and export data.
A good order export is quiet operational infrastructure. It gives finance dependable numbers, fulfillment clear instructions, and store managers evidence for decisions without creating another manual task. Build the process around the decisions your business makes every week, then keep the file structure stable enough that those decisions remain comparable over time.