Page MenuHomePhabricator

Enable Recurring Annual Donations
Open, Needs TriagePublic

Description

  • We'd like to offer our supporters the ability to donate yearly [or pledge to give to us once a year] via our existing donation flows.
  • Need to consider how to record and treat these supporters in Civi and through stewardship comms, and parse out exactly what the UX flow would be (including "pledge" wording and functionality).
  • Think through technical requirements and any potential edge case issues.

Note: an update to this old phab: T251418: [Enhancement] Include option for annual frequency of donation

Event Timeline

Civi core already supports annual (or quarterly) donations via the frequency_unit (deafult 'month') and frequency_interval (default 1) columns on the civicrm_contribution_recur table. I'd suggest we use those same names as the query string parameters. I'll start with a patch to send those through to Civi from payments forms.

Then we'll need to update our nightly charge job to correctly calculate the next date when the donation isn't monthly.

Other work to do: Support annual donations in PayPal EC, update our logic that cancels active recurrings with no payments in 90 days, to exclude annual donations.

Change #1028528 had a related patch set uploaded (by Ejegg; author: Ejegg):

[mediawiki/extensions/DonationInterface@master] Allow annual donations

https://gerrit.wikimedia.org/r/1028528

Change #1028531 had a related patch set uploaded (by Ejegg; author: Ejegg):

[wikimedia/fundraising/SmashPig@master] Set up annual donations for PayPal EC

https://gerrit.wikimedia.org/r/1028531

Other work to do: Support annual donations in PayPal EC, update our logic that cancels active recurrings with no payments in 90 days, to exclude annual donations.

Patch is up for the SmashPig side of annual donations in PayPal EC, and it looks like our CancelInactives logic is already limiting to just monthly donations.

Change #1028549 had a related patch set uploaded (by Ejegg; author: Ejegg):

[wikimedia/fundraising/crm@master] Support annual donations in SmashPig Scheduler

https://gerrit.wikimedia.org/r/1028549

Change #1028561 had a related patch set uploaded (by Ejegg; author: Ejegg):

[mediawiki/extensions/DonationInterface@master] Pass frequency_unit for PayPal profile creation

https://gerrit.wikimedia.org/r/1028561

Other things we'll need: import frequency_unit in queue consumer, read it out of logs in audit processor, determine frequency_unit in IPNs.

Change #1028562 had a related patch set uploaded (by Ejegg; author: Ejegg):

[wikimedia/fundraising/crm@master] Pull in frequency_unit and interval from logs

https://gerrit.wikimedia.org/r/1028562

Change #1028563 had a related patch set uploaded (by Ejegg; author: Ejegg):

[wikimedia/fundraising/SmashPig@master] Handle annual recurring in PayPal IPN

https://gerrit.wikimedia.org/r/1028563

Change #1028562 merged by jenkins-bot:

[wikimedia/fundraising/crm@master] Pull in frequency_unit and interval from logs

https://gerrit.wikimedia.org/r/1028562

Other things we'll need: import frequency_unit in queue consumer, read it out of logs in audit processor, determine frequency_unit in IPNs.

I just checked, and the queue consumer is already importing it. The patch for the audit to pull it from logs has merged, and there is a small patch for the PayPal IPN listener in review to handle annual donations there. Checking on the python PayPal audit code.

Change #1028875 had a related patch set uploaded (by Ejegg; author: Ejegg):

[wikimedia/fundraising/tools@master] Handle annual donations in PayPal audit

https://gerrit.wikimedia.org/r/1028875

OK, got another small patch up for the python PayPal audit. That's all I can think of for now!

Change #1028549 merged by jenkins-bot:

[wikimedia/fundraising/crm@master] Support annual donations in SmashPig Scheduler

https://gerrit.wikimedia.org/r/1028549

Change #1028531 merged by jenkins-bot:

[wikimedia/fundraising/SmashPig@master] Set up annual donations for PayPal EC

https://gerrit.wikimedia.org/r/1028531

Change #1028563 merged by jenkins-bot:

[wikimedia/fundraising/SmashPig@master] Handle annual recurring in PayPal IPN

https://gerrit.wikimedia.org/r/1028563

Change #1032539 had a related patch set uploaded (by Ejegg; author: Ejegg):

[wikimedia/fundraising/crm@master] Allow importing annual recurring donations

https://gerrit.wikimedia.org/r/1032539

Change #1032539 merged by jenkins-bot:

[wikimedia/fundraising/crm@master] Allow importing annual recurring donations

https://gerrit.wikimedia.org/r/1032539

Change #1028528 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] Allow annual donations

https://gerrit.wikimedia.org/r/1028528

Change #1028561 merged by jenkins-bot:

[mediawiki/extensions/DonationInterface@master] Pass frequency_unit for PayPal profile creation

https://gerrit.wikimedia.org/r/1028561