We have implemented a license check screen where the user enters the Envato purchase code and it validates if the code is valid. Currently, we save the purchase code in the customer’s database and check it against the Envato API from time to time.However, there are some open cases that we need to figure out:
Is there an API mechanism that detects concurrent usage of a purchase code, meaning that when the same purchase code is used on another domain, the user is prompted with an error like “license already in use”? We would of course allow the use of certain subdomains like staging.domainname.com or domainname.com/staging but that is another case.
Is there a way to prevent users from updating their installation if they don’t have a valid support period purchased? Does the Envato API provide a distinction and checking mechanism that we can implement?
Currently, we have an “about” section in our software where the current version is shown. Is there a way to check against the latest version that has been uploaded to Envato and show an “update” button where the user can update their installation on the fly (if they have a valid license and support period purchased)?
Thanks for your help already, looking forward to your ideas.
You’re looking at a significant amount of custom development for all of this. My recommendation is to work on getting your item approved first.
The burden for implementing this lies with you. Envato simply provides purchase codes and an API to validate them. To implement this kind of license enforcement, you will need to effectively create your very own API for activation and license management.
Purchase codes will then be validated by your server, rather than the customer’s server, and you will generate your own API keys upon success which can be stored in the customer’s database.
It’s honestly possible to do anything you can program, this included. The big question here is whether or not customers will be able to circumvent your fake restrictions by editing a single line of code. With your current setup, they absolutely can do so.
To implement something like this properly would require you to distribute updates over your own API, and then your API could reject anyone whose support has expired. When looking up a purchase code, the support expiration date is included in the response. The hard part here is caching the result so you don’t spam Envato when 300 people check for updates at the same time.
As for whether or not this is a good idea, I would say no. Unless updates are shipped through your own server like I just described (which will incur hosting costs), there’s no reason to charge buyers for access to updates which are supposed to be included for free with their license. And your buyers will likely express that sentiment to you in the form of one-star reviews, as was the case when someone tried the same thing here some time ago.
For WordPress themes and plugins, the Envato API can return the current version, yes. But then, your buyers can rely on the official Envato Market plugin for automatic updates.
For any other types, no. Envato does not track versions for you. You’ll need to program version management into your own API and provide an endpoint to check for updates.
Apart from what @baileyherbert suggested, you’re sharing the open source coding, it’s not really hard to find the details on the coding and change few lines of the script to run the theme on several domains.
It’s impossible to protect the code without encrypted code - which is not allowed within the open source code themes/templates but what you could do to trust the people.
If the buyers are willing to pay for the license, they would pay, otherwise, they will spend more time to find the ways not to purchase the theme
How can I offer update support to my customers who have purchased the software and have support. How can my customer automatically include the updates I uploaded to the Envato environment in their own project by clicking a single button? Is such an event available?
It is recommended to reach out to the Envato API support team directly to inquire about the availability of API mechanisms for detecting concurrent usage of a purchase code and preventing users from updating their installation without a valid support period. They may have specific guidelines or APIs that can be used to implement these features. As for checking against the latest version and providing an update button, you can use the Envato API to retrieve the latest version and compare it with the current version displayed in your software’s “about” section. If the latest version is newer, you can then display an update button and verify the user’s license and support period before allowing them to update their installation.