In May, Giant Rabbit relaunched CompassPoint Nonprofit Services’ website and CRM, transitioning them away from a proprietary CMS and CRM to a Drupal/CiviCRM solution. We came across a lot of unique requirements and challenges throughout the transition process. This post will focus on one feature that required significant customizations to CiviCRM: A multiple event registration shopping cart.
CompassPoint offers a large selection of workshops and trainings for nonprofits throughout the year. On their old proprietary platform, individuals were able to add events to a shopping cart and pay for them in a single transaction. In addition to their workshop offerings, CompassPoint also organizes a number of conferences throughout the year, with each conference containing a number of sessions for the attendee to choose from, organized by time slots. It was decided that both of these features were “must-haves” for the new Drupal/CiviCRM platform we were transitioning to.
When we decide to make heavy customizations to CiviCRM for one of our clients, we always do a cost-benefit analysis to ensure that whatever solution we implement gives our clients the most amount of functionality for the least amount of investment. Since CiviCRM releases updates on a regular basis, we wanted to ensure that our solution could flow with those updates, rather than force the platform to remain on an older release because of compatibility issues.
When a user visits CompassPoint’s website, they can view a list of workshops being offered, organized by category and location. The list is generated by a custom Drupal View that allows for filtering by category and location, as well.
When a user clicks “Add To Cart” on one or more of the listed workshops, there is a notification confirming the addition along with a link to the user’s cart.
From the View Cart page, the user can click “Check Out” to move on to the event participants and price level selection page. This page allows users to add participants to each event. If a custom profile is associated with the event, those fields will appear below the standard email and name fields for each participant. All participants for an event share the same price point selected for each event.
Once the user enters the participants and selects the price level for each event, they are taken to the payment page, which gives an overview of the full transaction and allows the user to enter billing details.
Conferences work much the same way as standard workshops, except that after the participants have been added for the conference event, there are subsequent pages, allowing the user to select sessions for each participant. Users are able to select a single session per time slot, with full session being designated with “Session is Full” and having their radio button disabled, preventing users from selecting them.
CompassPoint has been successfully using the multiple event registration shopping cart since launching the rebuilt platform in May. We are continuing to improve upon the system and are hoping to have a version of the code merged into CiviCRM core eventually. Until then, we’ve created a CiviCRM issue at http://issues.civicrm.org/jira/browse/CRM-8705 with a patch to CiviCRM 3.4.4.
Giant Rabbit is a technology consultancy dedicated to serving the needs of organizations making a positive impact on local and global communities. We are specialists in Drupal and CiviCRM, managing both large and small-scale deployments of both. We pride ourselves in knowing both platforms well enough that we can keep custom development to a minimum by helping our clients make the most of existing features, but we also have extensive experience implementing large and small customizations when necessary.
CompassPoint believes that nonprofit organizations and leaders need relevant support that builds on their strengths, experiences, and achievements and that those individuals and organizations that invest in increasing their leadership and management capacities are better poised to achieve progress. For over 35 years, CompassPoint has worked to carry out this purpose by guiding nonprofits as they become better managed, more adaptive, and achieve higher impact.