License & Support System: Activation & Update Management
Multi-layered license activation, automatic update delivery, support ticket integration, and demo-to-license upgrade flow. Used by every commercial module.
Seamless activation. Automatic updates.
Our commercial modules include a built-in license and support system. It handles activation, update delivery and support access from the module's own admin panel, so the usual flow needs no key file and no FTP.
One-click portal activation
After purchase you start activation from the module's License tab in the back office. The system uses an OAuth-style flow: "Activate" sends you to the mypresta.rocks customer portal, where you confirm the domain binding. A token is exchanged and the module stores its license key. No serial numbers to copy by hand.
For air-gapped or restricted environments, there's a fallback: manual key entry. You paste your MPR-XXXX-XXXX-XXXX-XXXX license key directly. The system validates it against the licensing API and, if the domain has available slots, binds it automatically.
Demo-to-license auto-upgrade
Modules installed as demos (from the demo store or a demo download) carry a .mpr_license.json file with a demo key. When an admin page is next loaded and the runtime check is due, the module asks whether a real license has been assigned to the shop's domain on the portal. If one has, it upgrades itself in place: no reinstallation, no data loss.
Background license verification
Once activated, the runtime check calls the licensing API at most once per hour, triggered by admin activity rather than by a background service. Transport failures get a grace period, so a temporarily unreachable API does not stop the module working. An explicit invalid or revoked response can suspend the license straight away.
Suspended licenses aren't deleted. The key is moved to a holding field. If the shop is re-assigned on the portal (e.g., after a domain change), the license auto-restores on the next verification ping.
Automatic updates
When a new version is available, the module shows an update notification in the License tab. While your support is active, one click downloads the update package and installs it. The Integrity system then runs automatically, applying the declared additive changes the update brings, such as new columns, hooks or admin tabs.
Support integration
Active support plans include direct technical support access from the module's admin panel. Premium modules include 3 months from purchase, extendable to 6, 9 or 12 months at purchase, or monthly later. Free modules have no free support; paid support is available. We aim to reply within one business day. During a demo, we answer questions and give basic guidance; full technical support starts with purchase. The system attaches the diagnostic context it holds, module version, domain, PrestaShop version, PHP version and support status, so a ticket arrives with something more useful than "it doesn't work".
What gets stored
License state is kept in the shared configuration store, with a Configuration fallback where a path requires it. For each module it tracks:
- License key: the
MPR-XXXX-XXXX-XXXX-XXXXkey (or demo key) - License type: perpetual or subscription
- Activation date: when the domain was bound
- Support expiry: when the support plan ends (empty = lifetime)
- License expiry: for subscriptions only (empty = lifetime license)
- Verification endpoint: the API URL injected at download time (no hardcoded domains)
Security layers
- Encrypted license files: the module reads an encrypted
.mpr_license.binalongside the plain demo file; the encryption itself is applied by the download pipeline - Signed requests: verification calls carry request-signing context, so the licensing service can tell a genuine call from a replayed one
- Tamper flag: when the license context is flagged as tampered, the module reacts to that flag rather than trusting the stored state
- Dynamic endpoints: the verification endpoint is resolved at runtime rather than hardcoded in the source
- Portal-side token exchange: activation completes against the customer portal, which issues and validates the token
Multi-language, multi-shop
License status messages ship in 6 languages (English, German, French, Polish, Italian, Spanish). License state is stored per shop, so each shop in a multistore carries its own binding.