Skip to content

fix importing campaign/event ID on a contribution starting with a number - #36477

Open
MegaphoneJon wants to merge 1 commit into
civicrm:masterfrom
MegaphoneJon:numeric-import-fix
Open

fix importing campaign/event ID on a contribution starting with a number#36477
MegaphoneJon wants to merge 1 commit into
civicrm:masterfrom
MegaphoneJon:numeric-import-fix

Conversation

@MegaphoneJon

Copy link
Copy Markdown
Contributor

Overview

If you have a campaign or event whose title starts with a number e.g. "26FY donations", and you import a contribution using that title, it will be treated as a campaign ID (in this case, 26) if that campaign ID is found first.

It appears that events have the same issue.

You can replicate this by creating a new campaign starting with 1, e.g. "1 test". Import a contribution with the Campaign column set to 1 test.

Before

Campaign titles imported as if they're IDs.

After

Only numeric values are searched by ID.

Technical Details

This has to do with how MySQL casts the value, but we should fix this at the import layer, not the API/db layer.

@civibot

civibot Bot commented Aug 12, 2026

Copy link
Copy Markdown

🤖 Thank you for contributing to CiviCRM! ❤️ We will need to test and review this PR. 👷

Introduction for new contributors...
  • If this is your first PR, an admin will greenlight automated testing with the command ok to test or add to whitelist.
  • A series of tests will automatically run. You can see the results at the bottom of this page (if there are any problems, it will include a link to see what went wrong).
  • A demo site will be built where anyone can try out a version of CiviCRM that includes your changes.
  • If this process needs to be repeated, an admin will issue the command test this please to rerun tests and build a new demo site.
  • Before this PR can be merged, it needs to be reviewed. Please keep in mind that reviewers are volunteers, and their response time can vary from a few hours to a few weeks depending on their availability and their knowledge of this particular part of CiviCRM.
  • A great way to speed up this process is to "trade reviews" with someone - find an open PR that you feel able to review, and leave a comment like "I'm reviewing this now, could you please review mine?" (include a link to yours). You don't have to wait for a response to get started (and you don't have to stop at one!) the more you review, the faster this process goes for everyone 😄
  • To ensure that you are credited properly in the final release notes, please add yourself to contributor-key.yml
  • For more information about contributing, see CONTRIBUTING.md.
PR commands & links...
  • /rebase <branch-name> will rebase your branch and change the base of the PR.
  • /squash will combine all commits (keeping only the first commit messsage).
  • /port <branch-name> will create a copy of this PR against a different branch.
  • /lintroll will automatically fix linting errors, amending commits as needed.
  • retest this please will rerun the tests and rebuild the demo site.
  • 📖 Review standards
  • 🗒️ Review template (brief or verbose)

➡️ Online demo of this PR 🔗

@civibot civibot Bot added the master label Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant