We recently ran our first civiEvent with online bookings (and quite complex pricing). I installed civiDiscount and configured two coupon codes for groups who should be free - the event organisers and the National Council of the parent organisation. I set the discount level to 100%, and while the coupons were registered as having been used, it did not change the price on the registration form at all. When I set one of the discounts to 99%, it worked as it should. Fortunately, all our payments were offline, but it meant we couldn't report reliable income figures.

From my reading of the documentation, a 100% discount should be possible, so is this in fact a bug?


  • Which version of CiviCRM are you on (you can see the CiviCRM version on the bottom of any CiviCRM page or on the list of modules)? I have seen it work properly on multiple versions of CiviCRM so that would be surprising if it suddenly stopped working.
    – Kasia W
    Apr 9, 2015 at 17:11
  • We are on 4.4.4 (until I get the test-site working again in order to test the upgrade process to 4.6). Apr 10, 2015 at 1:10
  • This functionality is being used fairly successfully on civicrm.org. However the price set is a lot simpler for civicon registration Apr 10, 2015 at 3:35
  • I've had problems using CiviDiscount on sites running Drupal 6. It's not 100% clear from your question whether you are using a price set. As I recall the issue I saw was that the only way to get a discount code to work was to use a price set, even when the pricing was very simple and didn't require one.
    – Graham
    Apr 12, 2015 at 6:43
  • 100% discounts work. But there is a caveat. If you have a use case where you aren't going to put a payment processor on a contribution form because everyone will use a discount code (purchased elsewhere) then someone doesn't need to enter anything into the field to get the benefit of the discount. Just hit Apply with an empty text box. This is because the discount field can't be marked as required.
    – herb
    Oct 14, 2015 at 12:25

3 Answers 3


Richard - I have used 100% discount w/Civi 4.3 + pricesets. I assume you included all your priceset options in your discount code configuration (you said you had complex pricing) since the 99% worked? CiviEvent code checks that prices do not go below zero but zero should be fine. You mentioned you're using offline registration ("Register Event Participant") which goes through a different codepath in cividiscount than 'online'.
You or one of your team could set up a test participant, use the 100% discount, and afterwards query the MySQL database table cividiscount_track, and see if you don't find a row for that participant (cividiscount_track.entity_id is a FK on cividiscount_track, where entity_id = civicrm_participant id).


This is likely something to do with your installation. Please try to replicate on a demo server. If you are able to then it would be nice for you to create a bug report.


I did have troubles with 100% discounts on older versions of cividiscount, upgrading to cividiscount 3.2 fixed them for me.

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.