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:
Choose the "Integrate with Stripe's API" option:
Click the "Get your API keys" link on the dashboard.
Copy the Publishable key and Secret key. You'll need these for configuring the Give module on your site.
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.
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.
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)
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.
You will now see the Donation form paragraph as an option when creating a node of the content type you configured.
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.
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:
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.
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.
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.
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
Thanks for sharing drupal…
Thanks for sharing drupal module
2019 February 26
Yoyo
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
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!
2020 January 13
jackgmail.com
Pls share how we can add to…
Pls share how we can add to paragraph in detail i tried to add give entities to add but it don't work for me
2020 February 06
Clayton Dewey
Hi Jack, sorry to hear you…
Hi Jack, sorry to hear you're having trouble with the module. The donation form is a paragraph type. So, after enabling both the Give module and Paragraphs module, create a paragraph field, check the "donation form" paragraph type check box. Then when you add a paragraph using that paragraph field, you should see the donation form option. I hope that helps.
Add new comment