Bulk Discounts: Page cannot dynamically resolve price based on school choices - Iterim SOLUTION


In an event, users choose which weekends they want to attend all on one page but the page does not dynamically update the total price to be paid for events chosen. Unfortunately Civi has no built-in method to do this

Like most web frameworks, Drupal & Civi do not use pre-created pages to display information but use a page template to fill in fields, blocks, zones, etc according to user configured page-specific logic to retrieve data from a database.  Once a page is rendered, users interact with the page, making choices, adding data, etc. On hitting a form confirmation button, data is retrieved from the page. For example, say school prices are $100, $200, $300, for 1, 2, and 3 schools.. A default value of one school and $100 is set. Regardless of what values are chosen for number of schools, there is no method to dynamically update the price.

Some ideas have included using javascript or jquery to dynamically update the page but integrating such code into CiviCRM has not been successful in the past. CiviCRM uses php, which we have found isn't ideal for dynamic updates. Other ideas include re-computing prices post userform submit. That idea seems a decent compromise but we have yet to determine how CiviCRM pulls values from radio boxes. Once we do, we can re-visit this idea.

Interim solution
CiviCRM has the ability to use a shopping cart for event registration and payment. We have modified this code to allow bulk discounts and date specific pricing. Ideally the cart could be a bit more efficient but it is assumed the majority of the user base is familiar with shopping carts and would not have an issue navigating such a setup.