EU Right of Withdrawal Compliance
How to comply with EU Directive 2023/2673
Overview
Starting June 19, 2026, businesses selling online to consumers in the European Union must comply with EU Directive 2023/2673. This directive requires merchants to provide a clearly visible electronic withdrawal function — such as a button or link — that customers can use to exercise their 14-day right of withdrawal directly from your store.
Key Requirements
- Visible withdrawal button: A clearly labeled feature that's easy to find and accessible without requiring the customer to log in.
- Two-step confirmation: After clicking the withdrawal button, the customer must confirm the withdrawal and provide their name and order details.
- Automatic confirmation: Your store must send a confirmation of the withdrawal request to the customer on a durable medium (e.g., email).
Who Must Comply
EU Directive 2023/2673 applies to any business that sells goods, services, or digital content online to consumers in the EU — regardless of where the business is located.
Exemptions
The 14-day withdrawal right has exemptions for certain products. Consult local legal counsel to learn more about the exemptions and to make sure that your solution meets your legal obligations.
Penalties for Non-Compliance
If you don't provide the required withdrawal function after June 19, 2026, you may face:
- Legal warnings
- Fines of up to 4% of annual turnover in some EU member states
- An extended withdrawal period (14 days may be extended to 12 months and 14 days)
Disclaimer Following this guide does not guarantee full legal compliance with EU Directive 2023/2673. Smootify provides these instructions as guidance only and assumes no responsibility for any fines, penalties, or legal consequences resulting from the implementation of this solution. We strongly recommend consulting with a legal expert to ensure your specific business meets all applicable legal obligations.
Shopify Summer Edition 2026
Shopify is expected to announce additional native compliance solutions on June 17, 2026 during the Summer Edition. If more customizable solutions become available, this documentation will be updated accordingly.
How to Comply on Smootify Sites
Since headless Shopify stores built with Smootify don't use Shopify's Online Store theme directly, the native UI extensions provided by compliance apps can't be embedded into your Webflow site. The solution is to host the withdrawal form on a Shopify-hosted page and link to it from your Webflow site.
There are several apps on the Shopify App Store that provide EU withdrawal functionality, such as:
- Revoq - EU Withdrawal Button (Free plan available — tested and recommended by Smootify)
- EU Withdrawal Button & Form (Free plan available)
- Retractly: EU Withdrawal (Free plan available)
The following steps use Revoq as the example, since it is the only app tested by the Smootify team.
Implementation Steps
Create a Minimal Layout File
In your Shopify Admin, go to Online Store > Themes and edit the Smootify Redirect theme. Create a new layout file called eu.liquid with the following content:
<!doctype html>
<html lang="{{ request.locale.iso_code }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
<meta name="robots" content="noindex">
<title>
{{ page_title }}
</title>
{%- if settings.favicon != blank -%}
<link
rel="icon"
type="image/png"
href="{{ settings.favicon | image_url: width: 32, height: 32 }}"
>
{%- endif -%}
{{ content_for_header }}
<style>
body {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
</style>
</head>
<body>
{{ content_for_layout }}
</body>
</html>This is a minimal layout that only renders the app block content, with noindex to prevent search engines from indexing the page.
Create a Page Template
The page template cannot be created directly with code because it needs to include the app block. Instead, follow these steps:
- Go to Online Store > Pages and create a new page with any title (e.g., "EU Withdrawal").
- In your Shopify Admin, go to Online Store > Themes and click Customize on the Smootify Redirect theme.
- In the customizer, navigate to the page you just created using the dropdown at the top.
- Click Save — this creates the
page.eu.jsontemplate file with the necessary app block structure. - Now go back to Online Store > Themes, click the three-dot menu on the Smootify Redirect theme, and select Edit code.
- Navigate to Templates and open
page.eu.json. Change the"layout"value from"default"to"eu":
{
"layout": "eu",
...rest of the file
}This ensures the page uses the minimal eu.liquid layout instead of the default theme layout.
Install Revoq and Add the App Block
Install the Revoq app from the Shopify App Store. Once installed, open the page you created in Step 2 and add the Revoq withdrawal form app block to it. Configure the app settings as needed (appearance, languages, etc.).
Link to the Shopify-Hosted Page
Copy the URL of the Shopify-hosted page (e.g., https://your-store.myshopify.com/pages/eu-withdrawal) and add it as a link in your Webflow site — typically in the footer, a dedicated compliance page, or wherever your legal links are located.
Important Notes
- The Shopify-hosted page uses the
noindexmeta tag to prevent search engines from indexing it — this is intentional since it's a functional page, not a content page. - The minimal layout ensures only the withdrawal form is rendered, with no theme styling interference.
- The Revoq app supports all 24 EU languages out of the box.
- If Shopify introduces native solutions for headless stores during the Summer Edition 2026, this guide will be updated to reflect those changes.