I expect this is a common problem,

Treasurer get loads on contributions in CSV format ( Contact ID / Amount / Date )

Bulk loading contributions via CSV is completely detached from membership renewal.

As memberships are set to go 'grace' on expiry I think a script like

Search membership in grace If contribution made and receipt date > membership expiry date set membership status to current , set expiry to end next period, link contribution to membership

I don't think this is too challenging in SQL ( I haven't looked at API ing it )

So now the question, there are batch jobs - how are they created / structured ?

1 Answer 1


I have rewritten the code found in this thread https://forum.civicrm.org/index.php?topic=19322.0 'Collins22' chicago-orienteering.org/civicrm_code.htm

to suit my specific purposes. It isn't a civicrm extension nor uses API so far from architecturally pure, but it can be run as a php cron job so does the what is needed.

I have published the code on github https://github.com/alanef/civicrm-contribs-to-membership maybe it is of use to others - maybe some one wants to contribute and write it properly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.