Setup Multiple Booking with WordPress

Monday, Jun 3, 2019

While most customers may wish to book on one course at a time you might have customers who wish to make multiple bookings for the same student or short courses that are purchased in groups. To make this work you will need to use Wordpress as your content management system, and make some configuration changed to CourseSales.com. The following will guide you through configuring WordPress for multiple bookings, assuming you have WordPress already set up.

There is some terminology to become familiar with in relation to multiple bookings. The person making the booking, while filling out one form actually makes multiple bookings within CourseSales.com - therefore they are allocated multiple document external identifiers. However not all the documents are created equal - there is a ‘parent’ document and then the additional documents are called ‘child’ documents. By default the document created for the first course selected by the visitor is considered the ‘parent’. For this reason within CourseSales.com there is a visual link made between the parent and the child in the list view, and an additional ‘Source Document’ action icon in the Document List page. This icon takes you to the list of documents relevant to the multiple booking that has been made.

Because CourseSales.com pre-fills in the data of other forms it is assumed that all forms will have the same (or most of the same) fields. This means that any fields on the ‘parent’ document form that are not contained in the ‘child’ document forms will not be transferred into the child, equally any fields on the child document form that are not on the parent will not be filled in. This might mean that a separate step needs to be carried out to gather additional data eg create a Process Step for a course category that sends an email requesting the customer to following a link to gather additional information eg licensing information. In the case of gathering AVETMISS information that might be required for multiple units or courses see below.

CourseSales.com configuration

  • Create a Process Step for the Cart and add to the Process Path, this will be the step that applied the process rules upon form submission.

  • Add any necessary emails, process rules and exports that are required for a multiple booking eg. gathering post-registration information eg AVETMISS. When configuring process rules based on the Multiple Booking Rule use the following to help you:

    • Single Booking only - Actions for those documents that have not used multiple booking
    • Multiple Booking Parent - Actions just once based on the form on the path where the “Cart” process step is specified
    • Multiple Booking Children - Actions for each child document based on the form on the path where the “Cart” process step is specified
    • Applies to All - Actions regardless as to whether the booking was made using multiple bookings or not.

Wordpress configuration

  1. On the CourseSales.com connector plugin:

    • Enable Multiple Booking

    • Set the Id for the cart Process Step

  2. Create a page within wordpress that uses the slug [coursesales-cart]

Optional changes

You might want to hide or show buttons based on if you want the customer to use the add to cart or standard booking form process.

Hiding buttons that are not ‘Add to cart’

Rename your register button to ‘Fast book’ - this by-passes the multiple booking feature and takes the student straight to a booking form. Alternatively hide the non-multibooking buttons with some CSS:

  a.cs_course_button:not(.cs_cart_course_add){
    display:none !important;
}

Displaying ‘Add to cart’ for some but not all course dates

Using CSS you can target specific course dates to show the Add to Cart function, eg when you have a collection of courses that you know people purchase as a group.

 /* By default hide all 'Add to cart' buttons */
.cs_cart_course_add {
display:none  !important;
}
/* But then show the 'Add to cart' button for specific course dates */
div[data-courseid="61050"] .cs_cart_course_add,
div[data-courseid="61090"] .cs_cart_course_add
{
 display:block  !important;
}

What about removing display of options in the drop down?

You might like to move some courses to be filtered on just a specific pages, if so you may need to remove these options from the select list. Using the codes for the course category identifiers create the following:

 $(document).ready(function () {
 
 $("#OptionCourseCategory option[value='21022']").remove();
 $("#OptionCourseCategory option[value='21606']").remove();
 
 });

Considerations when gathering AVETMISS information

Gathering AVETMISS means making a few assumptions:

  • The AVETMISS information submitted is the same for all courses eg: Reason for attending the training

  • When gathering the information the fields are relevant for all courses eg: all forms should contain ALL AVETMISS data fields, even if you are gathering reduced reporting data for some courses

So in the case of a configuration for all courses using the following forms:

  • Brief first step form that includes enrolment specific information including ‘Reason for attending the training

  • Detailed second step which asks for all AVETMISS data

At the brief step all information gets copied to ALL documents. At this brief step the actions carried out are:

  • Send an email using the rule ‘Multiple Booking Parent’ which sends a link to update the parent document ONLY with AVETMISS data. This gets the customer complete AVETMISS data, copied to the contact.

  • An export is made that triggers the USI validation loop, upon validation the AVETMISS data is copied into the contact.

All necessary information is now gathered, no further data is required on the child documents, the contact has the necessary data from the parent document. Note that this will mean the child documents will only have the most basic of information, ie NOT AVETMISS data and NOT USI data. This data is held at the parent document and contact (where it is reported on).

Multiple Booking Rule

The Multiple Booking Rule (seen below) is applicable to all catalog items. This means that you could offer Enterable codes if (and only if) the booking is a multiple booking. Or offer additional products if the registration is a multiple booking. This works independent to the ‘Multiple Booking’ Price Type.

Note
The Multiple Booking Applies To DOES have an effect on multiple booking discounts, if you set it to Parent Only then it only affects the parent price, or Children Only will only effect the price of the children. Remember that which Document will be a parent is determined by which course date is chosen first, so any discount applied is somewhat random. This could be useful when you want to apply just one discount for 2+ bookings, eg $50 off for two bookings. This would mean applying to the Parent will mean the discount is applied once, not on each course date.

Configure multiple booking Price Type

There is a Price Type ‘Multiple Booking’ option that enables a range of different configurations to encourage and reward customers to purchase more courses. Some of the types of arrangements can be:

  • Offer $5 off for all courses when you book 3 or more,

  • Offer $10 off for all courses when you book 6 or more.

  • Or both of the above together, eg no discount for 1 or 2 courses, or $5 off per course when 3, 4 or 5 courses are booked, or $10 off per course for all courses when 6 or more are booked.

  • Offer $10 off the first course when 2 are booked

Note
That this could also be used to account for course costs, eg if there is a cost that depends on the number of courses selected, eg shipping is $5 per course for the first 5 courses, $4 per course if you book 10 courses etc.. this can also be configured. That is the multiple ‘discount’ can be an additional fee too! The amount can be fixed, eg $5 or it can be a percentage eg 5%. It is applied to all courses once the specific number is reached.

Limiting discounts

The discount offering will be displayed where the ‘Catalog List’ field is displayed, to make it easier for people to see what would happen at each number of bookings you can include a zero discount at 1 booking. The largest number of booking configuration will be applied to all that are greater, ie if a $20 discount is offered at 20 bookings, and there is no further discount on the catalog item then bookings at and over 20 will result in a $20 discount off each course. To stop discounts over a large number you can add a item that says, for example 40 courses $0 - so discounts over 40 bookings are not offered.

Beta functionality - ie it might not work exactly as you expect

Advanced discounting functionality is currently in test mode where you can have different discounts on different groups of courses eg:

Course Date 1 has a multi-booking catalog item like this:

  • 1 = 0

  • 2 = $10 off

  • 3 = $12 off

Course Date 2 has a different catalog item:

  • 1 = 0

  • 2 = 5%

  • 3 = 7.5%

Someone books on these two courses, the price is Course 1 price minus $10 + Course 2 price minus (course 2 price * .05)

Additional discounts

You can have any other discount type in conjunction with the multiple bookings, just include it in the Catalog List. Though to manage it is easiest is to use the same Catalog Group on every Course Date.

Multiple Booking Replaceable Variables for Emails and PDF templates

Variables you can access related to multiple bookings are:

  • [Documents:DocumentParentId] - the Parent Id is the Id of the parent document in a multiple booking group

  • [PriceDetail:PriceMultiBooking] - the price effect of a multiple booking.

Troubleshooting

Why is my course date not showing?

Check the following:

  • Is the course date private?
  • Is the course date’s Master private?
  • Is the course category not active (also check other items are active like the process path etc)
  • Is the ‘Visible on public pages’ Checked for a step on the process path?