Aller directement à la fin des métadonnées
Aller au début des métadonnées

Documentation Search

CiviCRM 4.1 Documentation

Developer Resources

CiviCRM books!

Make sure to check out our Online User/Administrator and Developer Guides! You can also support this project by ordering a hard copy.

Or support us by buying an eBook or hard copy of Using CiviCRM from Packt Publishing.

A new checkout workflow allowing for multiple events and participants to be paid for with a single financial transaction.


The new workflow is configured with a global setting, "Use Cart Checkout workflow", in Administer -> CiviEvent -> CiviEvent Component Settings.  Please note that none of the following functionality will be available until this setting has been enabled.  When cart workflow is enabled, any event registration links will be changed into "Add to Cart" or "Remove from Cart" buttons, and the "Conference Slots" subevent management tab will be available through the event management interface.

View Cart

View of all events in your cart so far, with links to event info and Remove. A button will take you to checkout, asking you to log in if you haven't already. Anonymous users can have items in their cart, but cannot begin checkout without an account.

You are encouraged to add a Cart menu, pointing to civicrm/event/view_cart in your site navigation.

Participants and Prices

Any number of participants can be added to each event. If the event has a pre- or post- profile group set, those fields will be displayed here.

Subevent Selection

A hierarchy is possible between events. In the Manage Events page, on the "Conference Slots" tab of the event you would like to make into a subevent, you can choose a main event by title. The conference "Slot" label is a grouping like "Morning Study Sessions", a rough time slot in which each participant will have to select one event to attend.  To manage conference slot labels, go to civicrm/admin/conference_slots?group=conference_slot&reset=1.

If the cart contains any events which have been made a "main event" in this way, a page will appear for each participant, allowing you to select one session from each slot. These session selections are displayed for review on the next page, and each participant will receive an email confirming individual selections.


Payment is the same as in single event registration. Contributions are linked with the logged-in user's contact id. If an event is unpaid, or discounts add up to the full tuition, a zero-dollar contribution is created.

One payment has been approved, an email receipt goes out to the payer, and a confirmation to each participant contact.


A final "thank-you" page appears, detailing each line item of the transaction and confirming the transaction number.

Variation: Admin-mode Checkout

If the logged-in user has the "administer CiviCRM" permission, there is an additional "Billing email" field at the top of the payment page. Contributions will be linked with this contact instead of the administrator's contact.

Other payment options will be available in admin mode, such as pending check payment.


Event cart tests have been written for PhpUnit, we are in the process of merging these tests into Civi trunk.

Known Bugs


  • save to the participant.fee_level and contribution.amount_level columns
  • correct contribution.source
  • hacked formatting is still funny for multiple price sets
  • no default radio selection for event fee
  • hook up .js priceset subtotalling using Price/Form/Calculate.tpl
  • add a "view cart" button on the event info page
  • provide help text on Conference Slot option editor
  • merge with single event workflow and message templates
  • default receipt email: event fee section is empty and title is "FIXME"
  • "cid=0" not fully implemented (email=null and for the billing contact)
  • Payment "Go Back" button needs to appear second in the generated html
  • credit card fields / bank acct fields should not be hardcoded
  • paypal button not wired up
  • relies on "On waitlist" status, which is not marked is_active in default civicrm_data.sql?
  • Aucun