Blog · Shopify

Withdrawal button deadline 19 June 2026. What Shopify shops need to know.

If you run a Shopify shop selling to EU consumers, your theme needs a new button wherever the national rules already apply — in Germany since 19 June 2026. Or you have a problem. Here is what the law wants and how you implement it in Shopify.

Update: 2 November 2026

The obligation has applied in Germany since 19 June 2026 (§ 356a BGB); in other EU countries it applies once their national law is in force. We wrote this article before the deadline and have updated it since. If your shop still has no withdrawal button, add it now.

What this is about, in two sentences

EU Directive 2023/2673 (adding Article 11a to the Consumer Rights Directive 2011/83/EU) requires online shops selling to consumers to provide a withdrawal button. Member states apply it from 19 June 2026 as soon as their national law is in force — Germany, France and Italy on that day, the Netherlands on 25 June, Belgium on 14 August and Austria on 1 October 2026, while Spain's transposition is still pending. No transition period, no grace window.

This hits Shopify merchants especially hard, because Shopify itself offers no native solution and most themes do not ship the button. You have to add it yourself.

The two-step process the law prescribes

Step 1 is a button in the navigation or footer. It reads “Withdraw from the contract”. The wording comes from the law itself (Art. 11a of the Consumer Rights Directive; in Germany § 356a(1) BGB). You may rephrase it, as long as the meaning stays unambiguous. Every creative deviation raises the warning-notice risk.

Step 2 is the form that opens when someone clicks step 1. It must let the consumer provide three things: their name, details identifying the contract (an order number is just one way) and the email address or other electronic means for the acknowledgement of receipt. A free-text field is optional. The completion button reads “Confirm withdrawal”.

The shop may not require a login. Forcing someone to log in first before exercising their statutory right of withdrawal breaches the Directive.

Confirmation of receipt on a durable medium

After the submit, a confirmation of receipt must follow. The law says “without undue delay”. In practice that means seconds, not hours. The confirmation must contain the full wording of the withdrawal declaration, plus the date and time of receipt.

The format must be a “durable medium”. An email satisfies this. A brief toast banner in the browser does not, because it is gone once the tab closes.

What happens if the button is missing

Two mechanisms kick in at the same time. First: competitors and associations can challenge a missing button. In Germany, the warning notices documented so far under § 356a BGB (Wettbewerbszentrale, Verband Sozialer Wettbewerb) cost around €417 each; a competitor's lawyer can charge more.

Second: if you don't inform customers about the existence and placement of the withdrawal function, the withdrawal period runs for up to twelve months and fourteen days from receipt of the goods. A customer who receives their order in July 2026 can then withdraw until July 2027. Each of those returns is a real cost hit, and none of your financial planning has accounted for it.

Why Shopify shops have a special problem

Shopify is a closed platform. You cannot just edit a PHP file like in WooCommerce. You work with Liquid templates, theme sections and app embeds. That means two realistic paths.

Path A: you build the button directly into your theme. You edit theme.liquid, add a section or a snippet, register your own route for the form and write server-side handler logic in an app. That is feasible, but you are then responsible yourself for hosting, mail delivery, rate limiting and retention.

Path B: you use a widget loaded via a script tag. Shopify allows script tags through Theme App Embeds. You enable the embed once in the theme editor, and the button appears automatically in navigation or footer. This is the path we operate.

Installation in Shopify via Theme App Embed

A Theme App Embed is a special app extension that Shopify has supported since Online Store 2.0. It loads a script without you having to touch theme code. The merchant clicks “App embeds” in the customizer, flips the toggle, and is done.

With WiderrufButton it looks like this: you install the app from the Shopify App Store, confirm the email address for withdrawal notifications when you first sign in, and switch on the app embed in the theme editor. No widget key to enter. The widget loads in the Shadow DOM, does not collide with your theme CSS, sets no cookies and stays under 15 KB gzipped.

The step-by-step variant with code is in our withdrawal-button guide. If you would rather read the product page: see Withdrawal button.

What must be in place

Button reachable on every page and prominently placed — fixed at the screen edge, in the navigation or clearly highlighted in the footer; it does not have to be visible without scrolling. Form with the three mandatory details (name, contract, email for the acknowledgement). Confirmation of receipt by email, with the full withdrawal content and a timestamp. An address in your legal notice through which queries are possible. And most importantly: the button must stay available throughout the entire withdrawal period, so at least fourteen days from receipt of the goods.

Anyone who today runs a shop where a customer can only withdraw via a contact form is not compliant. The old rule was “in text form”. The new rule says “button”. That is a difference, and the difference is the button.

Common misconceptions among Shopify merchants

“But I have Shopify’s withdrawal page in my legal texts.” That is a static text, not a button. The law requires an interaction that triggers a withdrawal declaration.

“My theme has a contact button.” A contact button is not a withdrawal button, because it is neither labelled as one nor does it generate a formalised withdrawal declaration.

“I’m small, this doesn’t apply to me.” The obligation applies to every B2C shop, regardless of revenue or headcount.

Five-minute install, then the button is live

WiderrufButton activates in Shopify via Theme App Embed. No theme code, no CSS conflict, no extra infrastructure.

Start free trial

14 days free • no credit card • then from €2.99/month • cancel anytime