Analyze WooCommerce Refunds with Claude: Spot Patterns Early
To analyze WooCommerce refunds with Claude, you name a period and ask which products get refunded most. Claude pulls the refunded orders through the WooCommerce add-on of MCP Self-hosted, opens each one for its line items and works out a refund rate per product. This post walks through that workflow, the data it rests on and where that data stops.
Why analyze WooCommerce refunds at all? One refund is a data point. Twelve refunds on the same product in six months is a supplier, sizing or listing problem you have not found yet. WooCommerce shows refunds one order at a time, so that pattern stays out of sight until someone builds a report by hand.
Why should you analyze WooCommerce refunds by rate, not count?
Because raw counts favour your best sellers. A product with 10 refunds on 500 orders has a 2% refund rate. A product with 3 refunds on 20 orders has 15%. Sorted by count, the first one tops the list. Sorted by rate, the second one does, and that is the product that needs a look.
So when you analyze WooCommerce refunds, ask for the rate and the order volume behind it. A rate on 4 orders says little. A rate on 60 orders is a finding.
Which data does Claude use to analyze WooCommerce refunds?
Claude reads your store through the WooCommerce REST API, with the read tools of the add-on:
woocommerce_list_ordersfilters orders by status (including refunded), a date range, a customer or a search term, up to 100 per page.woocommerce_get_orderreturns one order: status, customer name and email, total, payment method, creation date and the line items with name, quantity and total.woocommerce_get_productreturns a product with its SKU, prices and stock.
That is the full picture. The order output has no refund reason, no refunded amount per line, no order notes and no shipping address. There is no sales report tool either, so order volume per product comes from listing and opening orders.
How does the workflow run, step by step?
A typical run to analyze WooCommerce refunds, in the order Claude works through it:
- You name the period, for example “the last 90 days”, and the statuses that count as a sale, such as completed and processing.
- Claude lists the orders with status refunded in that window and opens each one for its line items.
- It lists all orders in the same window and opens them to count orders per product.
- It divides refunded orders by total orders per product and ranks the result by rate.
- It matches product names to SKUs with
woocommerce_get_productwhen you want SKUs in the table.
Step 3 is the expensive one. Every order is one call. On a store with a few hundred orders a month, a shorter window keeps the run fast. If your order data also sits in a database you can query, the Database add-on counts orders per product in one SQL query instead.
Where do the refund reasons come from?
Not from the add-on. When you analyze WooCommerce refunds through the API, the reasons are missing: WooCommerce stores a refund reason with the refund itself, and the order output of the tool does not include it. So the reason column stays empty unless you supply the reasons.
Two ways to fill it. Paste the reasons from your returns sheet or helpdesk export into the chat. Or put the Missive add-on on the same seat: Claude takes the customer email from the order, lists conversations for that address in a mailbox or team inbox you name, and reads what the customer wrote. That gives you reasons in the customer’s own words, which is often more useful than a dropdown value.
Which refunds does the analysis miss?
Partial refunds are the blind spot when you analyze WooCommerce refunds by status. An order with a partial refund keeps its original status, usually completed, so a filter on the refunded status does not catch it. If partial refunds are common in your store, tell Claude which orders to include, or count them separately in wp-admin.
Variations are the second gap. The add-on has no tool for product variations. Claude sees the line-item name and the parent product, so a problem with one size or colour only shows up when that detail is part of the line-item name.
Where does the refund pattern analyzer skill fit?
If you analyze WooCommerce refunds every month, the free refund pattern analyzer skill turns this workflow into a fixed procedure. It confirms the period with you first, ranks products by rate, groups reasons into a few buckets and marks products with too few orders as “not enough data yet” instead of raising a false alarm. Without the skill, you give Claude those rules in your prompt each time. With it, every run follows the same steps.
For the day-to-day side, the WooCommerce order triage skill handles orders one at a time as they come in. Triage is daily work. A refund analysis fits a monthly run or the weeks after a product launch.
Does Claude need write access to analyze WooCommerce refunds?
No. Every read tool above works on a read-only seat, and read-only is the default for the WooCommerce tool. You set the mode per seat in My Account → MCP Self-hosted → Seats.
Can make changes adds three tools: update an order status, add an order note and update stock. None of them pays money back. The add-on has no tool that issues a refund through your payment provider, and no tool that deletes an order. Keep the seat you use for analysis on read-only.
Common misconceptions
“Claude sees why customers asked for a refund.” It does not. The reason field is not in the order output. Paste reasons in, or read them from the customer’s mail through the Missive add-on.
“A refunded-status filter catches every refund.” Partial refunds keep the original status and fall outside that filter.
“The refund rate is precise to the decimal.” It is as precise as the orders Claude counted. Check that the period and statuses match what you mean by a sale.
FAQ
How far back can Claude analyze WooCommerce refunds? As far as your order history goes. A long window means more calls, so start with one quarter.
Can it group by category instead of product? With your help. The product output has no category field. Give Claude the category ID and it lists the products in that category with woocommerce_list_products, then groups the refund rates by that list.
Does it work for more than one store? Yes. With several stores configured, Claude asks which store to use, or you name it in the prompt.
What does it cost? MCP Self-hosted is € 217,80 excl. VAT: € 180,00/yr including 3 seats, and the WooCommerce add-on is € 157,30 excl. VAT: € 130,00 per year. The skill is free.
Wrapping up
To analyze WooCommerce refunds with Claude, ask for a rate per product over a named period, supply the reasons the order data lacks, and keep partial refunds in mind. The result is a ranked list instead of a vague sense that “returns feel high lately”. For the store itself, follow the WooCommerce MCP setup guide.