Key Insights in 60 Seconds
Skim the highlights first, then jump to the setting you are about to change.
What You'll Learn
Somewhere in your inbox sit two requests that are never quite the same request. One says "cancel my order, I picked the wrong size". The other says "I want to send this back". Both are answered by hand, and both end with you opening the order, deciding, and clicking through a refund. Shopify can hand the first move to the customer, which leaves you two questions rather than one: whether to open that door at all, and how wide.
The volume behind those emails is not trivial: an estimated 19.3% of online sales would be returned in 2025 — an estimate for US online sales in the National Retail Federation's 2025 Retail Returns Landscape report, not a Shopify figure and not a statement about cancellations. What Shopify gives you is narrower and more useful than a benchmark: two settings pages, one activation with three modes, and a closed list of values. This guide is about setting them.
The Quick Verdict
Key takeaway
Find the row that sounds like your store; everything below it is the mechanics underneath.
Where you land, by store profile
| Your situation | Pick | Why |
|---|---|---|
| Orders leave the same day and your inbox is full of "cancel it" | Both request types, on a timed window | A duration closes on its own, so the queue stays small while your fulfilment stays fast |
| Fulfilment takes one to three days and you want fewer support emails | Both request types, Until item is fulfilled | It is the only value tied to your fulfilment state instead of a clock |
| Consumers in the EU buy from you, however occasionally | A return window of at least 14 days from delivery of the last item | That is Shopify's own EU guidance, and 14 days is the statutory withdrawal period |
| Everything is made to order or personalized | Return requests only, plus final-sale items | Final sale blocks both request types; personalized goods are never exempted automatically |
| Nobody reliably works a request queue today, whatever your fulfilment speed | Return requests only, cancellation window No cancellations | An unresolved request stays visible on the order, so a channel nobody reads costs more than the emails it replaces |
| You want different rules for different markets | Only if market-specific policies appear in your admin | The per-market override was in early access as of August 2026; the return window itself is a store-level setting you can change today |
What You're Actually Switching On, and Where
Key takeaway
Merchants tend to look for one switch called "returns". There isn't one. There is an activation that decides whether customers can raise requests at all, and there is a set of rules that decides what those requests may ask for. They sit on different settings pages, and the order matters: customer-raised requests only exist once the activation is on, and it is those the rules police first. The rules are not idle without it, though — even with self-serve returns and cancellations deactivated, return rules still apply when you process returns manually from the admin.
The cancellation half is also the newer one, which is worth knowing if you have looked at this before. Shopify added cancellation requests to self-serve returns on June 18, 2026, together with the ability to configure return and cancellation rules per market — a layer Shopify's return rules page labels early access and available only to certain merchants, covered in full below — so a store that evaluated the feature earlier would have found returns and nothing else, and a settings page that looked different from the one described here.
Settings > Customer accounts — the self-serve returns and cancellations activation, plus the dropdown that decides which of the two request types customers get.
Settings > Policies — the return rules and cancellation rules: the two windows, where the return window starts counting, who pays return shipping, the restocking fee and the final-sale exclusions.
Return requests, cancel requests, or both
Key takeaway
Shopify documents the three modes in one line each: Return and cancel requests lets customers request both; Return requests only limits them to returns; Cancel requests only limits them to cancellations. Three boundaries come with that choice, and all are worth knowing before you pick:
- It is all or nothing across order types. Self-serve returns and cancellations work with all orders, including B2B orders, and the feature cannot be activated for specific types of orders only.
- On B2B, two people can act. If you use B2B in Shopify, both the B2B customer who placed the order and the location admin can request returns or cancellations.
- Item eligibility differs by request type. Customers can submit return requests only for items that are fulfilled, and cancellation requests only for items that haven't shipped yet. On an order that holds both, they can act on each item separately.
Do you have to migrate to customer accounts first?
Key takeaway
This is the point where merchants most often stop, decide the whole thing needs an account migration first, and put the project down for a quarter. The requirements section says otherwise: giving customers access is a prerequisite, and publishing the customer accounts URL is one of the two documented ways to do it.
Add the URL for customer accounts to your store's footer, refund policy, or another page in your store. If you don't want to upgrade to customer accounts, then this option lets you continue using legacy customer accounts in your online store and checkout, and gives customers access to request a return or cancellation.
Read that alongside the sentence in the same page's considerations — "Self-serve returns and cancellations don't work with legacy customer accounts" — and the two are about different subjects. The considerations sentence describes the experience of a shopper signed in through a legacy account; the requirements section describes the route that puts the request buttons in front of a customer. The account system that carries the feature is the new one. What you are not forced into is rebuilding your login, your account templates and everything hanging off them before your first request can arrive.
If you are weighing the upgrade on its own merits — Multipass, custom Liquid account templates, apps living on account pages — that is a separate project with its own timeline, and our guide to the Shopify customer accounts migration covers what breaks and what the upgrade path looks like.
A Request Is Not a Cancellation
Key takeaway
The fear that stops most merchants is that a self-serve button means self-serve outcomes — that somebody will cancel a picked-and-packed order at 4pm on a Friday. That is not what the feature does. Both request types are requests: they arrive attached to the order, naming the items, and they wait for you. The two flows then diverge more than most people expect.
What each request type actually does
| The question | Cancellation request | Return request |
|---|---|---|
| Which items can it cover? | Items that haven't shipped yet | Items that are fulfilled |
| What happens the moment it lands? | Nothing. The order's state does not change on its own | Nothing until you act: you review the request and decide |
| How do you say yes? | There is no approve button — you remove the requested items from the order through the standard refund flow | You approve it, and can add exchange items and select how the customer returns the products |
| How do you say no, and what does the customer hear? | Decline request declines it and emails the customer; Mark as resolved closes it without changing the order and without an email | You pick a decline reason — internal only, never shown — and write the message the customer receives by email |
| What does it NOT touch? | The subscription contract behind a subscription order — you cancel that separately | Final-sale products and collections, which cannot be requested at all |
The customer side of this — what the button looks like, when it appears, and how a shopper reaches you when it doesn't — is a different question with its own answer; our FAQ on whether you can cancel a Shopify order covers what your buyer sees.
How you actually resolve a cancellation request
Key takeaway
The mechanics here decide whether your customer hears back at all, which makes this a support decision rather than a settings one. Shopify is direct about what the request does and does not do on arrival:
A cancellation request doesn't change the order's state on its own. You review and decide on every request.
Saying yes is not a button but a normal refund: Shopify's guidance is to remove the requested items from the order using the standard refund flow — the request carries the items, so you act on those lines rather than on the whole order. Removing the items is the action; the refund is the second half of it. If you remove items but choose to refund later, the request stays visible on the order as a reminder to follow through on the refund.
Saying no has two shapes, and they are not interchangeable. Clicking Manage request on the request banner opens a dialog with both: Decline request declines the cancellation and sends the customer an email, while Mark as resolved closes the request without changing the order and without emailing anyone — the option for a request you have already handled another way. Return requests work differently again: you select a decline reason that is for internal use only and is never displayed to your customer, and you write a decline message that the customer does receive by email.
Can you automate the queue?
Partly. Shopify Flow publishes a Return requested trigger that starts a workflow when a customer requests a return through self-serve returns, so tagging, internal alerts and routing can run without a human first touch — the decision itself still lands on a person. Which automation layer you should be running at all is a bigger question, and our comparison of Shopify Flow, Zapier and n8n answers it properly.
How Wide to Open the Cancellation Window
Key takeaway
Cancellation rules give you a single choice, and Shopify closes the list: the window can be set to No cancellations, Until item is fulfilled, 15 minutes, 1 hour or 24 hours. There is no custom duration here, unlike the return window. The values split into two kinds, and the split is what you are really choosing between: one value tracks the state of the item, three of them run on a fixed duration, and one closes the door entirely.
The five cancellation window values
| Value | What it means for the customer's button | Who it fits |
|---|---|---|
| No cancellations | No cancellation requests can be submitted at all | Stores with nobody to work the queue, or where every order goes into production immediately |
| Until item is fulfilled | The request route stays open while the item is still unshipped — cancellation requests only ever cover items that haven't shipped yet | One-to-three-day fulfilment, where a real gap exists between the order and the parcel leaving |
| 15 minutes | The shortest fixed duration Shopify offers | Fast-moving stores that want to absorb immediate wrong-variant regret and nothing else |
| 1 hour | A mid-length fixed duration | Same-day dispatch where an hour still sits inside your own handling time |
| 24 hours | The longest fixed duration on offer | Stores that dispatch next-day and would rather cancel than ship something the customer already regrets |
The trade is straightforward once the two kinds are separated. A duration is a promise you can keep only if your fulfilment is slower than the clock; set 24 hours on a store that ships in two hours and customers will hit a button that cannot help them. The state-tied value is honest in a way a duration is not, but it is not automatically more generous: on a store that fulfils in two hours, "until the item is fulfilled" is also about two hours — the difference is that it closes by itself, at the moment the item stops being cancellable anyway, instead of advertising a number you cannot honour. Either way you inherit the case in the next section: an order you would like to cancel, and an admin that will not let you.
When Your Admin Won't Let You Cancel at All
Key takeaway
This list is the reality check on the previous section. A generous cancellation window creates requests; these six cases decide how many of them you can actually honour. Read them as your ceiling, not as edge cases — the first one alone covers every store that ships part of an order early. Editing the order instead runs into a different list, and what to do when that one blocks you is its own question.
When you cancel orders in bulk, the Refund payment prompt might not be displayed. In that case all cancelled orders are refunded immediately, including orders that have already been refunded, which can trigger duplicate refund processing. The batch also has a hard ceiling: "you can only cancel up to 250 orders at one time", and Shopify asks you to narrow the search first when it returns more than that. Shopify's own guidance is to cancel orders individually when you need the Later refund option, or when any selected order has already been refunded. Full detail sits on the cancelling orders page.
One boundary worth stating plainly, because the words get mixed: a cancellation request and a chargeback are different mechanisms with different clocks and different consequences for you. What a buyer can escalate to, and what protects them when they do, is covered in our FAQ on whether Shopify has buyer protection.
The Four Dials Inside Return Rules
Key takeaway
Where cancellations give you one value, returns give you four. They are worth setting deliberately rather than accepting the defaults. The customer sees more of these settings than merchants expect: the restocking fee is displayed when they request a return, and where self-serve returns and cancellations are turned on, eligible items and return fees are displayed in the customer's account. Shopify separately documents that an estimated refund is displayed for customers based on your return rules. The return window may appear on your Shop app product pages. Which of these four dials a physical counter actually enforces is a narrower question than it looks: return rules on Shopify POS separates the ones POS applies for you from the ones it does not. Set them deliberately now, because changing them later is forward-only: an order already placed keeps the rules it was placed under.
What each return-rule dial decides
| Dial | What Shopify gives you | What the choice costs you |
|---|---|---|
| Return window | 14 days, 30 days, 90 days, Unlimited, or a custom number of days | A longer window means later requests on items you have already counted as sold; a shorter one pushes borderline cases back into your inbox as an argument |
| Where the window starts | Item's delivery, or Delivery of last item in order | On split shipments the first option runs several clocks at once; the second gives the whole order one clock that starts later |
| Return shipping cost | Free return shipping, a flat rate charged once per return, or the customer buys their own label | Free shipping is the option you fund entirely — and outside US domestic orders you fund a label bought outside Shopify Shipping; a flat rate is charged once per return |
| Restocking fee | A percentage of the return, displayed to customers when they request one | It recovers handling cost on returns you accept, and it is visible at the exact moment the customer decides whether to bother |
Where the return window starts counting
The Starting from menu holds two options and they behave differently on split shipments. Item's delivery starts the window on each item's delivery date, so a three-parcel order runs three clocks. Delivery of last item in order starts the window when the final item in the order is delivered, so the whole order shares one return window — the option Shopify points EU sellers at, for the reason covered further down.
One more box sits on the window itself: select Extend to account for weekends or holidays, and a window whose last day lands on a weekend or holiday extends to the next business day. It costs you a day or two and removes an argument you would otherwise have by email.
Who pays for the return trip
Key takeaway
Free shipping, a flat rate or the customer's own label reads like pure policy until you try to buy the label, at which point Shopify Shipping's own boundaries start to matter:
- Return labels are available only for US domestic orders. You can't buy them in Shopify for US military addresses (APO/FPO/DPO), US territories that require a customs form, or international addresses — those go through a carrier directly, a third-party service, or an app from the Shopify App Store. Choosing "offer free return shipping" does not change that: outside US domestic orders, you are still funding a label you buy somewhere else.
- The billing is friendlier than it looks. Return labels use pay-on-scan billing, so you aren't charged when you create the label, only after the carrier scans the package; they can't be voided but they can expire, and you aren't charged for labels you don't use.
- They are created at order level, not item level, and at least one item in the order must be fulfilled — so on a partial return, adjust the expected weight when you create the label.
The products that are never coming back
Key takeaway
Where the window is a promise you make to every order, final sale is the exception list you keep by hand. You add products or collections — one or the other, not a mix — and bundles cannot be set as final sale at all, so a clearance strategy that runs through bundled sets is outside this lever's reach.
This is also the answer to a question the settings do not answer on their own. Shopify states that digital goods and personalized products aren't automatically exempted from cancellations, and advises reviewing those orders manually before processing or declining a request. If you make things to order, the protection you are looking for is the final-sale list, not a shorter window.
Shopify states a plan requirement plainly: to use return rules with Shopify POS, you need Shopify POS Pro. If part of your returns happen at a counter, that gate belongs in the same decision as the windows — the retail side of this, including what happens when an online order comes back to a physical location, sits in our guide to running retail on Shopify.
Voided, Refunded, or Something in Between
Key takeaway
Back to the cancellation side for one section, because this is where it ends. Merchants often assume "cancelled" is one financial outcome. It is not, and the difference shows up in your reconciliation long after the customer has forgotten the order. What decides which state you land in is simply what had already happened to the money when you cancelled.
Payment status after a cancellation
| When you cancel the order | Payment status you end up with | What that means for you |
|---|---|---|
| The payment was not captured | Voided | Nothing was ever taken, so there is no refund to process and no processing cost to write off |
| The payment was fully refunded | Refunded | The money has gone back; the order is closed on both sides |
| You issue a partial refund later on a cancelled order | Partially refunded | A separate status, which is what you look for when a cancellation was resolved in two steps |
The third row is the one that catches people, and it follows directly from how cancellation requests are resolved: you remove the items through the standard refund flow, and if you remove items but choose to refund later, the request stays on the order as a reminder. A cancelled order and a fully refunded order are not automatically the same thing — the second step has to actually happen.
How long the money then takes to reach the customer is a different clock entirely, and one your support team will be asked about within the hour; our FAQ on how long a Shopify refund takes is the short version to send them.
One Policy, or One per Market
Key takeaway
The structure is two-layered rather than a per-market free-for-all. You set a default policy that applies to every market, and then add market-specific policies; each policy covers return rules, cancellation rules and final sale items, and when a market-specific policy exists, it applies to customers in that market instead of the default policy. What does not vary by market is the activation itself:
Turning on self-serve returns and cancellations remains a store-level setting that applies to all markets.
That division is the practical part. You cannot open self-serve in one market and keep it closed in another — the switch is global, and the differentiation happens entirely in the rules underneath it. If your markets need genuinely different treatment, the mechanics of running them at all are covered in our guide to Shopify Markets.
Shopify labels the per-market section Early access, stating that the feature is in early access and available only to certain merchants. Across the five pages we read on August 5, 2026 — the return rules page that carries the notice, the self-serve returns setup page, the self-serve returns hub, Shopify's EU right-of-withdrawal page and the changelog post announcing cancellations — none names a date for it becoming generally available. If market-specific policies do not appear in your Settings > Policies, plan on the default policy carrying the widest rule you can honour everywhere.
Selling to Consumers in the EU
Key takeaway
Two things change once EU consumers are in your customer base. The first is a floor under your return window, which Shopify addresses directly in its own guidance. The second is a requirement that has nothing to do with window values at all, and that a store can fail while every Shopify setting looks correct. If no consumer in the EU ever buys from you, none of this section applies — skip to the configuration quiz and carry on.
Which setting covers the right of withdrawal
Key takeaway
Shopify's return rules documentation makes the recommendation explicit: if you sell to customers in the European Union, set a return window of at least 14 days and set Starting from to Delivery of last item in order, so customers can exercise their right of withdrawal after the final item in their order is delivered. Shopify's EU compliance instructions go further: turn on cancellation rules and set the cancellation window to Until item is fulfilled, so that customers can cancel any time before items ship. Their configuration list also tells you to select the Extend to account for weekends or holidays checkbox covered above — not an EU-only setting, but one an EU seller is told to switch on.
Keep those two things apart, because they are easy to read as one and the misreading is expensive. The return window is an ordinary store-level setting you can change this afternoon; what was in early access is only the ability to give different markets different rules. A store selling to EU consumers without market-specific policies is not stuck: it sets that window as its default policy, which then applies to every market — a wider rule everywhere, rather than no rule at all.
The law underneath is Directive 2011/83/EU, which gives consumers 14 days to withdraw from a distance contract without giving any reason; for goods, that period runs from physical receipt rather than from the order. Three details are worth carrying into your policy page rather than discovering later. The right does not cover everything — goods made to the consumer's specifications or clearly personalised are exempt, as are sealed goods unsuitable for return on health or hygiene grounds once unsealed, and Shopify's own summary states plainly that its exemption list is not complete. Failing to inform the consumer is expensive: where the trader has not provided the required information about the right of withdrawal, the withdrawal period expires 12 months after the end of the initial period. And if you sell into the EU through Managed Markets, Shopify states that compliant cancellation and return policies are automatically applied to those orders, with no action needed from you.
The withdrawal function that applied from June 19, 2026
Key takeaway
This is the part that gets missed, because it is not a Shopify setting you can tick. Member states apply the measures of Directive (EU) 2023/2673 from June 19, 2026, and the obligation it inserts into EU consumer law describes a specific piece of interface — its wording, its availability and its prominence — rather than a policy value:
The withdrawal function shall be labelled with the words "withdraw from contract here" or an unambiguous corresponding formulation in an easily legible way. The withdrawal function shall be continuously available throughout the withdrawal period.
Shopify's EU right of withdrawal page breaks the requirement into three parts. Treat the table below as an audit of your own storefront rather than a summary of the law — the useful column is the last one.
Audit your store against the three requirements
| Requirement | What Shopify says it means | Where to check it in your own store |
|---|---|---|
| Easy-to-find withdrawal function | A clearly labeled button or link customers can easily find and use to exercise their withdrawal right | Shopify gives the customer's account and the order status page as examples of where it can live. Open both as a customer would and look for it |
| Two-step confirmation | After clicking, the customer confirms the withdrawal and provides their name and the details of the contract or order they're cancelling | Walk the flow yourself: a single click that submits nothing but an item ID does not collect what this asks for |
| Automatic confirmation | Your store sends confirmation of the withdrawal request to the customer on a durable medium, such as email | Check what your store actually emails after a request today, and whether the customer receives anything at all when you decline |
Shopify lists the consequences of not providing the required withdrawal function after June 19, 2026 as legal warnings, fines of up to 4% of annual turnover in some EU member states, and an extended withdrawal period, where the 14-day cooling-off period might be extended to 12 months and 14 days. Read that 4% with its scope attached: under Directive (EU) 2019/2161, member states are to set the maximum fine at a level of at least 4% of the trader's annual turnover in the member state or member states concerned, for widespread infringements under the EU-wide consumer-protection enforcement regime — a ceiling for coordinated enforcement, not an automatic penalty aimed at one store with a missing button.
Everything above is a reading of Shopify's documentation and of the published directives, assembled so you know which settings and which screens to look at. It is not legal advice, and how the rules land on your specific catalogue, contracts and member states is a question for a qualified adviser in your jurisdiction.
Which Configuration Is Yours?
Key takeaway
The table at the top of this page answers by profile: find your row, take the setting. This quiz answers a different question — the one where no single signal decides, and the configuration falls out of the combination of where your buyers are, how quickly orders leave, what you actually sell and who is there to review requests. Answer as your store is today, not as you would like it to be.
Switch It On in This Order
Key takeaway
Steps one, two and eight are the same for every store. If the quiz put you in the EU lane, steps three and four are largely decided for you — a return window of at least 14 days from delivery of the last item, and a cancellation window of Until item is fulfilled, which is what Shopify instructs EU sellers to set. If it put you in the final-sale lane, step six is the one doing the work and step three can honestly stay at No cancellations. If Managed Markets already covers your EU orders, steps three and four still matter — they govern everything Managed Markets does not, which is the rest of your store. Everyone else works the list straight down.
Returns and Cancellations Setup Checklist
Eight steps from customer access to the published policy line. Tick them off as you go — progress is saved in this browser.
Either upgrade to customer accounts, or add the customer accounts URL to your footer, refund policy or another page while your online store and checkout stay on legacy accounts.
Before you tick this off
- Decided between upgrading and publishing the customer accounts URL
- The link is live somewhere a customer will actually find it
- Opened it as a customer and reached the order
In Settings > Customer accounts, activate self-serve returns and cancellations and pick one of the three modes: return and cancel requests, return requests only, or cancel requests only.
Before you tick this off
- Picked the mode deliberately rather than accepting the widest one
- Noted that the feature can't be activated for specific types of orders
- Confirmed who on your team reviews the requests
In Settings > Policies, choose one of the five cancellation window values and decide whether the window should follow your fulfilment state or a fixed duration.
Before you tick this off
- Chose between No cancellations, Until item is fulfilled, 15 minutes, 1 hour and 24 hours
- Checked the choice against how fast your orders really leave
- Confirmed you can act on requests inside that window
Choose a preset or custom return window, then set Starting from to the item's delivery or to delivery of the last item in the order.
Before you tick this off
- Picked 14, 30, 90 days, Unlimited or a custom number
- Decided how split shipments should behave
- Checked the window against the markets you sell to
- Decided on Extend to account for weekends or holidays
Pick one of the three return shipping options, set a restocking percentage if you charge one, and confirm whether Shopify Shipping can sell you a label for the destinations you actually ship to.
Before you tick this off
- Chose free return shipping, a flat rate, or customer-bought labels
- Set or deliberately skipped the restocking fee
- Checked the US-domestic boundary on Shopify Shipping return labels
Add the products or collections that are final sale, remembering that final sale blocks both return and cancellation requests and that bundles can't be set as final sale.
Before you tick this off
- Listed the products or collections to exclude
- Confirmed no bundle is relying on final sale
- Agreed how personalized and digital orders get reviewed manually
If market-specific policies are available in your admin, add a policy per market on top of the default; if they are not, set the default policy to the widest rule you can honour everywhere.
Before you tick this off
- Checked whether market-specific policies appear in Settings > Policies
- Set the default policy first
- Recorded which markets need their own rule later
Put the windows, the return-shipping rule and the restocking fee into your published refund policy, and agree who reviews requests, who declines them and how a cancellation is resolved through the refund flow.
Before you tick this off
- Refund policy matches the settings word for word
- Team knows the difference between declining and marking as resolved
- The owner named at step two is briefed and has admin access
The Bottom Line
Key takeaway
The instinct to keep all of this manual comes from a misreading. A self-serve button does not cancel orders; it collects a structured request against the right line items and puts it where you will see it. What genuinely needs deciding is narrower: which of the five window values you can honour, who pays for the return trip, what never comes back at all, and whether your markets need their own rules.
Frequently Asked Questions
Front-end developer specializing in Shopify since 2017. Experienced in building custom Liquid themes, optimizing storefront performance, and integrating third-party apps. Writes in-depth, data-driven e-commerce guides based on hands-on experience with real merchant stores.
This article was written entirely by AI under human editorial direction. The editor sets the topic and structure, runs multi-stage validation on facts, links, and interactive elements, and verifies the output is useful from a business perspective. All claims are checked against official Shopify sources. Details may change — always confirm critical data at shopify.com.
Editorial PolicyWhat to Read Next
Shopify Agentic Commerce: Costs & When You Need a Dev
AI agents can now buy from your Shopify store. What agentic commerce costs today, what's automatic, and when you actually need a developer.
Read articleShopify Features: What's Actually Built In and What Needs an App
A categorized inventory of Shopify's built-in features for 2026 — storefront, checkout, marketing, POS, international, AI, dev tooling — with plan availability and the honest limits competing articles skip.
Read articleShopify Multiple Stores: When, How & What It Costs
When to run multiple Shopify stores vs Markets, how to architect them, real costs, inventory sync, brand & SEO splits, and a decision framework.
Read article