On-site Donations for Charity Websites or How (Not) to Donate Using Drupal

Posted 14th July 2017
On-site Donations for Charity Websites

Apologies for the slightly exaggerated title, but I want to bring attention to an area in the Drupal content management system which I think is seriously lacking.

Yesterday, a client contacted me to ask me to send them a quotation to redo their website. One of the features they were asking for was the ability for site visitors to make one-off donations or set up regular donations from within the site. The client had given me the example of the donation facility at www.cord.org.uk as the kind of donation facility they wanted to have. The donation facility Cord have set up is easy to use, flexible and attractive, and allows visitors to make a one-off donations or set up recurring payments without leaving their site.

There are many third-party services to enable one-off donations or recurring donations such as JustGivingBT MyDonateVirgin Money Giving to name a few, and it is very easy to integrate these into a website. Drupal, however, is very limited in what it can offer for a donation facility contained within the website, and in this instance my client specifically wants an on-site solution and not a third party service.

Such a feature request is far from unusual. A lot of the work I do is building websites for charities, and the ability for visitors to be able to make donations easily is a standard and important feature for charity websites.

Drupal is by far my favourite tool for creating websites. Whenever I have a project to do, Drupal will always be my first choice in building the site. I like Drupal because it is so flexible and allows me to build all kinds of different websites with differing requirements such as membership sites, community sites, and many others. Drupal allows for fine-grained permission control over the roles of different administrators, and seems to have a module for everything. I am always surprised by how often I look to see whether the there is a module to do a particular thing I need to do and there it is. Not only that, but Drupal is also very intuitive to use and incorporates many of the latest websites trends. I could go on.

However, when it comes to building charity websites, there is one thing that is missing, and that is the easy ability to add a donations facility to a site, without resorting to a third party service. There are only a few production ready Drupal modules which do offer this facility such as Paypal Donate and Commerce Donate. As far as I can see, these are the main modules available and they give very limited choice for donations. Commerce Donate does not give the ability for recurring donations and if you don't want to use PayPal then as a Drupal site builder (ie me) you are stuck for choice.

If I want to be able to offer a new Drupal site for this client then I need to be able to offer them on-site donations. I can't use Commerce Donate as it doesn't offer recurring donations, and anyway seems to me to be overkill to set up such a complicated module for a fairly straightforward feature, and my only other option is following the PayPal route which they may or may not be happy to accept. These limited options seem a great shame to me as Drupal is so good in so many areas but lacking in this one important area.

One payment gateway that I really like at the moment, and have been using in another project, is Stripe. Stripe is a very flexible payment system that offers one off payments as well as recurring payments. Stripe has a good administrative interface, and is easy to set up. There are a few modules in Drupal that provide Stripe integration (StripeStripe Subscription and Commerce Stripe are some of them), but none that combine both individual payments and recurring payments or are production ready. It would be great if there was a module that integrated the stripe payment platform (or even another payment platform) into Drupal for single and recurring payments.

As a consequence of this shortcoming in Drupal, I am looking at other CMSs I could use to build their site for them, such as WordPress or Craft. Why WordPress or Craft? Well, because they are both flexible content management systems, and most importantly in this instance, they both have excellent Stripe integration modules (eg: Charge for Craft, or WP Simple Pay Pro for WordPress) which I can add on fairly easily, without having to write custom code. Yes, both of these options are commercial plug-ins, as opposed to the open source modules available in Drupal, but the overriding requirement here is that I need to be able to set up the donation facility fairly quickly in order to keep the cost of the quotation down as much as possible, otherwise I will lose out to competitors. At the moment I'm leaning towards using Craft, but I would really much rather be using Drupal.

I hope that this article will act as a trigger for the Drupal community to look at the ability to offer a feature for combined individual and recurring payments (not just donations) so that it is able to compete in this area with the other CMSs (and mean site builders like myself, can continue to use Drupal as their preferred CMS where on-site donations are a requirement).