The product is called a stock-keeping unit (SKU). Products are the ones that are available on the PWR Apps Market to subscribe
Publisher can create a product with a published application version. One application can be used in multiple products for example Timesheet application can be used in products namely Timesheet Admin User, Timesheet Logs, and Timesheet API
The product record has details of the application it is made up of as well as type, billing type, trial period count, trial period unit, trialLicensesTemplate, license template, and features
Once any subscriber subscribes to any product its subscription record gets created on the subscriber instance with details of the product and the version he has subscribed to
Once the product gets subscribed trial period gets started for the usage of that particular product after the trial period subscriber will be eligible for billing. Product billing type would be quarterly or annually
To maintain product usage we will decide on trial period count and trial period unit. To maintain license usage there is a trial license template and after the trial, there will be a license template on the product
Trial license template
The product has a trial license template to maintain trial usage
For example Timesheet Admin User product can have a trial license template as follows
[{name: "orektic__timehseetAdminUser", users: 5}]
License template
Product has license template to maintain billable usage
Fro example Timesheet Admin User product can have a license template as follows
[{name: "orektic__timehseetAdminUser", users: 1, usersCalculation: 'fixed'}, {name: "orektic__timehseetProjects", users: 1, usersCalculation: 'per qty', amount: 5, amountCalculation: 'fixed'}]
Feature on license
The product record will also define features to be used after the subscription
For example Timesheet Admin User product can have the following feature
[{name: 'orektic__timesheet', type: 'checkbox', scope:'instance'}]