Provides a framework for selling access to local or remote resources.
In practice, this means that there’s a license entity, usually created during order checkout, that holds information about accessing the purchased resource, and it has a status and an optional expiration date. This allows selling access to anything from files to node types, or perhaps ZenDesk tickets and accounts on remote sites, all using a common API, while always having a record of the purchased access for the benefit of both the store administrator and the customer.
- Any kind of local or remote resource be licensed.
Licenses are entities. Licensed types are implemented as classes (thanks to Entity Bundle Plugin) and contain all relevant logic.
- A license can be configurable, allowing its fields to be edited straight on the add to cart form (through Inline Entity Form), or through a checkout pane.
- Remote licenses are synchronizable, allowing a remote service to be contacted each time the status changes (to create / suspend an account, or anything else).
- A checkout pane for the "complete" step shows the access details of the bought licenses, and in the case of remote licenses, refreshes itself until advanced queue processes the sync.
- Licenses can be time limited, and are automatically expired (by cron) once that time passes.
- commerce_license_example: demonstrates the API for both local and remote licenses.
- commerce_license_role: allows roles to be licensed. The customer receives the role
referenced by the purchased license product. Changing $license->product_id (from "Basic Membership" to "Premium Membership", for instance) changes the owner's role.
Sponsored by Commerce Guys.