Skip to content

Guide

EU withdrawal button in Shopify and WooCommerce, step by step

Since 19 June 2026 every EU shop needs a button to withdraw online. Neither platform ships one out of the box; here is how to build it.

By , COO

7 min read
EU withdrawal button Shopify: Directive (EU) 2023/2673 on EUR-Lex, the law that introduced the withdrawal function
On this page
  1. 01What the button has to do
  2. 02In Shopify
  3. 03In WooCommerce
  4. 04Where to place the link
  5. 05Testing before you rely on it
  6. 06What it costs
  7. 07Cases that need a decision
  8. 08After the click

To meet the EU withdrawal button rule in Shopify or WooCommerce, you add four things: a link labelled "withdraw from contract here" that customers can reach without logging in, a short form for their name, order and email, a separate "confirm withdrawal" step, and an automatic email that acknowledges the withdrawal with the date and time. Shopify has no built-in feature for it; WooCommerce has none in its core. Both need an app, a plugin or a little custom work.

The rule comes from Directive (EU) 2023/2673, which added article 11a to the Consumer Rights Directive, and every EU country applies it since 19 June 2026. It covers distance contracts concluded through an online interface with consumers in the EU, wherever the shop is based. It does not change the 14-day right of withdrawal itself; it changes how easily a customer can use it. What the article says, line by line, and which orders are exempt, is in our news piece on the EU withdrawal button. This guide is about building it.

What the button has to do

StepWhat the law asksWhat usually goes wrong
The linkthe words "withdraw from contract here" or an unambiguous equivalent, prominent, available for the whole withdrawal periodhidden behind a login, or labelled "Returns" or "Contact"
The statementname, the contract it concerns, and where to send the acknowledgementa long form asking for reasons, which the law does not require
The confirmationa separate function labelled "confirm withdrawal" or an unambiguous equivalentthe form submits in one click, with no confirming step
The acknowledgementwithout undue delay, on a durable medium such as email, with the content and the date and timea generic "we received your message" without the time

In the languages of your shop, use the official wording of each language version of the directive, for example "Vertrag hier widerrufen" and "Widerruf bestätigen" in German. Asking why the customer withdraws is allowed as an optional field; making it required is not.

Four steps from button to acknowledgement

  1. 1Withdraw from contract hereA clearly labelled link in the footer, in the order email and next to each order, reachable without logging in.
    Shopify
    footer menu link to a page; link in the order confirmation template
    WooCommerce
    footer widget or menu link; link added to the order email template
  2. 2The statementName, order number and email, prefilled when the customer comes from the order email.
    Shopify
    a page with a form from a withdrawal app, or a custom app block
    WooCommerce
    a form plugin or a small plugin with an order lookup
  3. 3Confirm withdrawalA separate second button, labelled only to confirm, so nobody withdraws by accident.
    Shopify
    the app's confirmation step
    WooCommerce
    a second form step or a confirmation screen
  4. 4AcknowledgementAn email at once, with what was submitted and the date and time.
    Shopify
    the app's email, or a Shopify Flow notification
    WooCommerce
    an automatic email from the form or plugin, logged on the order

A contact form alone is not enough: the law asks for the labelled button, the confirmation step and the acknowledgement with date and time.

In Shopify

Shopify has not added a native withdrawal button. Its self-serve returns in customer accounts handle returns, not the withdrawal statement, and they require the customer to sign in. You have three routes:

  1. An app from the Shopify App Store. Several apps now offer a withdrawal page, a footer button, the confirmation step and the acknowledgement email. Check before installing that the app works without login, writes the date and time in the email, supports every language of your shop, and is accessible with a keyboard.
  2. A page with a form and Shopify Flow. Create a page called "Withdraw from contract", add a form app that has a confirmation step and sends an email with a timestamp, and link the page from the footer and from the order confirmation email template. Shopify Flow can tag the order and alert your team.
  3. A small custom app or theme extension. For larger shops, an app block that looks up the order by number and email, prefills the statement and logs the withdrawal on the order. This is the cleanest, and takes a developer a few days.

Whichever route you choose, add the link to the order confirmation and shipping notification emails in Shopify's notification templates, with the order number in the link so the form can prefill it. What Shopify itself costs per plan is in how much does Shopify cost.

In WooCommerce

WooCommerce gives you more control and the same three routes:

  1. A legal plugin. Plugins built for the German and EU market add legal pages and checkout wording; check whether yours now includes the withdrawal function with the two steps and the acknowledgement.
  2. A form plugin. A multi-step form with a confirmation page and an automatic email with the submission time covers the rule. Add an order lookup so the customer only types the order number and email, and store each submission so you can prove it later.
  3. A small custom plugin. It adds an endpoint for guests, finds the order, records the withdrawal as an order note with the time, and sends the email through WooCommerce's own mailer. It is the most robust option for a shop with many orders.

Link the page from the footer, the order emails (WooCommerce email templates) and the customer account's order view.

  • the footer of every page, next to the terms and the returns policy;
  • the order confirmation and the shipping email, with the order number in the link;
  • the order detail page in the customer account, for customers who do log in;
  • the pre-contract information and the terms, which must now mention the function and where to find it.

On orders that carry no right of withdrawal, such as made-to-measure goods or a booking for a fixed date, leave the link out of that order's email and say why.

Testing before you rely on it

CheckHow
Reachable without loginopen the link in a private window from the footer and from an order email
Prefill worksfollow the link from a real order email and see the order number filled in
Two stepsthe first button does not submit; only "confirm withdrawal" does
Acknowledgementthe email arrives within a minute, with the statement and the date and time
Every languagethe wording is the official one in each language of the shop
Keyboard and screen readerthe form works with Tab and Enter, labels are read out, errors are clear
Your team sees itthe order is tagged or noted, and someone is alerted

The last two matter more than they seem. The form is part of your service under the European Accessibility Act, and a withdrawal nobody on your team notices still counts from the moment the customer clicked.

What it costs

For most shops this is a day or two of work, or an app subscription. Apps charge a monthly fee; a form-based solution costs the setup time; a custom extension costs a few developer days. Weigh that against the risk: consumer authorities enforce the rule, and in Germany competitors can send warning letters over missing withdrawal information, as they do for the Impressum. What else a shop meets in Germany is in selling online in Germany; for UK shops selling into the EU, see selling to the EU from the UK.

Cases that need a decision

  • SubscriptionsA subscription concluded online has a withdrawal period after the contract is concluded; the button covers that period. Cancelling a running subscription afterwards is a separate topic, often with its own rules per country.
  • Digital content and servicesIf the customer agreed that delivery starts during the withdrawal period and acknowledged losing the right, there may be nothing left to withdraw from; show the button only where the right still applies.
  • Part of an orderLet the customer name which items the withdrawal covers, so the statement is clear.
  • Orders placed by phone or emailThe function is required for contracts concluded through an online interface; for orders taken another way, your usual withdrawal route applies.
  • Business customersThe right of withdrawal belongs to consumers; a B2B shop does not need the button, but a shop selling to both does.

After the click

The button starts your process, not the end of it. Within 14 days of the withdrawal you refund the customer, including the standard delivery cost, with the same payment method unless agreed otherwise; you may wait until the goods are back or the customer shows they were sent. Make sure your team sees each withdrawal on the order, so the refund and the return label follow without a customer having to ask twice.

Withdrawal button questions

Does Shopify have a built-in EU withdrawal button?

Not as of October 2026. Shopify merchants use an app, a page with a form and Shopify Flow, or a small custom extension.

Can customers be required to log in to withdraw?

The safe reading is no: the function must be easy to reach for the whole withdrawal period. Offer it to guests, with an order number and email, and in the account for those who are signed in.

Is a contact form enough?

Not on its own. The law asks for the labelled link, a separate confirmation step and an acknowledgement on a durable medium with the date and time.

Does the withdrawal button apply to shops outside the EU?

Yes, for sales to consumers in the EU through an online interface, wherever the shop is based.

Webshop development

How VBS builds the withdrawal button

We build webshops in Ghent on Shopify, WooCommerce and as custom builds, for customers in Belgium and across Europe. We add the withdrawal function with guest access, order prefill, the confirmation step, a timestamped acknowledgement in every language of the shop, and a note on the order for your team, and we test it with a keyboard and a screen reader. See webshop development, or book a call and tell us which platform your shop runs on.

Tell us where you stand.

A few sentences will do. We reply within 24 hours with a proposal for a first call.

Optional, if you prefer a call.

What do you want to achieve, and what is already there?

We only use your details to reply to you.