Motivation
As of CiviCRM 3.0, the contribution honoree functionality is very similar to the contribution soft credit functionality. For the sake of consistency, usability, and easy of improvement, these two functionalities should be consolidated into one slightly more generalized functionality.
Here is a summary of the specific features from each functionality that I would like to see consolidated
feature category |
feature description |
currently possible |
currently possible |
data storage |
ability to have multiple credits for the same contribution |
no |
yes |
data storage |
ability to store different types of credits |
yes |
no |
user interface |
ability to create a new contact record for the contact receiving the credit while entering the contribution |
yes |
no |
user interface |
ability to add multiple credits for the same contribution |
no |
no |
user interface |
ability to add a credit to a contact that is not an individual |
no |
yes |
Changes to the data structure (and data)
- add column `soft_credit_type_id` to table `civicrm_contribution_soft` as an implicit FK to `civicrm_option_value`. (This structure mirrors the `honor_type_id` column currently in the `civicrm_contribution` table)
- move the data:
- create new option values (or possibly just change the name of the group from 'honor type' to soft_credt_type
- set the soft_credit_type for all soft credits to be of a type called "Fundraised by"
- move all of the honor information from `civicrm_contribution` to `civicrm_contribution_soft`
- remove the columns `honor_contact_id` and `honor_type_id` from `civicrm_contribution`
- add column `soft_credit_type_id` to `civicrm_pcp_block` to store the type of soft credit that personal campaign pages will use for a given contrbution page
Changes to language
- The name of the resulting functionality should be called "soft credits" to follow the concept most similar
Changes to the user interface
When entering a contribution manually
- Adding a new soft credit would have a javascript interface to add multiple (like with emails/phones on a contact record)
- Each soft credit would contain the following fields
- auto-complete text box for selecting the contact record, along with a drop down box with contact types for creating a new record (mirroring the layout at the top of a "New Contribution" screen, for example)
- drop down box with soft credit types
- id value for personal campaign page (useful for users to have access to this from the front end, I've found)
- checkbox for pcp_display_in_roll
- text box for pcp_roll_nickname
- text box for pcp_personal_note
When configuring personal campaign page settings for a contribution page
- the settings form would present a drop down box allowing the administrator to choose a soft credit type that personal campaign pages will use when they are created for the given contribution page
Questions to answer
- How will these changes affect contribution import/export?
- Why does the the civicrm_contribution_soft table have a column for `amount`? Should we have a field where the user can actually change the value?
- When we were designing the soft credits schema, folks told us it would be useful to support split credits at some point - e.g. 1 contribution for $200 with $150 soft credit assigned to constituent A and $50 to constituent B.
