The Unlockable Packages plugin allows you to set conditions under which certain packages become available to clients, such as after a previous purchase or account age.
From £11.99 - View Pricing
What Unlockable Packages gives you
Runs on Blesta's cron with no manual upkeep, so everything stays up to date on its own.
Configure it independently for each brand on a multi-company install, so every company runs with its own settings.
Every rule carries a name and an on and off switch, so a promotion can be built in advance and switched on the day it starts.
A qualifying service counts when it is Active by default, and you can widen a rule to also accept Suspended or Pending services.
Every staff and client label ships in editable language files, ready to translate into any language or reword to match your brand.
Decide per rule whether owning any one of the main packages is enough, or the client has to hold all of them before anything unlocks.
Find a rule by name, enabled state, match mode, markup type or markup amount, with the main and unlocked packages listed on every row.
One button recomputes access and pricing for every client immediately, so a rule you just changed takes effect without waiting for anything.
Each staff action it adds is a separate permission you grant per staff group, so each team gets exactly the access it needs and nothing more.
When the qualifying service is canceled, suspended or otherwise stops counting, the packages it unlocked go back behind the gate without anyone touching them.
Pick the main packages a client must own and the restricted packages those should open up, and the hidden packages appear in that client's order form as soon as they qualify.
Optionally add a percentage or fixed-amount markup to the renewal price of an unlocked service once the client no longer holds the package that earned it, so loyalty pricing ends with the loyalty.
Access is written into Blesta's own restricted-package list, so a client who has not qualified is refused the package even if they try to order it directly from a package group. Addon groups and carts built before a rule changed are outside that check, so treat those as a soft gate.

Keep your best packages hidden until a client has earned them, then unlock them automatically the moment they qualify.
Some of your best packages should not be available to just anyone - a premium tier, a loyalty perk, an upgrade you only want to offer to clients who already hold a qualifying service. Blesta already lets you restrict a package so nobody can order it directly, but by itself that restriction never lifts for anybody. Unlockable Packages watches your clients' services and automatically opens up those restricted packages the moment a client owns the right one, then locks them straight back up if that qualifying service is canceled or stops counting. You define the rules once; the plugin keeps every client's access in sync from then on, with no manual grants and no manual revokes.
Enhance your package management with Unlockable Packages by Blesta.Club.
Installing and updating extensions can now be done automatically through the Blesta Club Subscription Manager - this is the recommended way going forward.

Upload the extension folder into your Blesta installation so it lands under your Blesta directory at:
plugins/unlockable_packages/
For example, on a typical install: /var/www/html/blesta/plugins/unlockable_packages/
There are no credentials to enter - Unlockable Packages works entirely with your existing packages and services.
You're ready to go - see the usage guide for a walkthrough of day-to-day use.
Installing and updating extensions can now be done automatically through the Blesta Club Subscription Manager - this is the recommended way going forward.

Upgrading works just like installing: upload the new files over the old ones, then run the upgrade from the same page you installed it on.

Open the Tools dropdown in the admin navigation bar and click Unlockable Packages to see every rule you've created, with its Enabled state, Name, Master Packages, Unlockable Packages, Match Mode and Markup Type/Amount all listed on the row. Use the filter icon above the list to search by name, enabled state, match mode, markup type or markup amount. Click Edit to change a rule, or Delete to remove it after confirming.
Click the + button (or Edit on an existing rule) to open the rule form:
Click Submit to save. The plugin recomputes every existing client's access immediately, so a rule you just added or changed can unlock (or re-lock) packages the moment you save it.
Click Sync All Clients at the top of the list to recompute restricted-package access and pricing for every client right away, rather than waiting for a client's next service change or the nightly cron. Confirm the prompt, and a message reports how many clients were recomputed.
v2.0.0 - 2026-09-11
PHP 7.2 - 7.4, 8.1 - 8.4 · Blesta 5.x
Added a "Sync All Clients" button and a daily reconcile cron so rule changes reach clients who have not touched a service
Added a per-rule Match Mode: unlock when a client owns any one master package, or only when they own every master package
Added per-rule Qualifying Service Statuses so a suspended or pending master service can still count as owning the master
Fixed the rules list accepting a tampered filter that could show records belonging to another company
Fixed the Delete and Sync All Clients links falling through to a plain GET if the confirmation script fails to load
Added a staff permission for the Sync All Clients action (grant it under Settings > Staff > Groups)
v1.0.0 - 2024-09-22
PHP 7.2 - 7.3, 8.1 - 8.4 · Blesta 5.x
Blesta Club release
Get exactly what you need and want.
Requires PHP 7.2 - 7.4, 8.1 - 8.4 · Blesta 5.x
Value: £65.55
Not sure whether to lease or own? Our FAQ explains how the licence types differ.
What our customers say
(0 customer reviews)
It is possible to leave a review only if you have purchased this extension or a Club tier which contains it.
We reserve the right to alter wording or formatting for presentation.
We will discuss any changes made and offer the option to withdraw review text if the changes can't be agreed on.
It may take up to 1 hour for a review to appear or update due to caching.
More extensions to explore
Plugin
Integrate the Announcements plugin to provide updates and news to your clients.
PHP 8.2 - 8.4 · Blesta 6.x
Plugin
Automate Convoy stock management.
PHP 7.2 - 7.4, 8.1 - 8.4 · Blesta 5.x
Plugin
Give your clients rewards based upon service purchases.
PHP 7.2 - 7.4, 8.1 - 8.4 · Blesta 5.x
Plugin
Integrate Crisp live chat into your client area.
PHP 7.2 - 7.4, 8.1 - 8.4 · Blesta 5.x