Subscription Based Model

Hi Folks,

Does Moqui support subscription based model OOTB or it needs to be customized in order to achieve module wise subscription?

Regards,
Vivek

1 Like

In my experience, what you need to customize is only the logic of how to enable/disable access. Many times you have a party that has a subscription, and that party has different people that are granted access so you would follow the corresponding PartyRelationships and add/remove the corresponding users to the groups that enable access.
Once you have that logic set up, you would not need to do much more as the authorization and entity filter mechanisms do all of the work. Just to keep in mind that the System and Tools screens are not conceived to be used in a multi-tenant environment so they should be reserved to the main site admins.

2 Likes

Thanks Jens. I was more of looking for the product based subscription.
Consider each module as a product, if a corporate/retailer is onboarded, is there any configuration available based on which only subscribed module/product will be accessible to the corporate and the corporate users.

1 Like

If I understand correctly, you are looking to enable or disable parts of the system according to the corporation having bought some product that represents the subscription.
On one hand, there is the concept of recurring orders, which is an order that acts like a template and has a value in the OrderHeader.recurCronExpression field which indicates when to create new orders based on this one. Check out the create_RecurringOrders serviceJob to see how it is set up, so you can generate the required order periodically.
On the other hand, you would need to associate each subscription product to, say, a UserGroup and set up the logic to add or end user membership to that group as per my previous message. This is, as far as I know, not included in moqui, and you could use something like a ServiceJob or SECAs/EECAs to perform this synchronization automatically.

1 Like

@Vivek it sounds like you want everything installed, and then access is controlled based on what the customer has purchased / subscribed to. Note that this is a separate question from multi tenant, not sure if you are also asking about that.
The standard way for controlling user access is through the security framework as @jenshp indicated, with several user groups and permissions preconfigured out of the box. Webroot - Login
And it is easy to create your own. So you can have everything installed and then control access based on the group(s) a user is assigned.
The customization you would need to build is to link what someone has purchased to assigning the appropriate user groups and updating accordingly if something changes, for example an upgrade or downgrade. This could be a simple join table that links product id to user group id(s). However you will probably need a bit more sophistication, for example different types of users within a subscription.

1 Like