mageme / module-eu-withdrawal

mageme/module-eu-withdrawal

Magento 2 implementation scaffolding for the EU consumer-withdrawal workflow under Art. 11a Directive 2011/83/EU (as amended by 2023/2673): guided storefront flow (find order, select items, confirm), durable-medium receipt email, 22-locale Annex I content. NOT legal advice — see README disclaimer; merchant is responsible for compliance verification.

magento2-module Compatibility: Not yet tested Code Quality: Pending Tests: N/A Security: Pending proprietary
Viewing version 1.0.2. Latest version is 1.0.7. Switch to latest

MageMe EU Withdrawal for Magento 2

EU withdrawal button for Magento 2 — the consumer right-of-withdrawal flow
required by 19 June 2026 under Article 11a of the
Consumer Rights Directive (2011/83/EU) as amended
by Directive (EU) 2023/2673.

Latest Version
Downloads
Magento
PHP
License

The Magento 2 withdrawal button your EU storefront needs before the 19 June 2026 deadline — a storefront-ready, guided flow (find order → select items → review & confirm) with durable-medium receipt emails and Annex I content in 22 EU locales, on Luma, Hyvä, and Breeze.

It adds only the legal withdrawal step required under Art. 11a, and works alongside your existing RMA / refund process rather than replacing it.

Documentation · Get Pro features

Withdrawal button on the order page — shown automatically once the order is delivered


What it does

  • Storefront withdrawal flow — guided form (find order → select items → review & confirm) for guests and registered customers at /withdraw-contract/
  • Annex I in 22 EU locales — verbatim EUR-Lex translations where available, theme-overridable per locale
  • Durable-medium receipt — confirmation email with a frozen snapshot of the legal text shown to the consumer
  • Admin grid and workflow — filterable request list, mass actions, status state machine, CSV export
  • Article 16 exclusions — preset list configurable per category, with merchant override

Screenshots

Storefront — guided withdrawal flow (find order → select items → review & confirm):

Storefront withdrawal flow — select items to withdraw with per-item quantity

Admin — manage withdrawal requests (status workflow, jurisdictions, refund totals, CSV export):

Admin withdrawal requests grid

Durable-medium receipt email — the confirmation sent to the consumer with a frozen snapshot of the legal text they accepted. (The SHA-256 integrity-hash card and one-click verification shown here are a Pro add-on.)

Durable-medium withdrawal receipt email; the SHA-256 integrity-hash card shown is a Pro add-on

Free vs Pro

Feature Free Pro
Storefront withdrawal flow Yes Yes
Annex I — 22 EU locales Yes Yes
Durable-medium receipt email Yes Yes
Admin grid + status workflow Yes Yes
Article 16 exclusion presets Yes Yes
Receipt verification — SHA-256 cryptographic audit Yes
Annex I forensic snapshot — immutable per-request copy Yes
Hash-chain audit log — DB-backed, tamper-evident Yes
Magic-link guest access — one-click tokenised URL Yes

Compare tiers and pricing

Install

composer require mageme/module-eu-withdrawal
bin/magento module:enable MageMe_EUWithdrawal
bin/magento setup:upgrade
bin/magento cache:flush

After installation, enable the module at Stores → Configuration → MageMe Extensions → EU Withdrawal.

Full installation guide and configuration reference

On Luma and Breeze (Swissup) storefronts the base module works out of the box — no extra package required. Only Hyvä themes need the companion module below.

Hyvä storefront

If your storefront runs on a Hyvä theme, install the theme companion alongside this module — it ports the
customer-facing withdrawal flow and order-view integrations to Tailwind + Alpine.js:

composer require mageme/module-eu-withdrawal-hyva
bin/magento module:enable Hyva_MageMeEUWithdrawal
bin/magento setup:upgrade

If you also run Hyvä Checkout, add the checkout companion as well — it re-implements the pre-contract Annex I block
and the digital-content waiver step (Art. 16(m)) for Hyvä Checkout's Magewire runtime:

composer require mageme/module-eu-withdrawal-hyva-checkout
bin/magento module:enable Hyva_MageMeEUWithdrawalCheckout
bin/magento setup:upgrade

Hyvä theme companion · Hyvä Checkout companion

Requirements

  • Magento 2.4.4 – 2.4.9 (Open Source / Commerce)
  • PHP 8.1, 8.2, 8.3, 8.4, or 8.5 — match your Magento version's PHP support matrix
  • MySQL 8.0+ / MariaDB 10.6+

Legal disclaimer

This module is provided AS-IS, without warranty. It is a technical implementation of the workflow described in
Article 11a of Directive 2011/83/EU; it is not legal advice and has
not been reviewed by EU consumer-law counsel.

The merchant is solely responsible for verifying that this implementation satisfies their jurisdiction's specific
consumer-protection requirements, reviewing bundled translations for accuracy in their target markets, and adapting
Article 16 exclusion presets to their actual catalogue.

Streaming and SaaS subscriptions — out of scope

This module's Art. 16(m) waiver flow is for one-time digital content — extensions, ebooks, courses, software
licences, downloadable templates. It is not for ongoing digital services (streaming, SaaS subscriptions),
where the waiver may not remove the withdrawal right — a digital-content vs digital-service distinction now before the
CJEU in Case C-234/25. For subscription cancellations and
pro-rata refunds, use your billing platform's own cancellation flow.

Full disclaimer and merchant compliance checklist

Digital-content waiver on API / headless orders

The Art. 16(m) waiver record is created only from a genuine storefront
confirmation (the customer ticking both consent boxes). By default, digital-content orders placed through the
REST/GraphQL API are blocked unless a genuine consent record exists for each digital item (the same protection
the storefront enforces). If your headless integration collects the consent itself, record it through the
waiver-event mechanism and the order will pass; or set Stores → Configuration → MageMe Extensions →
EU Withdrawal → Digital Waiver → Enforce Waiver on API / Headless Orders
to No to opt out of API enforcement
(the storefront waiver step is unaffected either way).

Custom Magento development

Need a feature an extension doesn't cover, or a bespoke Magento build? MageMe takes on custom extension development and integration work.

Custom Magento development

Support

Note: This GitHub Issues tracker is for free tier bug reports and feature requests only.

Changelog

See CHANGELOG.md. This module follows Semantic Versioning.

License

All tiers are governed by the MageMe End User License Agreement (mageme.com/license).
The base module is distributed free of charge; Pro requires a paid commercial licence.


MageMe builds Magento 2 and Adobe Commerce extensions for B2B merchants — form building, quoting, catalog control, and EU compliance.

1.0.2

  • New: Digital-content detection can now recognise digital items inside bundle products.
  • Fix: Submission confirmation email and the merchant copy now also send for requests made through the storefront app.
  • Fix: The store logo now appears in withdrawal emails.
  • Fix: Email USP and social icons now display in Gmail, Outlook and Yahoo.
  • Fix: Withdrawal emails are sent in the store's language instead of always English.
  • Other: Storefront-app submissions now go through the same rate-limiting and audit logging as the form.

1.0.1

  • New: "Show more" in the order picker — load more eligible orders on demand.
  • Fix: Order picker lists newest orders first.
  • Fix: Order picker honours a withdrawal period over 14 days.
  • Fix: Delivered date is consistent between the order list and detail.
  • Fix: Admin request view no longer crashes in the free edition.

1.0.0

  • New: First public release. EU right-of-withdrawal management for Magento 2 — a guided customer withdrawal flow (find order, pick items, review, submit), eligibility rules, automatic refund calculation, and durable-medium receipt emails.
  • New: Admin request management — withdrawal request grid, request detail screen, approve/deny workflow, and configurable withdrawal period and return address.
  • New: Pre-contractual Annex I information notice on checkout, plus a downloadable model withdrawal form (Art. 6(1)(h)).
  • New: Digital-content waiver step with express consent and loss-of-right acknowledgement (Art. 16(m)).
  • New: Merchant alert email on each new request, and a "Withdraw from contract" call-to-action in order and shipment confirmation emails.
  • New: Translations for 22 EU locales.
Versions
Version Stability QA Status Compatibility Released
1.0.7 stable Fail Magento 2.4.7-2.4.9 Details 2026-06-21 22:28:43
1.0.6 stable Not tested Not yet tested Details 2026-06-18 16:49:31
1.0.5 stable Not tested Not yet tested Details 2026-06-17 12:51:04
1.0.4 stable Not tested Not yet tested Details 2026-06-11 16:58:14
1.0.3 stable Not tested Not yet tested Details 2026-06-08 20:20:01
1.0.2 stable Not tested Not yet tested Details 2026-06-04 18:45:17
1.0.1 stable Not tested Not yet tested Details 2026-06-03 19:53:20
1.0.0 stable Not tested Not yet tested Details 2026-06-01 18:43:39

Requires 2

Package Constraint
mageme/module-core ^2.0
php ~8.1.0||~8.2.0||~8.3.0||~8.4.0||~8.5.0

Suggests 2

Package Reason
mageme/module-eu-withdrawal-enterprise Enterprise tier add-on — carrier integrations, multi-tenant, digital-service mode, B2B classification.
mageme/module-eu-withdrawal-pro Pro tier add-on — advanced rule engine, hash-chain audit, jurisdiction rule packs, evidence-pack export, RMA integrations.

No QA results yet

QA pipelines haven't run for this version. Compatibility and quality results appear here once the vendor publishes a tagged release that gets ingested.

License
proprietary
Authors
  • MageMe — Developer

More from mageme

View vendor
Make it pay

Turn an existing module into recurring revenue.

If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.