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.

See the documentation page for information on getting started.
Also see this tutorial for information on creating your own license plugins.

Dependencies

ctools, Entity API, Views Bulk Operations, Entity bundle plugin, Entity reference.
Remote licenses require Advanced queue (used for synchronization).
Integrates with Inline Entity Form, if available.

Ecosystem

Drupal 8:

Drupal 7:

Supporting organizations: 
Development and Support
Sponsored Development

Project information

Releases