June 19, 2026. The EU Isn't Asking.
EU Directive 2023/2673 makes an electronic withdrawal button mandatory for every online store selling to EU consumers.
Everything the Law Requires. Everything You Need.
EU Directive 2023/2673 specifies the button, the flow, the email, and the records. This extension delivers all four — and the admin tooling to manage them.
Eligibility-Gated Withdrawal Button
The button appears only when it should — correct order status, open window, no duplicate request. A live countdown shows customers exactly how many days remain.
Two-Step Confirmation Flow
Customers review consequences and check a confirmation box before the withdrawal registers. Their informed consent is documented before your obligation begins.
Instant Durable Medium Email
EU law requires written acknowledgment immediately upon receipt. The confirmation email goes out before the page even reloads — timestamped, branded, legally referenced.
8 Legal Exception Types
Perishables, custom orders, digital content, sealed hygiene goods, sealed media, time-sensitive services, urgent repairs, newspapers. Set the exception on each product — the button disappears automatically.
Per-Product Withdrawal Periods
Different products carry different obligations. Set a custom period per product. The system applies the longest period in any order automatically — maximum customer protection, minimum manual work.
12-Month Safety Net
If a customer wasn't properly informed of their withdrawal right at purchase, EU law extends their window to 12 months. One toggle setting handles this automatically — because finding out after the fact is expensive.
Weekend Deadline Extension
When the withdrawal window expires on a Saturday, it rolls automatically to the following Monday — exactly as EU consumer protection guidance expects. The countdown shows the correct date. Always.
Analytics Dashboard
Withdrawal volume month by month over 12 months. Status distribution at a glance. If your withdrawal rate is climbing, something is wrong — the chart shows you before the reviews do.
CSV Export for Auditors
One click exports every withdrawal record — ID, order number, customer, reason, refund amount, timestamps, admin notes. Hand it to your accountant. Hand it to the regulator. Done.
The Button That Regulators Come Looking For
EU enforcement starts with a simple question: can a customer find the withdrawal option without calling your support team? The withdrawal button appears directly on the customer's order page — visible, clearly labeled, and gated so it only shows up when the withdrawal right is actually active.
- Appears on order detail page, order history, or both
- Live countdown — customers see the deadline, not just a button
- Two-step flow with confirmation checkbox — documented, defensible
- Bootstrap 5 and UIkit 3 template support out of the box
- Customizable theme color to match your store
Admin Management That Keeps Up
Withdrawal requests don't arrive on a schedule. They arrive all at once after a busy weekend, or one at a time for months, then suddenly three in a morning. The admin dashboard keeps you across all of it — with search, filters, bulk actions, and a per-record detail view that holds everything your team needs to process and document each request properly.
- Dashboard: pending count, processed this month, rejection rate
- Search by order number, customer name, or email
- Log refund amounts and payment reference numbers per request
- Bulk approve, reject, or delete selected requests
- Audit logging — every action timestamped for compliance
Not Everything Can Be Returned. The Law Knows That.
EU consumer rights law carves out eight product categories from the right of withdrawal. This extension puts those exceptions directly in your product settings — one dropdown, per product, and the withdrawal button handles the rest. Digital products get an additional layer: a consent gate at checkout that requires customers to explicitly waive their right before accessing the content.
- Perishable goods
- Custom and personalized products
- Sealed hygiene products and sealed media
- Digital content with consent gate
- Customer-facing explanation for why the item is exempt
Real Stores. Real Compliance Scenarios.
The Deadline Doesn't Move. Neither Should You.
Every Joomla ecommerce store selling to EU consumers needs this before June 19, 2026. The button, the flow, the email, the records — it's all here. Get compliant today. The fine for waiting is considerably more expensive.
Translated In The Following Languages
Arabic Unitag (ar-AA), Chinese, Traditional (zh-TW), Danish (da-DK), Dutch (nl-NL), English (en-GB), English, USA (en-US), Finnish (fi-FI), French (fr-FR), German (de-DE), Greek (el-GR), Hebrew (he-IL), Italian (it-IT), Japanese (ja-JP), Norwegian Bokmål (nb-NO), Persian Farsi (fa-IR), Polish (pl-PL), Portuguese, Brazil (pt-BR), Portuguese, Portugal (pt-PT), Russian (ru-RU), Spanish (es-ES), Swedish (sv-SE), Turkish (tr-TR)
- Developer J2Commerce
- Extension Type Module, Apps
- J2Commerce Version 4.x, 6.x
- Joomla Version 4.x, 5.x, 6.x
Arabic Unitag
Chinese, Traditional
Danish
Dutch
English
English, USA
Finnish
French
German
Greek
Hebrew
Italian
Japanese
Norwegian Bokmål
Persian Farsi
Polish
Portuguese, Brazil
Portuguese, Portugal
Russian
Spanish
Swedish
TurkishFix user id is missing when creating a new order withdrawal request
Update Requires the app_orderwithdrawal plugin (model, mailer, eligibility, settings)
Update Requires Joomla 6.x and J2Commerce 6.x
Fix Fix UIKit modals and buttons
Fix Fix sub-template selection
Deletion Disabled extend_if_not_informed option (left in the code, but off by default)
New Feature Disabled button when order withdrawal is not possible (with a reason)
Improvement Do not allow periods to be more than a year
New Feature Show a mandatory digital-consent checkbox at checkout when a cart product has require_digital_consent enabled
New Feature Checkbox label lists the specific exempt product names: "I understand that I lose my right of withdrawal once the delivery of [products] has begun"
New Feature Client-side JS blocks the Place Order button until the box is ticked; server-side hook enforces it when core dispatches the validate event
New Feature Bootstrap 5 and UIkit checkout subtemplates for the consent block
New Feature Add global "All Digital Downloads Are Exempt" plugin option (default: No): when enabled, any downloadable product in the cart automatically triggers the digital-consent checkbox
Fix Fix email templates
New Feature Add Brazilian Portuguese, Traditional Chinese, Norwegian Bokmal, Danish, Finnish, and Turkish translations
Improvement Bump version to 6.0.2
Update Requires Joomla 6.x + J2Commerce 6.x
New Feature Add visual-builder email templates for admin and customer, editable in Email Templates
New Feature Show withdrawal status (approved / under review) on already-submitted orders via a details modal
New Feature Add withdrawal status to the order history
New Feature Add withdrawal status to the order details
New Feature Add exempt status to orders that have exempt products
Fix Fix blank admin and customer emails (undefined-variable warnings in the email templates)
Fix Fix withdrawal form fields rendering outside the modal box
New Feature Pre-fill name and email in the withdrawal form for logged-in customers
New Feature Collapse the withdraw action into a single icon button with a days-remaining tooltip
Fix Fix dashboard withdrawals chart to match the main dashboard chart styling
Improvement Prefer merchant-editable email templates, falling back to the built-in layouts
Improvement Display the withdraw button inline with the other order action buttons
Update Requires Joomla 6.x + J2Commerce 6.x
New Feature Frontend order-withdrawal request module (EU right of withdrawal)
New Feature Three-step flow: request form, confirmation step, success screen
New Feature Order ownership verified by email before any withdrawal is accepted
New Feature Eligibility checks: withdrawal period, already-withdrawn, exempt products
New Feature Bootstrap 5 and UIkit subtemplate variants via the Subtemplate field
New Feature Customer and admin email notifications on a successful withdrawal
New Feature Optional post-submission redirect URL
New Feature CSRF token protection on every form submission
Update Requires the app_orderwithdrawal plugin (model, mailer, eligibility, settings)
Update Requires Joomla 6.x and J2Commerce 6.x
Fix Installer does not finish on Joomla 6 installation
New Feature Added add-on image
New Feature Added status layouts for frontend
New Feature Added language keys for the new layouts
New Feature Order withdrawal actions logged to J2Store order history (submitted, processed, rejected)
New Feature Translated into 13 languages
Improvement Extension renamed to EU Order Withdrawal Compliance
New Feature Module mod_j2store_orderwithdrawal bundled in package
You may also be interested in these products
Stay Updated
Subscribe for free and be the first to know about the latest features, updates, and new additions.