How Do I Let Customers Cancel an Order Before It Ships?

By Alva Chew 6 min read Updated November 11, 2026

Catch the request in the chat, check the order is still unfulfilled, and cancel it there and then. AeroChat verifies the customer against the order in Shopify, confirms nothing has shipped, and cancels the order with the refund option you choose. If the order has already shipped, it explains your return process instead. For EU customers you still need the withdrawal button the law requires. AeroChat handles the conversations around it.

Shopify behavior from Shopify’s help center: Canceling orders and Self-serve returns and cancellations, both checked 11 November 2026.

Why it happens

Cancel requests are time-sensitive. A customer emails “please cancel”, the message sits until morning, and by then the warehouse has packed the parcel. Merchants on the Shopify Community describe other gaps too. Some found there is no dedicated webhook when a customer submits a self-serve cancellation, so their own systems don’t hear about it. Others asked for a Shopify Flow trigger for cancellation requests, the same as there is for new return requests. A multi-vendor store wanted to cancel one vendor’s item without canceling the whole order.

The EU rule added pressure. Under Directive (EU) 2023/2673, applied from 19 June 2026, online traders selling to EU consumers need a withdrawal function. Our page on the EU cancellation button for Shopify covers it in detail.

What Shopify’s help center says

Per Shopify’s help center, checked 11 November 2026:

  • Paid orders with no items fulfilled can be canceled, and you then choose a refund option: the original payment method, store credit, or later.
  • After an order is partially fulfilled, it can’t be canceled. You can cancel the fulfillment first to make it eligible.
  • Orders handled by a third-party fulfillment service are canceled through that service.
  • Restocking and the customer notification are selected by default when you cancel.
  • With self-serve returns and cancellations set up, customers can request to cancel unfulfilled items from their order status page, and you approve or decline the request in the admin.

The usual fixes and their limits

  • An email address for cancellations. Simple. Requests are only caught when someone reads them, which is often after fulfillment has started.
  • Shopify’s self-serve cancellations. Built in and tied to your rules. The customer has to find the order status page, and you still review each request.
  • A cancellation or order-editing app. Adds a cancel window on the order status page. It covers customers who look for it there, not the ones who message you.
  • Holding every order for an hour. Gives time to cancel, and slows every other order down.

How to handle it in chat with AeroChat

The customer messages wherever they are. AeroChat verifies them against the order in Shopify and checks its fulfillment status. If nothing has shipped, it confirms which order and cancels it, with the refund going back the way you set: the original payment method, or store credit if the customer prefers and you allow it. If part of it has shipped, it tells the customer what has gone and offers a return for the rest. Your team sees the cancellation in Shopify as usual.

Customer: I ordered the wrong color, can you cancel my order? (example)

AeroChat: Of course. Can you share your order number and the email you ordered with?

Customer: #6021, priya@example.com

AeroChat: Thanks, Priya. Order #6021 hasn’t shipped yet. It has one Linen shirt in olive, size M (example). Shall I cancel it and refund US$58 to your original payment method?

Customer: Yes please.

AeroChat: Done. Order #6021 is canceled and the refund is on its way. Would you like me to check whether the shirt is in stock in another color?

In Shopify: order #6021 is canceled, the item is restocked and the refund is issued to the original payment method.

Copy this into AeroChat

When a customer asks to cancel an order, follow these steps.

  1. Ask for their order number and the email or phone number they ordered with. Verify them against the order in Shopify.
  2. Check the fulfillment status. If no items are fulfilled, confirm the items and total, then cancel the order, restock the items and refund to the original payment method.
  3. If the customer asks for store credit instead, refund to store credit.
  4. If any item has shipped, do not cancel. Tell them what has shipped and offer to open a return request for it.
  5. If the order is handled by our fulfillment partner, hand the conversation to our team straight away with the order number.

For EU customers who ask how to withdraw, also give them the link to our withdrawal function: [your link] (example). Reply in the customer’s language.

Put in your own refund rules and withdrawal link before you paste it.

What to connect

  • Your Shopify store. Built in. Install AeroChat from the Shopify App Store and connect your store. AeroChat verifies the customer, checks fulfillment and cancels the order there.
  • Your cancellation policy. Add it to AeroChat’s knowledge, with any cutoff time and the items you can’t cancel, such as made-to-order goods.
  • Your channels. Connect WhatsApp, Instagram, Messenger and email so cancel requests are caught wherever they arrive. See also order cancellation.

Questions

Can AeroChat cancel an order that has already shipped?

No, and Shopify’s help center says partially fulfilled orders can’t be canceled either. AeroChat explains what has shipped and offers a return. See starting a return in chat.

Can I limit which orders it cancels?

Yes. Write the limits into your recipe, for example only within two hours of ordering, or never for custom orders. Anything outside them goes to your team.

Does chat replace the EU withdrawal button?

No. Keep the withdrawal function on your store. AeroChat answers questions about it and cancels unshipped orders on request.

Can it cancel a cash on delivery order?

Yes, if it is unfulfilled. No payment was collected, so there is nothing to refund. See confirming COD orders before shipping.

Using a different system? If it has a public API, it connects to AeroChat the same way: describe what you want, paste in its key, and it runs.

Can’t find your tool? Message us in the chat on this page and we’ll tell you how it connects.

Catch cancel requests before they ship

Install AeroChat, paste the cancellation recipe, and ask your own store chat to cancel a test order.

Install AeroChat on Shopify

7-day free trial.