Howdy:
We're gauging interest in the need for a module to manage recurring billing and paid subscriptions within Drupal.
The Problem:
Our experience is that a simple solution is sorely needed for Drupal. Particularly for paid roles.
Solutions for this exist with AMember, CiviCRM, UberCart and eCommerce (not for 6.0 for eCommerce). But there are problems inherent with each solution.
The Current Solutions:
aMember is good software, but it is a third party, and kludgy when it comes to different payment processors. AMember has to be installed separately, you have to buy the Drupal Plugin and then you have to hack one of the core modules.
UberCart: Make no mistake... Ubercart and the UberCart community are AWESOME. However Ubercart for just this function described above is overkill, and only recently added.
eCommerce: Subscription Management is no longer avail in 6, Version 5 comes with 35 modules.
CiviCRM: Can do it, but it's also a bit kludgy and designed really for the donar/non-profit space.
There is a 5.0 module in the developers repository that is ambitious and does much of what we are proposing, but looks quite a bit away from stable, and does not seem to be under active development. Also we can't get it to stop giving us fatal errors in Drupal 5.9.
Our Proposed Solution:
The way we see it, none of the above solutions are ideal for those who want to do one very simple, but much needed thing: and that is to charge for a portion of your site, a members only area based on role, and have that bill recurring. Allow for trials and coupons. And that is it. End of story. No other functions. No other frameworks, all lives in Drupal.
We are proposing a free basic module for the Drupal community, and offering a paid advanced module (fully realizing the GPL implications).
Looking for feedback, ideas, other solutions out there they may exist and we have not researched, etc. Lastly if this were to become available would you use it for yourself and clients?
We're very serious about doing this... so your input is highly valued. We have a great deal of experience in working with Authorize.net and other payment processors. Grip Media focuses on simplicity and ease of use over too many features and bloatware.
Thank you!
gripmedia.net

Comments
Also see lm_paypal
There is another module out there called lm_Paypal that I tried over a year ago for a client site. I mention it just for completeness, because at the time I looked at it it was a sigle module written for Drupal 4 and 5. Yes, not a 4 version and a 5 version, just a version that did both. It did other clunky non-standard things too, but it did the job. I see that it now sports versions for 4, 5 and 6, but I'm guessing that its most fundamental issues still remain.
You could pay for a single subscription, or you could have an ongoing subscription that was automatically renewed, or that reminded you to renew your subscription. However it could only use PayPal and in fact most of the work was being done by PayPal. (It's worth looking at PayPal just to see the kinds of functionality they provide, as there are several good ideas therein.) Using lm_paypal, for a one-off payment you could use PayPal without becoming a member (although of course they try to trick you into joining), but for recurring payments/reminders PayPal forced you to be a PayPal member. So this was also a bad solution because you don't want to force this on clients because many will not sign up to your site if you do that. I'm guessing this is still the case. So we ended up going the UberCart route, which was quite comprehensive, though I did report a bug or two because back then it was still bleeding edge, and they were super fast in acting on things. It worked very well, but most assuredly is taking a sledgehammer to a fly. So the summary is that Ubercart does it well, but is waaaay overkill because you essentially have to set up an ecomerce store to make it happen. lm_paypal with PayPal had the right concept and ideas -- essentially exactly what you're talking about, a simple straightforward module -- but executed it poorly.
I'd say there is a distinct need for a simple module like this and likely you can plunder some of the code from UberCart (hey, it's all open source after all) as they do exactly the kind of roles-purchasing you mention. I have not seen the trial periods and coupons you mentioned, though I'm sure they could be mocked up in UberCart. Another nice addition would be to accept payments that are not fixed, as some like memberships to be a donation of the member's choosing, possibly with a minimum amount.
Either as a part of this, or as an offshoot module, you could also have a feature to simply accept donations/one-off payments. The payment mechanism will be much the same, but again staying within the Drupal realm, instead of the usual tricks that use the APIs of vendors like PayPal.
Grant
Sala kahle,
Grant
Thanks Grant!
There is this module here:
http://drupal.org/project/role_subscription
but the developer seems to be wondering if Ubercart's solution with a submodule is what he would rather do. So this module's future seems to be in question. I have not evaluated the code yet, the developer seems pretty cool. Problem is, no time frame on a stable release and it's 5 only. I also cannot get it to work on release 5, and not sure why yet.
I like your suggestions grant, and will keep you updated on the progress.
Also
Oh... i forgot to mention that I did not include lm_paypal because of the requirement to become a member of Paypal to recur billing. As far as I know, that is still the case.
e-Commerce 6.x-4.x
e-Commerce 6.x-4.x doesn't include the implementation directly in the core of e-Commerce because not everyone needs recuring billing/payments, and only module that most people need will be included in the core. So basically dropping the size of e-Commerce from 35+ modules to 13, which will be used by 99% of people. The ec_recurring module and others have been picked up by other developers to upgrade and finish, and then allow me to submit patches to handle the recurring payments interface. If they are not complete when I need them I am going to be getting them going as needed.
However the one thing that has been over looked in e-Commerce is that the this functionality has been split into 2 parts. The core of e-Commerce is going to implement all the communitication with payment gateways, including providing a method of doing recuring billing. Then other modules will be able to interface with it to initiate the recurring payment.
e-Commerce's new receipting system has been designed so that we can support all methods of transactions with the payment gateways, such as payments, refunds, pay to, and lastly recurring payments. Receipting is going to then provide a standard interface to allow recurring payments to happen with any payment gateway.
The one major thing that ec receipts has over all the others systems is that it doesn't really rely on e-Commerce. In fact it can be run without e-Commerce and I have it running like this at sites like twit.tv. So modules like CiviCRM and ubercart and all the others can use ec receipting to implement payment gateway interfaces, and other services like pay to, and the rest. Not only that receipts can via the customer system, interface with CiviCRM contacts or even ubercart customers so money can be allocated directly with the information of the customer/contact that made the payment.
I am currently in the process of securing funding to allow the development of the recurring payments, first by PayPal and then add others like Authorize.net. These 2 give a fairly broad difference in the development and should cover most methods at the basic level of implementation.
I am always happy to dicuss this, and will be happy to talk to anyone about it via e-mail or on #drupal-ecommerce
--
Gordon Heydon
--
Gordon Heydon
Thanks Gordon.
First let me say, that your work on eCommerce is pretty amazing. Especially your work on streamlining the new version. Having followed your progress, your efforts to improve the module is much appreciated.
Thanks for bringing out some of the apsects of eCommerce that many are not aware of. I think the splitting into 2 parts is a great idea. The receipts system looks to be powerful.
I think the angle and niche we are approaching the need is to try and make it as simple and as "Big Button" as possible. Many of the approaches now require gluing disparate parts, and it can be intimidating for non-programmers. Our goal is to: Install the module, fill in the info, start accepting paid subscriptions. End of Story.
It's a narrow focus. We don't want it to be a swiss army knife module when people need a bread knife. See what I mean?
Let's keep talking on our mutual progress and see where we intersect.
Thanks for your reply...
The problem is that this is
The problem is that this is not a turn key problem. There are just too many factors, which are mainly brought on by the differences between payment gateway providers.
If you were to reduce this to just 1 like PayPal which is available in most places but not all, then you can just use lm_paypal.
With my solution for using ec receipts you don't need e-Commerce. We could just create a front end module which will allow people start start the subscription process. Receipts will then provide a default interface to all payment gateways that provide recurring payments. This means as long as the payment gateway supports it any payment method can be used.
It is my plan depending on the traction of receipts to split this out to an independant module which will provide all this for any module.
--
Gordon Heydon
--
Gordon Heydon
IP Applications - Subscription Billing and Payments
IP Applications offers a user-friendly, cost-effective solution to Subscription Billing and Payment Management. The application is function-rich and provides vast visibility into all activities and processes in the Billing and Payment Cycle. If you have multiple re-sellers, or different levels within your model, this software is an excellent means for channel management, providing real-time knowledge and visibility into each and every level or channel, informing you of who bought/sold what to who and when.
Current clients include AOL, Sprint, Sage Telecom and others, however, they do cater to small and mid-sized companies and it is reflected in their pricing model.
If you would like a further details, please feel free to contact me.
Paul Cain
pcain at ipapplications.com
Bill
This thread is not for advertising a 3rd party service/software. This thread is for discussing Drupal modules. If your service provides a module for Drupal, then your comments are welcome. If not, please respect the intent of this thread. Spam is most unwelcome in the Drupal community.
Payment Gateways and recurring payments
One of the challenges with recurring payments is that you need to keep Credit Card information on-hand for future payments- which is quite a risk, especially on shared hosting.
Some payment gateways get around this by passing back a token on the first transaction. You can then use the token for future transactions. This adds quite a security layer to the whole process.
Each payment gateway has its own way of doing this. There is no industry standard- afaik. That is where the challenge lies.
I learned all this doing the ec_autopay and trustcommerce modules.
I hope this helps out.
DaveA
on joining forces
I understand the value of a niche tool. But I think you will accomplish more by starting with Ubercart or eCommerce, and targeting the specific features you want to improve upon. Consider carefully the duplicated modules hall of shame.
I'm also not a big fan of "foo is overkill" arguments when "overkill" is defined as a value judgement, rather than a specific functional requirement. (Compare "17 modules is too many", vs "I need my application to handle 300 transactions per second on server hardware costing less than $500 / month").
Just my 2¢. Good luck! I'll be interested to see the end result either way.
Davea
Davea for your input!
Initially our goal is to service Authorize ARB and Paypal. And that is probably it. That takes care of a huge part of the market place. Certainly others are out there, but Authorize dominates much of the merchant market. Neither requires the storage of CC info.
On a related note you bring up: I had a client recently have us attempt to upgrade their old proprietary membership system. They had 2000+ CC numbers with ALL supporting info including CID numbers basically unsecure on their server. We were shocked.
I have just taken another
I have just taken another look at the at the ARB and it is similar to the PayPal recurring payments in that they maintain the payment schedule, and then you get pinged with the outcome of the payment.
This makes the registration side a lot simplier in that you don't need to worry about when to request the money, just really to just drop the subscription when it not paid.
--
Gordon Heydon
--
Gordon Heydon
Gordon
ARB is a newer service and it makes life alot easier.
Gordon, do you accept donations for your ongoing work on eCommerce?
Yes the ARB service looks
Yes the ARB service looks very interesting and looks like it will be no harder to implement than PayPal.
Yes donations to e-Commerce can be made over at http://drupalecommerce.org you will see buttons to make donations.
--
Gordon Heydon
--
Gordon Heydon
Dylan
Dylan:
Thanks for your feedback. I have been looking at the duplicate modules/HOS group quite a bit. And in consideration of just that very thing is why we are soliciting feedback, which has been really helpful so far.
It may end up that we do just what you suggest and improve upon an existing feature set of existing work. Or we may not pursue this at all if we feel the effort will not truly be beneficial for all parties.
Gordon's work currently on the receipt system I think will yield some very good advancement in the ecommerce arena.
So we are evaluating seriously and are not going to just jump in.
In regards to:
Compare "17 modules is too many", vs "I need my application to handle 300 transactions per second on server hardware costing less than $500 / month").
You make a good point because it is a value judgement and is general. I do however stand by our experience and assertion that it can be simpler than what is currently available. Simpler may not suit everyone, but we have evidence that "simpler" is strongly desired for Drupal when it comes to paid membership and recurring billing.
There will be many configurations/parameters where our proposed module simply will not do. We are not trying to one-size fits all. We are trying to be THIS size fits MANY.
Thanks again for your thoughts!
-gripmedia
Wrapper module
Sorry to be chiming in so late, but another way of approaching your problem may be to create a wrapper module that makes it simpler to access the existing functionality a module. Basically the example of Views and SimpleViews. SimpleViews does not add any functionality of its own, it just uses Views and strips away a lot of the advanced options to allow less technical people to harness most of the common uses without having to go through endless options and complicated setup. That way the community efforts can be focused on one solution (and improving it and fixing its bugs) without creating a competing module. Just a thought I wanted to throw out there.
-Daniel Chvatik
Adulmec LLC
Maybe a lightweight API
I tend to need a lot of hook integration when I use Authorize.net's ARB. Beyond just roles, I'll need to run other permission checks and other checks (quotas of various types, participation points, etc), execute actions, etc.
I can usually do the ARB APIs and needed role/hook work within a couple pages of code, and reuse it for other clients. I think, if anything, a simple, hook-heavy API would be helpful. eCommerce and Ubercart satisfy the great number of needs out there, and the only remaining market is for a lightweight API for programmers who are working with edge cases.
Strong Need
I believe there is a strong need for a simple Recurring Billing solution.
We have worked with D5 eCommerce and D6 UberCart using Authorize.net as a payment gateway. More than once we could have used a simple recurring payment solution. I am specifically interested in seeing Authorize.net ARB supported.
Ubercart = Uber 'TimeInvestment' != Simple Solution
In contrast to Dylan's strong point - let's not remake the wheel for the 100th time. Which I would completely agree is just plain a bad use of time.
I think the concept of a lightweight module that serves much of the 'Drupal Light' user base (those who are jumping for joy that they can even install and configure a complex module - a strong and powerful part of the community). This suggested module would be a welcomed contribution.
Consider this...
For the first time user of Ubercart, deployment and configuration require a substantial investment in time. The type of recurring payment solution doesn't necessarily represent a store front - which Ubercart does well. The recurring payment element of Ubercart is a solution that is more of a modified product. All that power, it reminds me of using a dump truck when a wheel barrel is the right tool.
So, in response to the initial question... Would I use this? I would always choose the right tool for the right application. I think deploying Ubercart (my favorite Drupal eCommerce solution for clients) is too much horsepower for subscription only based sites. Part of the reason I can attract clients to Drupal is the lightweight ease of use. For small scale - this would probably be a GREAT solution.
It is for this reason --> two thumbs up!
Scott Baetz
You have my vote
Being a project manager/designer, I dont have the skills to edit/hack any modules and require out-of-the-box solutions to my clients needs, unless i hire the services of a developer.
I have a project that requires the exact simplicity this topic is discussing, subscription based website that restricts areas of content to active paying members only, it wont require the full shopping cart experience and so ubercart/ecommerce does seem like overkill.
Having used Ubercart for a previous client's site I am extremely impressed with its ease of use for a designer like me, but from reading the forums, I am a little confused at the problems that the recurring payment functionality seems to be causing, ubercart and ecommerce both seem to mention its availability but nobody seems to have implemented it successfuly without issues.
I certainly dont want the customers to require a paypal account to complete their subscriptions, as someone mentioned above, this would increase drop-off rates hugely and so is not an option.
I notice the previous post to this was over a month ago and so was wondering what the latest was on any plans or progress to this concern.
Plus my vote ...
Awesome idea! I am no developer but I just spent literally 2 days in the guts of Drupal to find a D6 subscription module supporting a PayPal WPS account. I installed Ubercart (sounds awesome) but does not seem to support Subs / Paypal WPS. I installed lm_paypal, seemed to work ok but limited. I installed e-commerce, spent hours trying to config and still having issues just from a usability standpoint. Can't see my sub. service offering in the cart. So I am going back to lm_paypal to spend more time configuring. All I would need from a req standpoint is Subscription management for user roles, none of the bells and whistles associated with ship-able physical products.
. Subscription services management, ie access management and reporting
. Sub user management
. Google analytics integration
I can help some more on the requiremens if needed ... can't code it unfortunately. Thanks for the initiative.
-arnaud
Good Stuff Here
Wow, I can't believe I haven't found this thread until now. I completely agree with GripMedia, this is something that has been sorely needed in the Drupal Community. I have set up numerous subscriptions sites, using eCommerce, Ubercart, and aMember integrations, all of which required IMMENSE amounts of time configuring the sometimes cryptic settings and hacking the code. Don't get me wrong, eCommerce and Ubercart are great (Ubercart is my favorite) but this is simply overkill for the solution that most people are looking for in a Subscription-Based Membership Site. Last year I decided just to make a Paypal Subscriptions module which would handle what I needed it to, the Subscriptions, Tracking, IPN Handling and User Registration. In the end I decided to release it on my site for sale so I that I can continue updating it. If you are interested in something like this, feel free to check it out.
Screenshots: http://www.moneyscripts.net/drupal-paypal-subscriptions#screenshots
Demo Site: http://members.leightonwhiting.com/
More Info/Purchase: http://www.moneyscripts.net/drupal-paypal-subscriptions
Top Features:
Full PayPal IPN recurring subscription
Simple, Out-of-the-box Functionality
Drupal-ized Plugin Interface and Drupal Hooks
Payment History in the User Account
Multiple Subscription Plans Available
Users can Upgrade/Downgrade their plans
Roles Integration
Customizable, Open Source Module code (GPL)
Email Notifications all Configurable on a Per-Subscription Basis
Advanced Settings like Trial Periods, Custom Paypal Screen Styles, etc
Sandbox Mode and Debug Mode for testing
Payment Required for New User Signup Option
Subscriptions Overview Page in User Account
WildKatana Design - http://www.wildkatana.com
My Blog - http://blog.leightonwhiting.com