Mandatory Online Withdrawal Button
For Joomla 3 and VirtueMart 4
Be compliant in 5 minutes.
Since 19 June 2026 every online store in the EU must offer customers a simple online interface for contract withdrawal. Non-compliance can result in fines of up to €200,000 (CZ: up to CZK 5,000,000).
This version is designed for stores running Joomla 3. For Joomla 5/6, see the Joomla 6 variant.
Why You Need This
EU Directive 2023/2673 and its national transpositions require every e-shop to provide a simple online mechanism for contract withdrawal — without unnecessary barriers.
What the law requires
- A visible button on the e-shop website
- Two-step process (identification + confirmation)
- Confirmation on a durable medium (e-mail)
- Complete audit trail for inspections
Risks of non-compliance
- Regulatory fines up to €200,000
- Legal uncertainty in customer disputes
- Loss of customer trust
What Sema Online Return Covers
Install one ZIP file. Enable the plugin. Enter your shop name and notification e-mail. Done.
Full legal compliance
- Floating button on every page — automatic, no template changes required
- Two-step form exactly as required by the directive
- HTML e-mail confirmation as proof on a durable medium
- Complete audit trail: date, time, IP address, withdrawal declaration text
Features beyond the minimum
- Partial withdrawal — select specific items and quantities
- Resolution method choice — refund, exchange, repair or discount
- Works without login — no customer account needed
- Duplicate detection — warns about repeated withdrawal for the same order
- Admin dashboard — table in Joomla back-end with search, sorting and CSV export
- Configurable statuses — track processing progress (Pending / In Progress / Resolved)
How It Works
For the customer
Order identification
The customer clicks the button, enters their order number and e-mail. The system verifies the order against VirtueMart.
Item selection & confirmation
Order details appear. The customer selects items to return, chooses a resolution method and confirms the withdrawal.
E-mail confirmation
The customer receives an HTML e-mail with a reference number, submission date, withdrawal text and return instructions.
For the shop operator
- E-mail notification with a complete overview arrives instantly
- All withdrawals visible in Joomla Administration
- Change processing statuses, filter, sort
- Export to CSV for accounting or legal purposes
Configuration
| Setting | Description |
|---|---|
| Shop name & logo | Shown in the confirmation e-mail |
| Business ID, registered address | Seller identification in the e-mail |
| Return address | Instructions in the customer confirmation |
| Notification e-mail | Where new withdrawal alerts are sent |
| Button placement | Floating right / left / footer / manual placement |
| Button text & colour | Fully customisable |
| Withdrawal period | Default 14 days, adjustable |
| Resolution methods | Any number, format: key=Label |
| Processing statuses | Custom statuses for the admin dashboard |
| Terms & conditions URL | Link in the modal and in the e-mail |
Technical Specifications
| Parameter | Value |
|---|---|
| Extension type | Joomla Package (system plugin + admin component) |
| Compatibility | Joomla 3, VirtueMart 4, PHP 7.3+ |
| JavaScript | Vanilla JS, no dependencies |
| CSS | Isolated styles with vmw- prefix |
| Localisation | Czech, English |
| Installation | Single ZIP via Joomla Extension Installer |
| Updates | Automatic via Joomla Updater |
| Uninstallation | Audit table intentionally preserved (legal evidence) |
| Security | Honeypot anti-bot protection, prepared statements |
| Licence | GPL v2+ |
Frequently Asked Questions
Do I need to edit my template?
No. The plugin injects the withdrawal button automatically. No template overrides are needed.
Does it work for guest customers?
Yes. The customer identifies their order using the order number and e-mail. No account or login is required.
What happens when I uninstall the extension?
The audit table with all withdrawal records is intentionally preserved. This data may serve as legal evidence.
Does it support multiple currencies?
The extension displays amounts in the currency stored in VirtueMart — no extra configuration needed.
What if the withdrawal period has expired?
You can choose between strict and informational mode. Strict blocks submissions after the deadline; informational shows a warning but allows the customer to proceed.
Can I define custom resolution methods?
Yes. Define any number of methods in the format key=Label in the plugin settings.
Does it require jQuery?
No. The front-end is pure vanilla JavaScript with zero dependencies.
How does duplicate detection work?
If an order already has a withdrawal on record, the system warns the customer with the original submission date. They can still proceed if needed.
Is it compatible with Joomla 4/5/6?
This version is for Joomla 3 only. For Joomla 4, 5 and 6 use the separate Joomla 6 variant.
What happens after the one-year licence expires?
The extension continues to work indefinitely. You simply stop receiving updates and support. Renew any time to resume.