Semakin

Sema Online Return for VirtueMart

Sema Online Return for VirtueMart Joomla 6

Version 1.6.0 VirtueMart

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

1

Order identification

The customer clicks the button, enters their order number and e-mail. The system verifies the order against the VirtueMart database.

2

Item selection & confirmation

Order details appear. The customer selects items to return, chooses a resolution method and consciously confirms the withdrawal.

3

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

SettingDescription
Shop name & logoShown in the confirmation e-mail
Business ID, registered addressSeller identification in the e-mail
Return addressInstructions in the customer confirmation
Notification e-mailWhere new withdrawal alerts are sent
Contact informationPhone and e-mail shown to the customer
Button placementFloating right / left / footer / manual placement
Button text & colourFully customisable
Withdrawal periodDefault 14 days, adjustable
Period enforcementStrict (block after deadline) or informational
Resolution methodsAny number, format: key=Label
Processing statusesCustom statuses for the admin dashboard
Terms & conditions URLLink in the modal and in the e-mail

Technical Specifications

ParameterValue
Extension typeJoomla Package (system plugin + admin component)
CompatibilityJoomla 4.x / 5.x / 6.x, VirtueMart 4, PHP 8.1+
JavaScriptVanilla JS, no dependencies (0 kB frameworks)
CSSIsolated styles with vmw- prefix — will not affect your template
LocalisationCzech, English
InstallationSingle ZIP via Joomla Extension Installer
UpdatesFully automatic via Joomla Updater
UninstallationAudit table is intentionally preserved (legal evidence)
SecurityHoneypot anti-bot protection, prepared statements
LicenceGPL 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.

45 €
License for 1 domain and 1 year of updates and email support. After the year, the extension continues to work without restrictions.
Log in
Powered by SemaHub

Interested in working together?

Get in touch and let's discuss your project. We'll be happy to help you choose the right solution.