Description
VirtueMart Update Key Manager is a custom field plugin for VirtueMart designed for all downloadable products, including ZIP packages, PDFs, documents, software, and other digital files. Sell digital products through VirtueMart and automatically provide licensed Joomla updates.
What the extension actually solves?
Customer buys a digital product → configurable package download limit applies → receives a licence/update key → Joomla uses the key to authorize updates → automatic renewal reminder with a discount coupon → update access expires when the licence expires.
Is a lightweight VirtueMart-based alternative to standalone Joomla licensing platforms. If you sell Joomla extensions through VirtueMart. This component automatically gives my customers update keys and lets them update the software through Joomla for as long as their licence is active.
With purchase you will get:
- 6 month updates + support
- Full functionality
- Unlimited products
- Unlimited domains
- No commission on sales
Workflow for licensed packages
1
Customer purchases a package
↓
2
VirtueMart confirms the payment.
↓
3
VM Update Key Manager generates a unique licence/update key.
↓
4
The customer receives a secure package download link and the licence/update key.
↓
5
The customer installs the extension and activates the update key.
↓
6
Joomla automatic updates remain authorized while the licence is active.
↓
7
An automatic renewal reminder can be sent with a discount coupon before expiry.
↓
8
When the licence expires, update access stops until the customer renews.
Workflow for single digital products
1
Customer purchases a digital product, such as a JPG, PDF, ZIP file, template, or other downloadable file.
↓
2
VirtueMart confirms the payment.
↓
3
The customer receives a secure download link.
↓
4
The download limit is configurable, for example 2, 4, or another allowed number of downloads.
Sumary of features
Once an order reaches a configured paid status, the plugin can generate a time-limited licence key for each licensed order item and send the buyer a protected initial-download link. Files are securely served from the VirtueMart Safe Path, outside the public web root.
Purchase downloads can have a configurable download limit. Additional options allow you to enable automatic Joomla updates, licence expiration reminders, download auditing, and renewal incentives.
A configurable number of days before a licence or subscription expires, the plugin can automatically generate a VirtueMart discount coupon and email it to the customer, encouraging them to renew before expiration. The coupon value, validity period, and reminder timing can be configured.
For Joomla extension products, automatic update downloads can remain unlimited while the licence is active, while all downloads via link are still recorded for auditing.
Main capabilities
- One cryptographically random 256-bit update key for each licensed paid VirtueMart order item.
- SHA-256-only key storage: the database does not retain the recoverable full key.
- Automatic licence creation when configured VirtueMart paid order statuses are reached.
- Automatic customer email with update key, licence expiry date, protected download link, and download information.
- Limited initial package downloads and unlimited licensed Joomla update downloads while the licence is active.
- Protected extension packages stored below the VirtueMart Safe Path instead of being exposed through public URLs.
- Automatic discovery of the highest strict semantic version (
MAJOR.MINOR.PATCH).
- Static public Joomla update XML generation with exact SHA-256 package checksums.
- Scheduled licence expiry reminders with unique, product-restricted VirtueMart renewal coupons.
- Supports Joomla 5 and Joomla 6.
- Supports multiple commercial Joomla extensions and VirtueMart products from one installation.
- Separate package folders, package prefixes, and Joomla update XML feeds can be configured for different products.
- Reusable VirtueMart custom-field configuration without manual Product ID or SKU mapping.
- Configurable licence duration for each licensed product.
- Configurable VirtueMart order statuses that trigger licence generation.
- Protection against duplicate licence creation when payment notifications or order-status callbacks are received more than once.
- Administrator licence management with search, sorting, audit information, revocation, reactivation, deletion, and manual update-feed publishing.
- Licence audit information includes customer email, order number, product, SKU, expiry date, licence status, download counters, and update-download counters.
- Immediate blocking of protected package downloads and Joomla updates when a licence is revoked.
- Licence reactivation without resetting the existing expiry date or usage counters.
- Protected VirtueMart order-detail download links using HMAC tokens without exposing the customer's update key.
- Every protected download is validated against licence status, expiry, package name, and allowed release version.
- Automatic regeneration and publishing of configured Joomla update XML feeds through Joomla Scheduled Tasks.
- Scheduled processing of licence expiry reminders and renewal coupons.
- Configurable reminder timing, renewal discount percentage, and coupon validity period.
- Renewal coupons can be restricted to the relevant VirtueMart product and, where applicable, to the registered customer.
- Customizable licence and renewal email templates with placeholders for key, expiry date, product, order, download URL, coupon code, and discount.
- Supports both static and dynamic Joomla update feeds.
- Installer-plugin integration for sold Joomla extensions so the customer's update key is sent only to the configured update server and package endpoint.
- English (
en-GB) is the default language, with translation-ready Joomla .ini language files.
Demo
Try the working demo and see how digital downloads, licence keys, automatic updates, download limits, expiry reminders and discount coupons work in practice.
Open Demo Documentation
Requirements
- Joomla 5
- VirtueMart 4.x
- VirtueMart Safe Path configured
- PHP version supported by your Joomla version
- MySQL or MariaDB supported by Joomla