Skip to main content

A PloneFormGen-based donation form that does checkout via PloneGetPaid.

Project description

Introduction

This package streamlines the process of creating a donation form within a Plone site that can process payments via one of the payment processors supported by PloneGetPaid.

On its own, PloneGetPaid provides a useful basis for processing electronic payments within Plone, including support for a number of payment processors. However, PloneGetPaid is optimized for the use case of purchasing products, and makes some assumptions that are suboptimal for collecting donations:

  • It assumes that any item purchased is represented by a content item within the site, which is not the case for arbitrary donations.

  • It provides no user interface for selecting among predefined donation levels -or- entering an arbitrary donation amount.

  • Its checkout process requires several steps, whereas making a donation should be as streamlined as possible.

pfg.donationform solves these problems by creating a PloneFormGen-based donation form with a custom “donation field” that provides an acceptable UI for configuring a donation amount and recurring donation. When the form is submitted, it can either process the donation immediately based on contact and billing fields included in the form, or can redirect to the standard GetPaid checkout wizard.

The donation field may also be used in other PloneFormGen forms.

Dependencies

pfg.donationform works on both Plone 3 and Plone 4. Recent versions of PloneFormGen and PloneGetPaid are required.

Installation

Add GetPaid to your buildout, using the instructions at http://code.google.com/p/getpaid/wiki/InstallingGetPaid to make sure you get the correct package versions.

Add pfg.donationform to your buildout.

Start Zope and install PloneGetPaid via the Add-ons control panel, and configure its settings.

Install “Donation Form” via the Add-ons control panel.

Make sure you have configured your Plone site’s mailhost settings.

Usage

Begin adding a donation form by selecting “Donation Form” from Plone’s Add menu. Fill out the fields and click “Add” to finish adding the form.

By default GetPaid uses a dummy payment processor that “accepts” payment without actually doing anything. You will need to configure GetPaid via its control panel in Site Setup.

Customization

Because the generated form is a PloneFormGen form, you may edit or add fields via the normal PloneFormGen user interface. If you add a field and want it to be included in the e-mail that is sent when a donation is made, you must also edit the mailer adapter and add it to the list of included fields. (All fields are not included automatically, in order to avoid sending sensitive credit card information via e-mail.)

If you let the Donation Form creation process add contact and billing fields to the form, make sure that you do not remove them or change their IDs – the GetPaid adapter expects to find them.

Credits

pfg.donationform was created for Groundwire by David Glick. Thanks also to Fulvio Casali.

Change history

Changelog

1.2.3 (2012-01-27)

  • Format donation amounts using the active locale, if possible. [davisagli]

  • Clear the shopping cart before adding a donation line item. [yomatters]

  • Default to using separate first/last name fields instead of a single name field. [davisagli]

  • Default to no limit on term of recurring payments. [davisagli]

  • Add some additional CSS hooks to the donationfield widget template [jessesnyder]

1.2.2 (2011-07-06)

  • Don’t break if there’s no IIntIds utility. [davisagli]

1.2.1 (2011-07-06)

  • Depend on zope.intid instead of zope.app.intid. [davisagli]

1.2 (2011-06-30)

  • Refactored the DonationFieldLineItemFactory to make it easier to override. [davisagli]

  • Moved form creation logic to helpers in the utils module. [davisagli]

  • PloneGetPaid is no longer a hard dependency. You still want it in most cases, so be sure to install it before installing pfg.donationform unless you know what you’re doing. [davisagli]

  • Fix imports for compatibility with Plone 4.1. [davisagli]

1.1 (2011-05-18)

  • Don’t put anything in the custom donation amount field if no suggested donation was configured (it used to display a ‘0’). [davisagli]

  • Add a minimum donation setting (defaults to $1) to help avoid automated bots testing credit cards. [davisagli]

1.0.4 (2010-09-23)

  • Add option to set up recurring payments that continue indefinitely, instead of prompting the user for a number of months to recur. [davisagli]

  • Fix view of donation fieldsets when they are contained in other fieldsets. [davisagli]

1.0.3 (2010-08-27)

  • Allow pfg.donationform to be present but not installed when upgrading a site to Plone 4. [jbaldivieso]

1.0.2 (2010-08-05)

  • Fix regression in handling the case where the default amount is None. [davisagli]

1.0.1 (2010-08-05)

  • Remove the ‘required’ setting for the donation field for now, since it doesn’t work properly and isn’t trivial to fix. Also the ‘hidden’ and ‘fgDefault’ settings, which don’t make sense for this field. [davisagli]

  • Fix bugs in highlighting the currently selected level. [davisagli]

  • Handle predefined donation levels with no label. [davisagli]

  • Fix the wording for the case where no predefined donation levels are specified. [davisagli]

1.0 (2010-08-03)

  • Mark the cart as an IDonationCart. [davisagli]

  • Fire a DonationCreatedEvent on the cart after a donation is added. [davisagli]

1.0b1 (2010-05-19)

  • Initial release. [davisagli]

Download

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pfg.donationform-1.2.3.zip (43.9 kB view details)

Uploaded Source

File details

Details for the file pfg.donationform-1.2.3.zip.

File metadata

File hashes

Hashes for pfg.donationform-1.2.3.zip
Algorithm Hash digest
SHA256 845adb52381affa65af14aaf37c219b018de18f16695c683bd7cb10d46153676
MD5 84bd3caecdbea263cb95075aa1d1ba1c
BLAKE2b-256 0148a76686e07e3d509bc386e6361d759845a84bbd4c5b17232316a4a19ab452

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page