This page specifies how support will be added to 4.2 for recurring contributions specified with price sets.
Background: 4.1 Data Flow
Currently a price set contribution requires that a price set with at least one field be set up. This inserts a record in civicrm_price_set, civicrm_price_field, and depending on the field's configuration, perhaps also civicrm_price_field_value.
Creating a contribution using a price set inserts a record in civicrm_contribution, civicrm_price_set_entity, and a row in civicrm_line_item for each field with a non-zero total in the price set.
Creating a recurring contribution inserts a record in civicrm_contribution_recur and one for the first scheduled payment in civicrm_contribution.
4.2 Data Flow
It appears no schema changes are required. When a recurring contribution includes a price set, when it is being set up we will begin to insert a record into civicrm_price_set_entity and one or more into civicrm_line_item exactly as would happen for a regular contribution using a price set. When a payment is completed on a recurring contribution, a civicrm_contribution record is created for the next schedule contribution payment if there are additional payments to be made. If the recurring contribution uses a price set, then the appropriate civicrm_price_set_entity and one or more civicrm_line_item records will be created.
4.2 User Interface
On the contribution page configuration amounts tab, when a price set other than -none- is specified, do not hide the Recurring contribution fields.
4.2 PayPal Pro Plugin
It does not appear that the plugins supported by the core team report line items to the payment processors. So no change is required.
4.2 Reports
It does not appear that there are any reports in the core product for recurring donations. So no change is required.
4.2 CiviAccounts
After this set of code changes are committed to core, changes that the CiviAccounts project is making to price sets will be incorporated, e.g. specifying financial_type for each line_item.
