How to Cancel an order and charge a fee?

Not sure if this is the right place, but couldnt find.

If we wanted to cancel an order and charge a fee (say for the merchant fees), what woudl be the best avenue to do this?

right now, the only way I can see to do this is to ship it, and then return it with a fee?

@ChrisBradley : For a paid, unfulfilled order, the merchant can:

  1. Go to Orders → Cancel order

  2. Select Refund later

  3. Cancel the order.

  4. Later issue a partial refund — e.g. $95 refund on a $100 order, retaining $5. Shopify explicitly says the “Refund later” option is intended for cases where you want to issue a partial refund.

    Hope this is helpful..

hey @Satish_Mantri

Thanks for the info, the issue with that process is that we will be carrying an outstanding balance on the order, instead of say __typename = RestockingFee so the balance is carried forever on the order (and accounting sytem)

You make fair point about the order carrying an outstanding balance @ChrisBradley.
I can’t think of a better workaround that would look clean in an accounting system so I’ll submit a feature request on your behalf for a native cancellation fee solution.

@ChrisBradley : You need to create an app.

As per my research what I see looks like the solution is :

Amount
Original merchandise $100
Restocking fee ( via app order edit ) +$5
Subtotal $105
Cancellation/fee adjustment discount -$5
Final order total $100
Already paid $100
Refund -$95
Merchant retains $5
Outstanding customer balance $0

There is a way to keep the order balanced. Instead of cancelling, run an order edit, drop the line item quantities to zero, and add a custom line item for the cancellation fee with orderEditAddCustomItem, then refund the difference. The order total ends up being just the fee, the balance closes at zero, and accounting sees a real fee line instead of a permanent outstanding amount.

Trade off is that the order stays open rather than showing as cancelled, so if the cancelled status matters for reporting you would tag it and filter on that instead.

@Paige-Shopify

thanks, yeah I have gone through the docs pretty deep and couldnt find it either.

Ideally is uses the same type of return and exchanges “additionalFee/Fee” to keep consistency.

@Adam_Charvat Interesting idea which would work, but you would loose the ability to report of cancellation easily.

We could also “dispatch the item, then Return and Exchange it with a Fee”

I think given the logic flow exists for Fee/AdditionalFee on Returns and exchange I think the best longer term solution is to add the logic to cancellation as there are businesses out there that do this flow.

thanks, yeah we could do in App, but I wanted to keep it natively within shopify Admin.