When you sell on the internet, you customers either buy the product and pay it’s cost one time, or they buy a service or a subscription and signup to pay a recurring fee.
In this blog lets compare various ways of how you can use Drupal to build a site with recurring billing.
Example use cases of such a site could be -
- Selling software or support as a service. Such as services from Acquia.
- Providing access to premium content. Such as video tutorials from druaplize.me.
- Promoting selected content on the site. Such as featured listings on craiglist.
- Many more..
While some of the intricacies that separate recurring-billing from one-time billing are -
- Multiple plans which the customers can upgrade and downgrade between.
- Billing cycles and intervals.
- Failed payments, grace periods and retrials.
- Subscription management.
- Compliance considerations.
Now, Drupal is a great platform to build e-commerce sites of all sizes and variety because it brings together the best of many worlds - quick to start distributions + modules to extend functionality +custom development + integration with 3rd party services.
When building a Drupal site with recurring payments, you can typically think of the entire setup as made of the following components -
- What you are selling.
- Business logic behind the online store.
- The payment gateway.
Available drupal modules, building custom drupal solutions and ready to use 3rd party tools have a overlap in all the above 3 areas and it is worthwhile to compare them.
Drupal + Recurly + Recurly Roles
Recurly adds a SaaS based middle layer to recurring payments and subscriptions. Key features include ability to support multiple payment gateways (http://recurly.com/gateways/), option to host customized checkout pages with recurrly or embed payment form in your website using javascript, customer care support among others. A full list of features can be found here (http://recurly.com/features/)
The two drupal modules (https://drupal.org/project/recurly) and (https://drupal.org/project/recurly_roles) together allow for quick integration of the service with Drupal sites. If you require to give certain users of your site privileged access or role, and do not need a full e-commerce store running on top of commerce module, this setup should get you there.
Example usage scenario
- Currency support = Multi currency support is provided only in the enterprise plan that comes at $299 / month.
- Charge for 10 members paying 20 Euros per month = $99 + (10 x $0.1) + (1.25% of $275) ~ $104 + Merchant account charges
Charge for 500 members paying 20 Euros per month = $99 + (500 x $0.1) + (1.25% of $13744) ~ $322 + Merchant account charges
Useful links to check out
- http://recurly.com/pricing/
- http://recurly.com/features/
- https://drupal.org/project/recurly
- https://drupal.org/project/recurly_roles
- https://blog.recurly.com/2013/05/easily-integrate-subscription-billing-o...
https://blog.recurly.com/2010/08/top-ten-reasons-to-use-recurly-vs-gatew...
Drupal + Chargify
Chargify is another SaaS based recurring payments service that boasts of the standard features -https://chargify.com/features/recurring-charges/ but do not spell them out as clearly as Recurly does.
To use this with your drupal site you would need to develop custom business logic, which can use the chargify API module as foundation - https://drupal.org/project/chargify_api
Example usage scenario
- Charge for 10 members paying 20 Euros per month = $65 + Merchant account charges
- Charge for 500 members paying 20 Euros per month = $129 + Merchant account charges
- Useful links to check out
- http://chargify.com/
- https://drupal.org/project/chargify_api
- https://chargify.com/pricing-and-signup/
https://chargify.com/features/recurring-charges/
Drupal + Saasy (and others)
Like recurly and chargify, there are numerous other SaaS based recurring payment services. Here is a good list and comparisions of them = http://www.practicalecommerce.com/articles/3280-9-SaaS-Subscription-Bill...
From this list Saasy deserves a special mention because it has the most straight forward pricing, in which the merchant account costs are included in the pricing v, and there are no monthly charges.
Customer sign ups happen on a secure, hosted SaaSy order page which can be branded to your site's look and feel, but cannot be embedded inside your site.
Business logic in Drupal needs to be entirely custom coded to work with the Saasy APIs.
Example usage scenario
- Charge for 10 members paying 20 Euros per month = (8.9% of $275) = ~$25
Charge for 500 members paying 20 Euros per month = (8.9% of $13744) = ~$1224
Drupal + Commerce Subscription Product
Though this is now reported as an unsupported module, many have used it to create successful subscription systems in Drupal, including yours truly. The list of modules needed to configure a Drupal solution are -
- https://drupal.org/project/commerce
- https://drupal.org/project/commerce_sp
- http://drupal.org/project/commerce_paypal
- https://drupal.org/project/commerce_sp_paypal
Building a solution this way is recommended when you need to apply subscriptions to content on your site, to say promote certain content, though you can build priviledged roles/access based solutions too. Detailed process of building the business logic using commerce subcription product is well explained here -
http://shushuinbar.blogspot.in/2013/01/using-drupal-commerce-for-node_85...Though refunds, cancellation and customer support can be provided, they would be a challenge unless you build robust solutions for them.
Example usage scenario
- Currency support = All international currencies supported via paypal. Standard currency conversion rates are applicable though.
- Charge for 10 members paying 20 Euros per month = (10 x $0.30) + (4.5% of $275) = ~$16 + currency conversion charges
Charge for 500 members paying 20 Euros per month = (500 x $0.30) + (4.5% of $13744) = ~$770 + currency convertion
Drupal + Commerce License
The project commerce license https://drupal.org/project/commerce_license has been developed from ground up to be a drupal module that allows sites running on top of drupal commerce to sell access to things. A submodule is included that allows to sell access to premium roles on the sites.
To include recurring payment for licenses, you would have to use the modulehttps://drupal.org/project/commerce_license_billing and some amount of custom glue code for your business logic.
Both these modules are in alpha stage, so it would be recommended to build a proof of concept before you bet on them for production use.
Charges when using this solution would be the same as you would pay to your payment gateway for transactions and maintaining the merchant account.
Drupal + Stripe
Initiative has also been taken to build subscription suite for Drupal around the Stripe payment gateway, but it is not complete and does not seem to be under active development.
Links you should check out -
- https://drupal.org/project/stripe
- https://drupal.org/project/stripe_subscription
- https://stripe.com/docs/subscriptions
At the moment of writing this post, this solution is not recommended.
Conclusion
Based on the nature of your business, transaction volume, budgets, and developer resources, you have various options to choose from when it comes to building recurring online subscription systems in Drupal.
There is no one single solution that can be used for everybody’s needs.
Parting Note
Recurring payments in drupal is an area where new and better solutions and itegrations are bound to take place at a rapid pace, so do share your experiences.