I know you can limit how many times in total a discount code can be used, but how do you limit how many times a single person can use it? We want to offer our members a discount on 3 of our one kind of training. There are many of these each year, so they would pick which ones. We don't want them to be able to just keep using the code beyond 3 and we don't want to have to create a unique code for every single person. Is there a way to limit that so they can only use it 3 times?

Also, is there any way to also limit to by a membership?

  • Do you have a budget? For the first requirement perhaps extending github.com/civicrm/org.civicrm.module.cividiscount would be a valuable cause?
    – Zachary
    Mar 3, 2020 at 0:24
  • 1
    No, other than maybe a small amount, no real budget (it would be me paying for it out of my own pay). What will happen is they'll just create (and later delete once used) a custom code for every single person when they get/renew their membership. I've seen a number of people on here request this same thing, but they never got any answers to their posts. This is a basic on every other discount module I use across CRMs, CMSs, store software, etc. I'm surprised such a basic is missing here. Mar 3, 2020 at 5:50
  • That was going to be my suggestion, one code per person. The tables for civicrm_discount are not difficult to work with, might be a way to bulk create them
    – Zachary
    Mar 3, 2020 at 18:34
  • Would credit work as a workaround - instead of a percentage - a set amount? Also - I don't see any issues in the issue queue related to this - would be worth while opening an issue - developers might not know this is something worth doing.
    – themak
    Mar 3, 2020 at 23:32
  • They'll be creating them as people buy/renew memberships. There's no way they would be able to deal with any kind of auto-creation. This is only for like 10% of our 10,000+ database, so we definitely don't want to be creating them for everyone in the db. Mar 4, 2020 at 4:39


Your Answer

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

Browse other questions tagged or ask your own question.