Mandatory Online Withdrawal Button
The only ready-made solution for Joomla 5/6 and VirtueMart
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).
Ready-made solutions exist for Shopify and WooCommerce. For VirtueMart there was none — until now.
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. No template modifications, no coding, no monthly fees.
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 — customer selects specific items and quantities to return
- Resolution method choice — refund, exchange, repair or discount
- Works without login — verification via order number and e-mail
- 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 the VirtueMart database.
Item selection & confirmation
Order details appear. The customer selects items to return, chooses a resolution method and consciously confirms the withdrawal.
E-mail confirmation
The customer receives a professional 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 received 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 |
| Contact information | Phone and e-mail shown to the customer |
| Button placement | Floating right / left / footer / manual placement |
| Button text & colour | Fully customisable |
| Withdrawal period | Default 14 days, adjustable |
| Period enforcement | Strict (block after deadline) or informational |
| 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 4.x / 5.x / 6.x, VirtueMart 4, PHP 8.1+ |
| JavaScript | Vanilla JS, no dependencies (0 kB frameworks) |
| CSS | Isolated styles with vmw- prefix — will not affect your template |
| Localisation | Czech, English |
| Installation | Single ZIP via Joomla Extension Installer |
| Updates | Fully automatic via Joomla Updater |
| Uninstallation | Audit table is 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 into every front-end page. No template overrides or code changes are necessary.
Does it work for guest (unregistered) customers?
Yes. The customer identifies their order using the order number and the e-mail address used during checkout. No login or account is required.
What happens when I uninstall the extension?
The audit table with all withdrawal records is intentionally preserved in the database. This data may serve as legal evidence and should not be deleted.
Does it support multiple currencies?
The extension displays order amounts in the currency stored in VirtueMart. It reads the data directly from the order — no additional currency configuration is needed.
What if the withdrawal period has expired?
You can choose between strict and informational mode. In strict mode the form blocks submissions after the deadline. In informational mode it shows a warning but allows the customer to proceed.
Can I define custom resolution methods?
Yes. In the plugin settings you can define any number of resolution methods in the format key=Label (e.g. refund=Full refund, exchange=Product exchange). The customer selects one during the withdrawal process.
Does it require jQuery?
No. The entire front-end is written in vanilla JavaScript with zero third-party library dependencies.
How does duplicate detection work?
When a customer submits a withdrawal for an order that already has an existing record, the system displays a warning with the date of the previous submission. The customer can still proceed if they wish to submit an additional withdrawal.
Is it compatible with Joomla 4?
Yes. The extension works on Joomla 4.x, 5.x and 6.x with VirtueMart 4. For Joomla 3, use the separate Joomla 3 variant.
What happens after the one-year licence expires?
The extension continues to work indefinitely without any restrictions. You simply stop receiving updates and e-mail support. You can renew at any time to resume updates.