Status Update: Feb 18th, 2014
This module was originally created by fago as a quick solution for a problem, which solved it well while no other solution was available. At this point in time however, there are more robust solutions that are not only available but architecturally superior, actively supported, and under continued development.
We recommend those interested in subscription / membership sites to consider looking at commerce_license module as a solution. Out of the box it allows you to create "subscription" products that auto expire after a given time and can assign/remove roles from users. I would guess that this is the 90% use case of people looking at this module.
There is a single issue of "extending" a subscription if an additional one is purchased which is being solved/worked on here: https://drupal.org/node/2193305
I will endeavour to work with other module maintainers and get a comparison of commerce_sp, commerce_license, commerce_recurring, and commerce_subscriptions. I will also be seeing about creating a migration class / helper module for existing commerce_sp users to migrate to commerce_license and/or documenting how to create a simple membership site with commerce_license. If you have any questions please feel free to contact me.
The subscription validity is tracked and controlled via a date field on the user account, which gets automatically updated once a user buys subscription time with the help of rules.
- Drupal commerce
- Commerce features
- Features 2.x only
- Field Group
- Field permissions
- Interval field (2.x only)
- Rules The 2.x version requires a dev version of May 7th, 2012 or later.
- Sell subscriptions via products.
- Administers can view and customize the subscription validity per user if they have necessary field permissions.
- There are two "rule sets" (Subscription starts, Subscription ends) that make customizing the subscription easy, e.g. one could easily add rules for granting/removing a user role.
- Subscriptions expire automatically once the validity time is reached thanks to the Rules Scheduler (requires cron to function).
- Views integration, as the subscription validity date is implemented as account field.
- Custom notifications like "Warning: Subscription expires in 2 weeks" can be easily configured using Rules and the Rules Scheduler.
- This modules does not implement a recurrent payment solution and automated subscription renewals. Though this could be integrated via add-on modules.
- The module provides only one kind of subscriptions on a site. If multiple subscription types are needed, the module and its configuration could be theoretically cloned (and renamed) though.
How it works
The module enables the creation of "subscription products" which allow you to sell subscriptions of any time period, e.g. a product could be a subscription for 4 weeks. Once a user buys a product with subscription time his subscription validity time is automatically updated.
Any changes to the subscription validity date field are automatically applied by some rules, i.e. the respective components "Subscription start/end" get automatically executed, whereas the "Subscription end" component is scheduled via the Rules Scheduler.
- Customizations are best exported to code by using the Features override module, so this module can be updated while your customizations stay.
Differences between the 2.x and 1.x versions:
- The 2.x version of the module relies upon the Interval field for inputting and storing the subscription time of a product. In 1.x this functionality was provided by an integer field and some custom glue code.
- Version 2.x can properly differentiate between subscription times in months or days as thanks to the Interval field the duration is applied respectively.
Upgrading 1.x to 2.x:
No upgrade path is provided, so upgrading requires some manual interaction. Make sure to fix the subscription time of your products as the field has changed. Apart from that some rules changed, however the usually modified "Subscription start" and "Subscription end" rule sets remain unchanged.