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.
Drupal 10
Use 3.0.x. If you were using a recent dev release of 8.x-2.x, the code is identical. The only differences are related to dependencies.
Works with Commerce Recurring for license subscriptions.
See the README for configuration instructions.
Drupal 9
If you are working on a new site, use 3.0.x.
If you have been using a beta or earlier dev release, you'll need to upgrade to the latest 8.x-2.x release first. See the release notes for step by step instructions.
Works with Commerce Recurring for license subscriptions.
See the README for configuration instructions.
Drupal 7
Features
- 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.
Submodules
- 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.