Order Cancellations
Order Cancellations lets your customers cancel their own orders directly from the order editing block on the thank you page and order status page. You control how refunds are issued, whether restocking fees apply, and what reasons customers can choose from.
⚠️ Order cancellations aren't right for every business. If you sell made-to-order products, perishable goods, limited-edition items, or your warehouse begins fulfilment immediately after checkout, self-service cancellations could cause issues. Consider whether your operations can handle a customer cancelling within minutes of placing an order before turning this on.
Getting Started
Toggle Allow customers to self-service cancel their order to enable this block.
Before you turn this on, you'll also need Order Downgrade enabled in your settings. A cancellation is technically a full order downgrade (reducing the order value to zero), so if Order Downgrade is off, the cancellation option won't appear for your customers. Go to Settings > Order Downgrade and make sure it's toggled on first.
Refund Methods
When a customer cancels, they need to be refunded. You choose how that refund is handled. There are three options, and you can only select one at a time.
Refund to payment method (Recommended)
The customer gets their money back to whatever they paid with, whether that's a credit card, PayPal, Apple Pay, or any other payment method. This is the default and recommended option for most stores. It's what customers expect, and it keeps the experience straightforward. The refund is processed through Shopify's standard refund system, so processing times depend on the customer's payment provider (typically 5-10 business days for credit cards).
Refund to store credit
Instead of returning money to the customer's payment method, the refund is issued as store credit. This keeps the money in your ecosystem and encourages the customer to come back and purchase something else.
This works well for fashion, beauty, and lifestyle brands where customers are likely to reorder. It's also a good option if you want to soften the revenue impact of cancellations. Just keep in mind that some customers may push back if they expected a full refund to their card.
Refund through Shopify Flow
This is the most flexible option. When a customer cancels, no refund is issued automatically. Instead, a Shopify Flow trigger fires, and you build whatever logic you need around it. You could route the cancellation to a team member for manual review, apply conditional rules (e.g. only auto-refund orders under $50), send a notification to your ops team, or delay the refund until you've confirmed the order hasn't already shipped.
This is ideal for merchants who want a human in the loop before money goes back, or stores with complex refund policies that don't fit neatly into an automatic flow.
Restocking Fees
A restocking fee is deducted from the customer's refund when they cancel. This helps cover the processing fees you've already paid on the original transaction (Shopify's transaction fee, credit card processing fees, etc.).
You can set two types of fee, and they stack:
Fee Type | How It Works | Example |
Fixed restocking fee | A flat dollar amount deducted from every cancellation. | Set to $5.00. Customer cancels a $100 order and receives $95.00 back. |
Percentage restocking fee | A percentage of the order total deducted from the refund. | Set to 5%. Customer cancels a $100 order and receives $95.00 back. |
Both fees can be used together. If you set a $5 fixed fee and a 5% percentage fee on a $100 order, the customer receives $90 back. The customer always sees the fee amount and adjusted refund total before they confirm the cancellation.
💡 Tip: A restocking fee of 3-5% is a good starting point. It covers most standard processing costs without feeling punitive to the customer.
Advanced Options
Click Show advanced options in the app to reveal these settings.
Setting | Default | What It Does |
Show the order cancellation textbox | Off | By default, customers only choose a reason from the dropdown. Turn this on to add a free-text field where they can write additional context about why they're cancelling. Useful if you want more detail, e.g. a customer selects "Item is no longer needed" but explains in the textbox that the product doesn't work with their setup. |
Allow customers to cancel without providing a message | On | Lets customers cancel without selecting a reason or typing anything. Fast and frictionless, but you lose all data on why they cancelled. We'd recommend turning this off for most stores. Requiring a reason gives you insight into trends, like if multiple customers cite shipping costs, that's a signal to revisit your strategy. |
Refund shipping insurance if it exists when cancelled | Off | Controls whether shipping insurance costs (from apps like Route or Navidium) are included in the refund. Most merchants leave this off since insurance is a third-party product. |
Provide customers with instant refunds to their payment method | Off | When on, the refund processes immediately at the time of cancellation. When off, the refund follows standard processing times. Instant refunds improve the customer experience, but some merchants prefer the delay for internal checks or reconciliation. |
Cancellation Reasons
When a customer cancels their order, they'll be presented with a dropdown to choose a reason for the cancellation. These reasons help you understand why customers are cancelling and give you data you can act on. The seven default reasons are:
- Found a better price elsewhere
- Item is no longer needed
- Delivery costs are too expensive
- The item was purchased by mistake
- The order is taking too long to arrive
- Changed mind about the product
- Shipping address is wrong
You can change any of these to better suit your business. Click the Translate button inside the Order Cancellations block to edit every reason.
Despite the name, this isn't just for language translation. It's how you customise the cancellation reasons to match your brand voice, your industry, and the way your customers talk. The reason a customer selects is stored on the Shopify order and in your Order Editing analytics, so making these specific and relevant to your business gives you more useful, actionable data.
📝 Examples:
• Brand voice: "Found a better price elsewhere" becomes "Spotted a better deal somewhere else"
• Language: "Item is no longer needed" becomes "El articulo ya no es necesario"
• Industry-specific: "Item is no longer needed" becomes "I no longer need this meal delivered"
• Set expectations: "Shipping address is wrong" becomes "My shipping address is incorrect and I need to re-order"
How It Works for Customers
- Customer completes checkout and lands on the thank you page (or returns to their order status page).
- Within the order editing block, they see a Cancel Order option.
- They select a cancellation reason from the dropdown (and optionally type a message if the textbox is enabled).
- They confirm the cancellation. If a restocking fee applies, they see the adjusted refund amount before confirming.
- The refund is processed based on your chosen method, minus any restocking fees.
Customers can only cancel during the editing window you've set. Once the window closes, the cancel option disappears.
FAQ
What happens to the Shopify order when a customer cancels?
The order is cancelled in Shopify and tagged with orderediting:cancelled. Depending on your refund method, the refund is either processed automatically or triggered via Shopify Flow. Shopify also sends a cancellation confirmation email if you've enabled that in your notification settings.
Can I review cancellations before the refund goes out?
Yes. Choose Refund through Shopify Flow as your refund method. No refund is issued automatically, so you can build a Flow that adds a manual review step, notifies your team, or routes to specific people before processing.
Can I use both a fixed and percentage restocking fee?
Yes. They stack. A $5 fixed fee plus 5% on a $100 order means the customer gets $90 back.
Can I change the cancellation reasons?
Yes. Click the Translate button inside the Order Cancellations block. You can edit all seven default reasons to match your brand, language, or industry.





