How To Set Up Partial Refund Reports In WooCommerce

If you are an online retailer that uses WooCommerce, you may have come across an issue that causes all manner of problems for sales, refund and tax reporting purposes.

That issue is connected to refunds. In WooCommerce, an order is only marked as ‘Refunded’ if the WHOLE order is refunded. That includes product fees, shipping and taxes.

But for many online retailers – especially those in fashion and clothing – it is quite unique to refund an entire order.

Users may purchase a few products with different sizes to see what fits, and then return one or more of those items. For smaller e-tailers especially, it is down to the customer to return the products, for which they will receive a refund. BUT, quite often, the orginal shipping / delivery costs won’t be refunded.

Therefore in WooCommerce, the order will either be marked as Completed or Cancelled, but not Refunded.

In addition, WooCommerce (helpfully) may also capture an order that is incomplete, and if the order isn’t fulfilled, or the payment session times out, it will be marked as Cancelled.

In turn, this then means it is very difficult to run an accurate report that shows sales coming into the business, and a refund report showing funds exiting the business.

But, as you’ll see when you check through order refunds, WooCommerce does capture data relating to partial refunds. And if that data is captured, then it is possible to report on it.

Partial Refund Reporting Data - WooCommerce


For those that use WooCommerce, you’ll know that the reporting function is pretty useless.

For most retail clients I recommend using the Advanced Order Export for WooCommerce plugin. There is a free version which does everything you need, but the Pro version is only $25, and worth forking out for as it allows multiple ‘profiles’ set up, and allows automatic, scheduled reports, configured by you.

Once you’ve installed the plugin, head to Scheduled Jobs, then, using the dropdown select Order Refund:

Partial Refund Reporting - WooCommerce

Next, you can then configure the report to spit out the data you need. Specifically:

Title – whatever you like. I run the reports monthly, and create two separate reports – UK refunds and Rest Of The World refunds (for post-Brexit tax purposes).

Schedule – when you want the report to run (I choose first day of each month)

Export date range – Last month

Filter orders by – you can either select Order Date here, or I prefer modification date as it orders the results by the date of the refund (usually the last order modification)

Export filename – usually Refunded-Orders-UK-%y-%m.csv for UK refunds, and renamed for other locations.

Format – export as CSV. Exporting as XLS sometimes causes memory and server issues if the report contains lots of data.

Sort orders by – Modification date, as mentioned above

Set up fields to export – this bit is really up to you, depending on what data you need to export. I simply go for Order Number, Order Status, Order Date, Country Code (Billing), Order Total Amount, and Payment Method.

Order Total Amount is deceiving, as you’d think you don’t want the order total, but more-so the refund total. But because the job you’re running is an Order Refund report, the Order Total Amount means the total amount refunded. Confusingly.

Destination – I select emails, but you can also send the report over FTP.

Filter by billing – if you need to split out the reports by country, this is the place to do it. For the UK report I include the UK and GB, and for the Rest Of World I simply omit (<>) the UK.

Click Save settings at the bottom to ensure everything is saved.

You can then hit preview to see what the data looks like before exporting;

Advanced Order Export plugin - WooCommerce - Preview

Next I would then export the data to see what it looks like in a CSV file.

Hopefully it covers everything you need, and you’ve successfully managed to set up a partial refund report in WooCommerce!

Advanced Order Export plugin - WooCommerce - CSV file

Leave A Comment