-
-
Notifications
You must be signed in to change notification settings - Fork 1
Description
I have a license model in mind where I need to combine features from a few different supported license models, but I can't work out quite how to do it.
First I want the user to be able to request an evaluation license, which I want to be node-locked and valid for 30 days.
I want this license to be issued without any human intervention: the user clicks Accept, and the license is auto-created.
I can accomplish this by setting the product to Auto-create customer, and configuring a Subscription module with a 30-day package set Default and Hidden, and in my code generating a licensee number based on some node-specific identifier.
But then I want the user to be able to buy either a node-locked or a floating license. Either one is to be valid for one year.
I want renewals to be offered at a discount, and extend the license by a year, counting from the time of the first purchase.
It would be nice if this could also be achieved without human intervention, but it's not critical.
The problem I'm having is that I don't see how to make either a node-locked or a floating license also be time-limited (ie combine it with a subscription model).
This seems like a possible way to do it:
- Create an additional "paid" Subscription module with two packages, "Node-locked subscription" and "Floating subscription".
- Create a node-locked module and a floating module. Make these hidden.
- In my validation code, check that there is both a valid "Node-locked subscription" package and a valid node-locked module, or that there is both a valid "Floating subscription" package and a valid floating module.
- When the customer purchases either a "Node-locked subscription" or a "Floating subscription" I create the new licensee, migrate the evaluation licensee to it, add a license for either the node-locked or the floating module to it, then e-mail the licensee number back to the customer.
Does this make sense?
Or is there a much simpler way?
Any help appreciated.