USE CASESBuild self-service cancellation and the obvious design presents itself immediately: the customer clicks Cancel, the order is cancelled, everybody saves time.
It is the wrong default for most stores, and the reason is not what people expect. It is not about trust, and it is not about making cancellation deliberately hard.
Read a month of cancellation emails and sort them by the reason underneath the reason. A rough pattern emerges.
Only the first group is unambiguously a cancellation. The others are a customer with a fixable problem, and an instant-cancel button turns all four into the same outcome without anyone finding out which was which.
That is the argument. It is not “make it hard so they give up”. It is: a cancellation click is a signal, and instant cancellation discards it.
A request form with a reason list does two jobs. It routes the individual case, and — over a few hundred requests — it tells you something about the store that nothing else will.
A spike in “taking too long” is a delivery-expectation problem, and the fix is a date on the confirmation email, not a change to your cancellation policy. A spike in “ordered the wrong variation” is a product-page problem. A spike in “found it cheaper” is a pricing problem. In each case the requests are telling you where to look, and you only get that data if you ask.

This position deserves a real opponent, so here is the strongest version of the other side.
Friction is friction, and customers notice. Somebody who wants to cancel and is told “we will get back to you within 24 hours” has been given a delay, not a service. If they ordered by mistake at midnight, waiting until tomorrow to be told yes is worse than a button.
Some people will not wait. They will call their bank and dispute the charge. A chargeback costs you the fee, the goods, and a mark against your merchant account — much more than the salvage attempt was ever going to be worth.
It looks like a dark pattern, whether it is one or not. Retail is full of easy-to-buy, hard-to-cancel. Your genuine operational reason is invisible to a customer who has met that pattern before.
It is work. A queue somebody has to read is not free. Instant cancellation costs zero staff time forever.
Every one of those is true. The response is not to dismiss them but to draw the line so that they mostly do not apply.
Unpaid orders should cancel instantly. No money captured, no stock committed, nothing to salvage — the customer never completed the purchase. WooCommerce already does exactly this: the cancel link on the orders list is limited to pending and failed by default, and that default is well-judged. Do not add friction where core sensibly has none.
Paid orders should be a request. Money has moved, stock is committed, and somebody may already be packing. This is where the conversation has value and where an automated decision can be expensive — the mechanics of setting this up come down to which statuses you allow and what happens to stock and refunds.
Two sensible refinements:
All of the counter-arguments above collapse into one thing: the wait. Fix the wait and the objection mostly goes away.
State a response time and keep it. Show it in the form, before they submit, and repeat it in the confirmation email. A promise of four hours that you keep is better than a promise of one hour that you miss.
Acknowledge instantly. The email confirming the request should arrive in seconds, with the order number, what they asked for, and when they will hear back. Most of the anxiety in this situation is not “will they say yes”, it is “did anyone see this”.
Make the queue visible to your team. A counter in the admin menu, an email on every new request, and the request visible on the order screen so a colleague does not pack something that is under review. Cancellation is the most time-critical of the four support categories — an unread request becomes a chargeback in a way an unread WISMO email never does.
Say what happens next, precisely. “We will cancel and refund within two working days” is reassuring. “Your request is pending” is not.
Two cases, and if you are in either of them, ignore everything above.
You cannot answer quickly. If requests will sit for two days because the person who reads them is also the person who packs, do not build a queue. A wait that long is worse than either alternative — you get the friction and the chargebacks. Either commit to a response time or allow instant cancellation and accept the lost salvage.
Digital goods. No stock, no picking, no shipping, and nothing to salvage operationally. The whole argument is about physical fulfilment. Cancel instantly and refund.
The default is a request. The exceptions are real, and knowing which one you are in is the actual decision.