uc_subscribe provides a framework for tracking and acting on subscriptions.
To get started using Subscriptions:
1. Check the admin settings:
/admin/store/subscriptions/settings
Set the 'Order status required for subscription registration' to a status at the point you want to grant the user the role change. If you set it to 'Pending', it will happen once the order is submitted. If you set it to 'Payment received', it will happen when the order's status is changed to that.
2. Check the actions page:
/admin/store/subscriptions/actions
You can configure some notifications and default actions here.
3. Add the 'Generic subscription' product feature to a product. Either configure a product attribute to define the contract length (so that the user can choose different lengths), or set a default value. The value or the attribute option names should be something like: '1 hour' or '30 days' or '5 months'.
4. Optionally, make a Workflow-ng configuration for changing the role of a subscription's customer when the subscription is registered, renewed, or expires.
Notes:
Recent development is moving away from using "Attributes to use as subscription period" and "Attributes to use as activation fee" in the site-wide admin options, and instead use the contract length setting in the
product feature options. (Activation fees are caught in the transition and not currently reliable.)
You can only use one attribute for the contract length of a given product. So, in the product feature options, select 'Product attribute' as 'Subscription length is defined by', and then selct either 'Yearly' or 'Monthly' under 'Product attribute for subscription length'.
The option for setting auto-renew is under the Store administration >> Subscriptions >> Actions.
Subscriptions are activated on each product with the required attribute in an order when the order first reaches a specified order status. Optionally, uc_subscribe can cancel a subscription when the order is cancelled.
uc_subscribe provides a hook (hook_product_subscribe) that enables modules to process four operations related to subscriptions: new registration, renewal, expiration, and when a subscription reaches its warning or notification threshold. uc_subscribe provides some basic actions for these events, including e-mail notifications and automatic renewals.
uc_subscribe also adds a 'Subscriptions' tab to the user's account page. This page allows users to renew subscriptions, as well as set options per subscription for receiving e-mail notices and automatically renewing the subscription.
uc_subscribe uses three methods for repeating an order when a subscription is renewed:
1. When an administrator selects 'reorder' on the subscription management page, a new order is created with the billing and delivery addresses and payment method from the previous order as well as the product being renewed.
2. If the customer clicks on 'renew', the product is added to the shopping cart and the customer is directed to the checkout page.
3. If the customer or administrator choose the setting to automatically renew products, the order is created similarly to the administrator's reorder function and the payment is processed. This provides a method for automatically recurring charges.
This module evolved from uc_expiry, coded by aymerick.
This module should be considered alpha. If you are interested in this module, please test it, and post your suggestions or contributions here.
| Attachment | Size |
|---|---|
| uc_subscribe-20080411.tar.gz | 20.98 KB |


Re: Subscriptions
Awesome! Can't wait to see this coupled with recurring payments. Nice work! Will be glad to help test.
Re: Re: Subscriptions
As per point 3 recurring payments is built in already...
3. If the customer or administrator choose the setting to automatically renew products, the order is created similarly to the administrator's reorder function and the payment is processed. This provides a method for automatically recurring charges.
Anything I should know before starting to test?
I just found this and it seems to be exactly what I have been looking for.
I am just downloading today to start testing. Is there anything I should know from others who have previously tested this module before I get started?
A Little Confused...
Well, I got the module running ok. However, I am a little confused on exactly how to get this setup with my subscriptions...
I have 2 membership subscriptions. Monthly and 1 Year.
Here is what I did so far: (Just guessing at what I am suppose to do)
1... admin/store/subscriptions - > I went into the settings tab and made a new attribute I called "1Year".
2... I setup my actions on the actions tab.
3... I went to the product and set it to the new attribute I created.
Not sure if this is the steps I was suppose to take or not... What shows up now above the Add To Cart button on the product is a text field with the label "1Year"... I assume I did something wrong or am missing exactly the correct steps as this seems pretty confusing to a customer who has no idea what if anything they are suppose to enter in the text field. (Nor do I have a clue)
Can anyone shine some light on exactly how to set this all up properly and use it? Really want to help test this but first I need to get a handle on the correct steps to set it up properly.
Update
I just posted version 2008/04/04, which includes some major updates to the Subscriptions module:
-- I am transitioning from store-wide to per-product configurations for subscriptions. This version introduces a 'Generic Subscription' product feature. The contract length of a product can be set either to a fixed default value or to the value of a product's attribute.
-- I've also added Workflow-ng events for when a subscription is registered, renewed, expires, or reaches the notification threshold. Since Workflow-ng provides an action for changing a user's role, the Subscription module provides the functionality of uc_roles.
-- This version adds support for credit card encryption. If a subscription is purchased with a credit card, the customer can be charged automatically for renewals.
-- Contract lengths should be specified in natural language, like '1 day' or '4 weeks'. The following length units are available: second(s), minute(s), hour(s), day(s), week(s), month(s), year(s). If using attributes, the attribute name can be something like 'Contract length' and the option names should be like '30 days', etc.
I'll try to provide more documentation soon. I hope this update helps. Let me know how it works for you.
paypal
It would be really nice to implement a feature allowing users to setup a recurring paypal payment with this. For a hosting company, users want to just draft their paypal accounts monthly without putting in more information. Using paypal recurring payments with this would be great. Until then, I have to stick with the recurring payments module.
Re: Update
nice! this looks promising.
Re: paypal
"It would be really nice to implement a feature allowing users to setup a recurring paypal payment with this."
You'll be pleased to see that with the new uc_paypal_buttons module this is now not only possible, but easy.
http://www.ubercart.org/contrib/4218