I'm working on setting up an event there are 2 ticket types: individual tickets are $20 each Table of 8 is $130

So a person might purchase 1 ticket at 20 or 2 at 40 or a table of 8 for 130. However many tickets they purchase I need to collect the names.

I'm using Drupal 7 and have webform so that's an option. I've never set up an event like this in Civi so struggling a little bit to make it work.

  • That's a good use case for webform_civicrm! Happy to share some examples - do you need just Names or would you like to generate Contact records for them? – KarinG - Semper IT Apr 10 '17 at 20:17
  • Please do. I've been trying to set something up with webform civi but surely there's an easier way than what I'm doing. – frTommy Apr 10 '17 at 20:18
  • Contact records – frTommy Apr 10 '17 at 20:45
  • Ok got a working example for you - posting some screenshots shortly. – KarinG - Semper IT Apr 11 '17 at 15:09
  • Hi - I've also added what the conditionals would look like to hide/show appropriate number of Guest fields - based on the # tickets that is selected; – KarinG - Semper IT Apr 12 '17 at 0:21

Definitively a good use case for webform_civicrm! I've drafted an example for you - here's the screenshots:

  1. I always use webform, webform_civicrm, webform_validation modules

  2. In CiviCRM: create Event - it really needs nothing other than a Type, Role, Title - (if needed) a limit on the number of participants; mine is a Public Event (not sure that's needed - but 99% of my Events are public so I made that default); Leave everything else blank (Fees, Online registration tabs - not needed). This is what it looks like:

enter image description here 3. In CiviCRM: make sure you have a Contribution Page that has a Payment Processor installed that you'd like to use. It can be a page completely not related to the Fundraising Event.

  1. In Webform: View (see below) - for Transparency I'm showing a lot of fields here that you could hide if you like:

enter image description here

  1. If you toggle to Five Tickets: (a Table is $40 -> so $8/each Participant):

enter image description here

  1. Conditionals are the key thing in making this happen:

enter image description here

  1. Here's the checkout for a Table: enter image description here

  2. And in CiviCRM: 5 Contact Records -> all Contacts registered as Participants in the Event:

enter image description here

  1. Things to keep an eye on: Guest Contacts -> duplicate records; First Name + Last Name + Email address would be good if using unsupervised rule (no logged in user); You can make your own rule and use that for your Guest Contacts too. What duplicate rules work best for you really depends on your specific CiviCRM;

  2. I typically add relationships - easy with webform_civicrm to give all Guests a Relationship to Primary Contact.

  3. UPDATE: adding in conditionals to show the number of Guests fields: This properly toggles the fields from Primary Contact + Guest 1 (in case two tickets is selected) to Primary Contact + Guest 1 + 2 + 3 + 4 (in case five tickets are selected) - I find it easier to go about it with isn't shown.

enter image description here

  • Would you do a screenshot of the Civicrm part of the webform especially the Event and Contribution part. So there's not any way to make the guest fields update automatically to the number of tickets chosen? For instance rather than radio buttons have a drop down for number of tickets and then that many guest fields appear? – frTommy Apr 11 '17 at 15:54
  • For sure you can do that - you just need more Conditionals to hide the Guest fields that should not be shown depending on what ticket number is set at. – KarinG - Semper IT Apr 11 '17 at 16:04
  • So I added additional conditionals but get an error when saving. I posted the screenshots to the original question. – frTommy Apr 11 '17 at 19:57
  • Right you can only have one action per webform element; You need to do an OR - if tickets = 1 or tickets = 2 or .... tickets = 7 then Guest8 is not shown – KarinG - Semper IT Apr 11 '17 at 20:57
  • 1
    In D7-> you need webform_layout module; in D8 -> you can use the baked in flexboxes – KarinG - Semper IT May 22 '19 at 16:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.