Affects Version/s: None
Fix Version/s: 1.4
Users need the ability to import contribution data w/o requiring our PK (contact_id) to exist in the import data files.
This is an alternative (not a replacement) to the existing match via contact_id. We will use the configured Duplicate Matching rules for the site to identify the contact associated with each incoming Contribution import row.
1. Present an additional mapping option in the the field mapping Select_Values (options) for each contact field referenced in that site's Duplicate Matching Rule. So, given the default matching rule (first_name AND last_name AND email) - we would dynamically add the following options for contrib import mapping:
First Name (match to contact)
Last Name (match to contact)
Primary Email (match to contact)
(modify current label for 'Contact ID' option to also say 'Contact ID (match to contact)' for consistency)
2. Add validation to mapping screen - user must map one of the following combinations of 'matching columns'
- Contact ID only
- First AND Last Name
- Primary Email
- First, Last AND Primary Email
3. Import then proceeds as now - but uses the specified import col(s) to retrieve the contact for each contrib row.
4. Error handling rules:
4.1 If more than one DB contact record matches the data in the incoming row - the row is skipped (not imported) and it is reported in the error count, and the row is part of the error download - Error msg = "Multiple matching contact records detected for this row. The contribution was not imported."
4.2 If NO DB contact record matches, row is skipped etc (this should be exactly same as current matching on contact_id - except error msg should reflect the field(s)/value(s) which we tried to match on.