Skip to main content

Build and Manage Online Donations in Drupal with the Give Module

Donate.

So often an organization's online donation system is divorced from their website. For staff, it means one more tool to use and manage. For supporters, it can result in a donation experience that is tedious or clunky. There are free software tools like CiviCRM and CommitChange which do a good job of feeling integrated into your site, despite being a separate system. However, for smaller groups these tools can be overkill. We built the Give module to provide a lightweight donation solution built right into your Drupal site.

 

Easy Payment Processing with Stripe

Give uses the popular payment processor Stripe. It does all the heavy lifting of card validation and payment processing so that you can accept donations with confidence.

To get started, create a Stripe account at stripe.com:

Stripe account creation form.

Choose the "Integrate with Stripe's API" option:

Stripe's getting started screen, with API option.

Click the "Get your API keys" link on the dashboard.

Stripe's dashboard with link to creating API keys pointed out.

Copy the Publishable key and Secret key. You'll need these for configuring the Give module on your site.

Screenshot of Stripe's interface showing the API keys

On your Drupal site, enable the Give module. Then, navigate to Configuration > Web services > Give donation settings (/admin/config/services/give). Enter your API keys and if you'd like, enable problem logging under the Advanced Settings tab.

Give module's configuration page

You're now ready to start building donation forms in your site.

Simple, Flexible Donation Forms

Navigate to Structure > Donation Forms (/admin/structure/give) to see a list of forms. The module comes with a default donation form to get you started.

Give administrative page listing all donation forms.

For each form you can:

  • specify the recipients to be emailed when a donation is made
  • configure the subject and message for an automatic thank you email (common tokens available)
  • choose whether or not to ask for a mailing address
  • show an "other" message to collect donations by check or other method
  • set optional text above the credit card field
  • specify the page to redirect a visitor to after they donate
  • change the text of the "donate" button
  • choose recurring options to offer (available intervals are any number of days, weeks, months, or years)  

Give donation form creation page

Integrate with Paragraphs

Paragraphs is a popular module allowing content editors to build pages with a variety of components such as a featured image, text block, video, etc. in any desired order. Give adds a new paragraph type for "Donation form", giving you full control over your donation pages and allowing you to strategically embedding donation forms throughout a site.

To use a Donation Form paragraph, edit the content type you'd like a donation form available on by navigating to Structure > Content Types > Manage fields.

If you already have a paragraph field then edit the field and check the box for Donation form.

Field configuration page with paragraph options.

You will now see the Donation form paragraph as an option when creating a node of the content type you configured.

Paragraph selection field with Donation form option

After adding the Donation form paragraph, you will see an autocomplete field. Start typing the name of the desired donation form and select the form.

Paragraph donation form with autocomplete field.

People visiting your site can now see a form like this, in the context of the page you added it to, and entirely in control of your design and CSS if you choose:

Screenshot of a give donation form, with name, e-mail address, amount, recurring options as radio buttons, and a big Give button at the bottom.

People's contact information and intention to give is collected first, and then they are brought to a page, still fully on your site, with the payment options with which to complete the donation.

Donation Reporting

At Structure > Donation forms > List (/admin/structure/give/donations) you can see a list of donations. The list shows all donations, completed or otherwise. Donations are listed by date submitted and shows the donor's name, amount, the form used, donation method and recurring information.

List of donations on the site.

To see more details, click into the donation record. Here you will see additional contact information you collected such as their email address. For failed donations, Give displays the error recorded by Stripe to help with troubleshooting.

Report of a specific donation.

Conclusion

Giving to a cause we care about should be simple and hassle-free. By creating your donation forms from within your site you keep your branding and ensure a seamless experience for your supporters. The security of Stripe combined with the flexibility of Drupal means you can now build donation opportunities at exactly the moments in your site that visitors are looking for.

Give is free and open source software, available for anyone to use. If you find it useful, we encourage you to give (ha!) to the project to make it even better. If there's more that you'd like Give to do for your site, suggest a feature in the issue queue. We're always looking for ways to improve it.

 

 

CC0
To the extent possible under law, Clayton Dewey has waived all copyright and related or neighboring rights to Build and Manage Online Donations in Drupal with the Give Module. This work is published from: United States.

In other words, please reuse and remix this article as you see fit! No attribution is required, it just needs to continue to stay in the Public Domain.

Comments

2019 February 22
LN Webworks

Permalink

Thanks for sharing drupal…

Thanks for sharing drupal module 

2019 February 26
Yoyo

Permalink

Is it possible to have a…

Is it possible to have a give form per user?

Thank you for sharing the Give module.

2019 March 05
Clayton Dewey

Permalink

Hi Yoyo. You can create as…

Hi Yoyo. You can create as many donation forms as you'd like and embed one on each user's profile page. However, the module only supports a single Stripe account. So donations would all flow to a single place. Could you elaborate on your use case? That would help know whether it might make sense to plan a new feature for the Give module or recommend a different tool for your needs.

Thanks!

Add new comment

The content of this field is kept private and will not be shown publicly.