Product is stock-keeping unit(SKU) , of applications and that can be subscribed or installed. 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.
Products are the ones that can be available on AppMarket marketplace to subscribe to or install.
once any subscriber subscribes or installs any product its subscription record gets created on the subscriber instance with details of the product and the version he has installed.
Once the product gets installed trails periods get 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 we will have a trial license template and after the trial, we will refer license template on the product.
for example Timesheet Admin User product can have trail license template [{name: "orektic__timehseetAdminUser", users: 5}] and license template [{name: "orektic__timehseetAdminUser", users: 1, usersCalculation: 'fixed'}, {name: "orektic__timehseetProjects", users: 1, usersCalculation: 'per qty', amount: 5, amountCalculation: 'fixed'}]