Using Price Sets for Complex Pricing Structures

What is a Price Set?

Price sets are a feature of CiviCRM that allows you to create complex pricing structures. When you are creating a contribution page or an event, CiviCRM provides a basic, 10-item, radio button-style fee table (item, amount and whether the item is the default).

CiviCRM Basic Price Table

Quite often you require additional fields for the radio button list, or would like to combine radio button options with checkbox items and a field where the donor/participant can enter their own amount.

To create this kind of complex structure, you will need to utilize price sets.

For example, each year you have a golf tournament fund-raiser. A single golfer pays $150, a foursome pays $500 and each participant can bring two guests to the tournament dinner for an extra $50 per person. Obviously, this can't be achieved with the standard event fee table as radio buttons are 'this OR that', not 'this AND that.'

Given this scenario, you want to create a price set that includes radio buttons for the two golf fees (single and foursome) and two checkboxes--one for each of the two possible guests.

Price sets can be associated with either contributions or events. You can access the New Price Set and the Manage Price Sets menu items from either the Contributions menu or the Events menu. For our purposes we will look at a Price Set for an event as event-based price set fields have one additional piece of data that can be applied to them [see below under Adding Price Set Fields.

Creating a Price Set

CiviCRM New Price Set

  1. Navigate Administer → Events → New Price Set.
  2. Enter a Set Name that coincides with the event so that it makes sense to you.
  3. Check the Event Used For checkbox (if you are setting up a price set for a contribution page, check Contribution).
  4. Enter any instructions you feel are necessary in the Pre-form Help and Post-form Help fields.
  5. Make sure that Is this Price Set active? is checked.
  6. Click the Save button.

CiviCRM will refresh the screen and you will now be able to enter your fields.

Adding a Price Set Field

CiviCRM Price Set Fields

  1. Enter a Field Label.
  2. Select the appropriate Input Field Type from the drop-down. In our scenario above you would create 1 radio button (for the two golf fees) and 1 checkbox field (for the two guests).

    NOTE: Depending on the Input Field Type you select, you will have additional options available for configuring the Price Set.


  3. Enter a numeric value in the Participant Count field if you want the values of this field to count against the total number of participants for the event. THIS FIELD IS ONLY AVAILABLE FOR EVENT-BASED PRICE SETS.
  4. If you have selected Text/Numeric Quantity, enter a per unit price in the Price field.
  5. If you have selected Select, Radio or Checkbox you will be able to add all your field options to the Price Fields Options list.
    1. Select Default if a given option should be the default amount.
    2. Enter a Label for the item.
    3. Enter the Amount.
    4. To add additional options up to 10, click the another choice link.

      NOTE: If you need more than ten options, you can create an unlimited number of additional choices using the Edit Price Options link after saving this new field.

  6. Enter Field Help if necessary.
  7. If this field is required, check the Required? checkbox.
  8. Click the Save and New button to save this field and create a new one, or the
    Save button to finish.

You can now use your price set for an event (or contribution if you created a price set for a contribution page).

Enabling a Price Set

Price Sets are configured in both Contributions and Events through their respective Contribution Amounts and Fees forms. Assuming that you've set up your contribution page or event, enable price sets via:

For Contributions

  1. Navigate Events → Manage Contribution Pages.
  2. Click Configure for the contribution page.
  3. Click Contribution Amounts.
  4. Select the Price Set from the drop-down.
  5. Click the Save button.

For Events

  1. Navigate Contribute → Manage Events.
  2. Click Configure → Fees for the event.
  3. Select the Price Set from the drop-down.
  4. Click the Save button.