Withdrawal Button for Magento 2
From 19 June 2026, EU law requires every online store selling to consumers to show a withdrawal button - a simple way for shoppers to cancel a purchase contract online.
The Withdrawal Button extension adds that function to Magento 2: a compliant two-step cancellation flow, an automatic email receipt, and an admin queue to handle every request.
- Show the withdrawal button required by EU law from 19 June 2026
- Ship the compliant two-step withdrawal flow out of the box
- Send an automatic, timestamped durable-medium receipt
- Let guests withdraw with an order number and email, no account needed
- Let customers withdraw a whole order or single items by quantity
- Process requests from an admin queue with filters and CSV export
- Route approved withdrawals into Magento credit memos and refunds
Business Value
The Magento 2 Withdrawal Button extension adds the EU withdrawal function your store needs before the deadline. From 19 June 2026, Article 11a of the amended Consumer Rights Directive (2011/83/EU) requires a clearly visible withdrawal function in any online shop that sells to EU consumers. Miss it, and a customer's withdrawal window can stretch from 14 days to 12 months and 14 days.
Built as a Magento 2 EU withdrawal button, it gives your store the Magento 2 right of withdrawal flow that Article 11a describes, without custom development.
-
The clock is managed for you: The cancel option appears only while an order is inside its legal withdrawal period and disappears the moment that period ends. You don't track dates by hand, and an order past its deadline can't be cancelled through your store.
-
No queue of cancellation emails: Customers and guests submit and confirm cancellations themselves, and you act on them from one screen. A spike after a holiday sale or a faulty batch doesn't turn into messages your team answers one by one.
-
Keep refunds under control: Customers cancel only the items they want to send back, not the whole order by default, so a cancellation costs your store only what it should.
-
Be able to prove it: Every cancellation is recorded and confirmed to the customer in writing. If a shopper or a regulator ever questions one, you can show it was received and handled properly.
How the Two-Step Withdrawal Flow Works
The compliant flow, out of the box
A Withdraw from contract button appears on the order while the withdrawal period is still open. The customer opens the order from their account or, as a guest, enters the order number and email address. They choose which items to withdraw, review the summary, and confirm.
The request is placed in your admin queue, and the customer immediately receives a confirmation email. The email is time-stamped and saved, so you have dated proof that the request was received.
Whole Order or Single Items
Customers choose what to withdraw
On the item selection step, the customer chooses which items to withdraw and how many of each, up to the quantity they ordered.
Quantities already covered by a pending or approved request are taken out of what is available, which stops the same item being withdrawn twice. A request that you reject frees its items again, so the customer can submit a corrected one. Shipping is offered for refund only when the whole order is withdrawn.
Receipts and an Audit Trail You Can Show
Compliance is easier to defend when you can produce a record
Every cancellation is stored right in Magento. The full record stays in your store, with nothing sent to an outside service, so you can always show exactly what was requested and when.
Each request keeps its own reference number, the related order, the items and quantities, the refund amount, the submit time, and the customer's IP address. As its status moves from pending to approved or rejected, that history stays with the request, and the customer receives a confirmation email with the same details as their proof of cancellation.
You can open any request or export the full list whenever you need it.
Process Requests From One Admin Queue
Withdrawal requests sit next to the rest of your order work
The extension adds a dedicated grid under Sales in the Magento admin. From the queue you can open a request, see the order alongside the items being withdrawn, and approve or reject it with an optional note. The customer gets an automatic email about the decision. The same requests also show up on the customer and order pages in the admin, so you can see a customer's withdrawal history in context.
You can narrow the grid down to what you need:
- Filter by status, so open requests stay separate from closed ones.
- Filter by date, customer, or order number to find a specific request.
- Export the current view to CSV when accounting needs the records.
Each new request can trigger an alert email to the recipients you set per store view, so nothing waits unseen.
Refunds That Finish the Job
From an approved request to a completed refund
After you approve a request, you refund it straight from the request page using Magento's standard credit memo.
You choose how the money goes back. With standard Magento, it returns to the original payment method. If you also run our Store Credit & Refund extension, the same credit memo can return the amount as store credit, keeping the money in your store for the customer to spend again.
Each credit memo is linked back to its withdrawal request and listed on the request's Credit Memos tab, so you can see what was refunded against each one. Shipping is refunded only when the whole order is withdrawn.
Languages and Multi-Store Setup
Configure each store view on its own
Settings apply at the store-view level, so a multi-store setup can run different values per storefront.
Per store view you can set the withdrawal window in days, the return address shown to customers, the email sender, the admin notification recipients, and which template each of the customer and admin emails uses. The interface text uses Magento's standard translation system, so you can translate it for each locale the same way you translate other modules.
Themes and Technical Fit
Drops into a standard Magento store
The withdrawal button is added to order emails, the order view, the customer account, and the footer without editing templates, so there is nothing to wire up by hand.
The extension ships both Luma and Hyvä storefront templates, and it runs on Magento Open Source and Commerce.
How It Compares to Other Options
A few extensions and free modules address Article 11a. They differ mostly in how far they go past the button itself.
| Capability | Mirasvit Withdrawal Button | Free / open-source modules | Generic "cancel order" modules |
|---|---|---|---|
| Compliant two-step flow with confirmation step | Yes, the directive's intent-then-confirm flow ships by default | Usually yes, though wording and durable-medium proof vary | Often no; many use a single click with no confirmation summary |
| Durable-medium receipt email | Yes, timestamped and stored automatically for each request | Sometimes a generic email with no stored copy | Rarely; cancellation rarely produces a compliant receipt |
| Stored request record with CSV export | Yes, included in the base product, with submit time, status, items, refund amount, and IP | Usually a basic list, or only in a paid tier | Not part of the design |
| Admin queue with filters and CSV export | Yes, filter by status, date, customer, or order, and export | Basic list at best | Limited; tied to order cancellation rather than withdrawal records |
| Refund handling | Yes, starts a native Magento credit memo and links it back to the request | Credit memo only, if any | Cancels the order without a structured refund record |
| Guest withdrawal without an account | Yes, via order number and email lookup | Often yes | Varies |
Who It Is For
The requirement is broad, so the extension fits several kinds of merchant. A few common cases:
- B2C retailers selling physical goods to EU consumers, including sellers based outside the EU who ship into it.
- Service and subscription sellers whose contracts carry a right of withdrawal.
- Stores that need partial withdrawals, where customers return single items by quantity rather than the whole order.
- Multi-store operators that need per-store-view windows, return addresses, and email settings.
Save time by starting your support request online and we'll connect you to an expert.
Is the withdrawal button mandatory for my store?
What makes the flow compliant rather than just a cancel button?
Can guests withdraw, or only registered customers?
Does this handle the refund as well?
What happens if I do nothing before the deadline?
Which languages are included?
Will it work with my Hyva storefront?
Does buying this give me legal advice?
We are committed to being open and transparent with our customers. When you purchase our module, you automatically receive one year of free support service and free updates.
Why is this important?
- Seamless Installation and Configuration: We understand that setting up a new module can take time to configure according to your specific needs. That’s why we offer a full year of free support. Our experienced team is here to assist you with installation, configuration, and any questions you might have. We're eager to share our expertise to ensure you get the most out of your purchase.
- Stay Updated with Magento (Adobe Commerce) Releases: Magento releases new versions approximately every three months. These updates can sometimes introduce compatibility challenges. To keep your store running smoothly, we provide a year of free access to the latest versions of our modules, ensuring that you can upgrade Magento and our modules without encountering any obstacles.
- Subscription Included: Renewing your subscription ensures continued access to the latest updates and support from our team. This means you can be confident that any issues you encounter with the extension will be resolved quickly and efficiently. You can cancel your subscription at any time without any additional fees.
These are our primary. A major portion of our new clients come from referrals from our existing clients. Our professional team of developers, marketers and support staff have invested the best knowledge and experience in the field into our work, so you know you can come back to us again and again.
One year free and high quality support. We go to great lengths to provide maximum satisfaction with every module you have purchased in our store. By helping you with installation, configuration, answering your every question, we do all our best to eliminate any possible problems.
30-days money back guarantee. If you are not satisfied with our extension performance for any reason, we provide a full refund.
We constantly add new features to all our modules, and are always interested in hearing your opinion and implementing your suggested features in our future developments.
We provide an expanded user guide for every aspect of our extension, so you can find answers for all your burning questions.
You can customize extension according to your needs and requirements.
The Module is easy to install and upgrade, just follow our step-by-step user guide. Additionally, the extension is ready to use with the Hyvä theme.
No core modifications. The extension has been tested in a Magento Cloud environment and is fully compatible with it.