Booking System

Available on Website v9.5.0.2 and above. Check your version

The Booking system allows you to sell courses, seminars, and various kinds of appointments through your StoreConnect stores.

There are 4 main elements to the booking system:

You can access all the booking objects from the StoreConnect Bookings app via the app launcher in Salesforce.


Sessions

A Session is a fixed-duration time period that can be booked for a certain purpose for one or more attendees, e.g: an 8-hour long Session with a max of 10 attendees. A Session could represent a course, an event, or an appointment etc. Sessions are configured the same as regular products and then have the extra configuration requirements as covered in this article. They work within our normal Product system and can be browsed, searched for, added to cart, and purchased at checkout. Sessions can have variants too.

To be “bookable”, a session must have a Booking Duration otherwise all other session related fields are ignored.

Product Field Usage
Booking Duration (minutes) This defines how long a session lasts. If this product represents an hour-long appointment, then the Booking Duration will be 60
Booking Start Buffer (minutes) Required buffer time before bookings (booking can’t be made within this buffer time). Only applicable for availabilities specified via Availability rather than Bookable Event
Booking End Buffer (minutes) Required buffer time after bookings (booking can’t be made within this buffer time). Only applicable for availabilities specified via Availability rather than Bookable Event
Booking Max Attendees How many attendees can come to a single booking. A booking might be for a room that can accommodate many people
Require Attendee Details If true, the customer will be prompted to supply the details (name and either a phone or email address) of each attendee after checkout
Virtual Indicates the Product is not a physical product and therefore doesn’t require shipping


Locations

Sessions might be offered at multiple locations giving the customer a choice of what location works best for them. The Bookable Location object defines the locations that any session can be held, either physically or virtually and includes the relevant data for that location.

Bookable Location Field Usage
Active Whether or not the location is currently active. If false, no sessions will be offered for sale at that location
Store What store the location is associated with
Display Name The location name as shown in your store
Information Markdown Display information about the location to the customer (Plain Text, HTML or Markdown)
Time Zone The standard time zone of the location. All date/times for sessions offered here will be displayed in this time zone
Virtual Indicates to the customer whether this location is a physical or virtual location
Address Line 1  
Address Line 2  
City  
State  
Zip Code  
Country  


To join a session to a location, you create a Product Bookable Location record from either the Product or the Locations related list.

Product Bookable Location Field Usage
Bookable Location  
Product  
Max Bookings The maximum number of bookings that can be made for a given slot at this location before it is full (sold out)
Min Bookings The minimum number of bookings that need to be made for a given slot at this location before it can go ahead. This is largely an informational field, and by default is not shown to the Customer


Availability

Now that we have defined the sessions and their locations, we need to define when it is available. We have two ways to achieve this, depending on the session.

1. One-Off Sessions

Where there are events happening at certain pre-defined times - e.g. Courses, Conventions, Seminars, etc. They are generally one-off, in that they are being offered for sale once and do not reoccur, or at least not frequently. These can be set up in advance and made available for booking.

Using the Bookable Event object, you define a one-off availability for a session. It links a Product Bookable Location to a specific point in time to indicate that a certain product is being offered at a certain place, at a certain date/time.

Bookable Events Field Usage
Product Bookable Location  
Display Name An optional name for the session/event
Start Date The date the event starts
Start Time The time the event starts
End Date The date the event ends
End Time The time the event ends

If the time zone of the location is Pacific/Auckland and the Start Time is 9:00 AM, then this indicates the session is starting at 9am in Auckland.

2. Recurring Sessions

Where you have a session available on a regular basis, like multiple times per day an example, use the Availability object. You can define a set of conditions that determine a set of bookable slots without having to create individual Bookable Event records.

For instance, for a given product, Dance Classes, where there are teachers available every day from 10 to 5 for 90-minute lessons, it is impractical to create a Bookable Event record for each of those slots. Instead, we create an Availability record.

Availability Field Usage
Product Bookable Location  
Start Date The date the Availability starts
Start Time The time each day the Availability starts
End Date The date the Availability ends
End Time The time each day the Availability ends
Days of Week The days of the week the Availability applies to
Unavailable - Turns this into a record that defines unavailability when set to True  

Availability stacking

Availability records can be stacked on top of each other. If you wanted to extend the hours that lessons could be booked until 9pm, but just for the last 2 weeks of June, then you would create another Availability record for the extended times and dates. You can stack any number of Availability records to achieve whatever configuration you need.

Unavailability

Availability records can also be used to define dates and times when a session is not available to be booked. It only has any effect when it is stacked on one or more Availability records. For instance, if sessions should not actually be booked during lunch time, say 1 - 2 pm, then you can create an Availability record that is ‘unavailable’ between 1 and 2pm Monday to Friday. Multiple unavailability’s can be stacked as needed to achieve the desired schedule.


Attendees

When the customer has found a session they want to book, at the location they can attend, they can add the session to their Cart.

Once added to the Cart, the session is held for 15 mins (this time is configurable via the Stores Booking Hold Duration field. When a session is held, it reduces the number of places available for that slot by the quantity in the Cart. If the hold time expires the sessions are released and removed from the Cart. This feature prevents overselling a slot.

When the purchase is completed a Booking record is created for each slot booked. If quantity booked is 3, then 3 booking records are created.

Booking Field Usage
Account The Account of the customer who purchased the session
Contact The Contact of the customer who purchased the session
Bookable Event This is a lookup to the Bookable Event for this slot
Order Item The Order Product that it was purchased with
Status Booked, Confirmed, Cancelled or Attended

The record will be created with all those fields populated. Status will be set to “Booked”.

Note: If the booking was made by an Availability record, then a Bookable Event record will be created for the slot if it does not already exist. It may already exist if this is not the first booking for this slot. This way all the bookings for that slot can be found via the one Bookable Event record. If a session needs to be cancelled, all the bookings can be found by accessing the Bookable Event record for that date and time.

Attendee Details

For some use-cases, the contact details of the attendees may be needed. If that’s the case, set the ‘Require Attendee Details’ field to true on the Product. If that is checked, then the customer will be prompted to supply the details (name and either a phone or email address) of each attendee after checkout.

Booking Attendee Field Usage
Booking The lookup to the Booking record
First Name  
Last Name  
Phone  
Email  

The maximum number of Booking Attendee records is defined by Products Booking Max Attendees.

 

 
Back to Documentation