Booking System
This is a comprehensive overview of the booking system integrated into StoreConnect stores, which facilitates the sale of courses, seminars, and various appointment types.
Here you will learn how each component works in order to create a bookable product.
There are 4 main elements to the booking system:
- Sessions - What is being booked.
- Bookable Locations - Where is it being held.
- Availability - When is it happening.
- Booking Attendees - Who is going.
You can access all the booking objects from the StoreConnect Bookings app via the app launcher in Salesforce.
Sessions
A Session is a designated time slot, fixed in duration, that can be reserved for specific activities by one or more participants. For example, an 8-hour session could accommodate up to 10 attendees or more.
Sessions can represent a variety of activities, including courses, events, or appointments, and are set up similarly to regular products. However, they require additional configurations as detailed in this article.
Sessions integrate seamlessly into our normal Product system; they can be browsed, searched, added to cart, and purchased at checkout.
Additionally, sessions can be configured as variants of a master product.
For a session to be considered “bookable”, it must have a set “Booking Duration”, without this specification, other session-related fields will be ignored.
Session Fields
Found under the “Booking Information” section of the product.
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) | The required duration before next booking during which no other booking can be made, allowing for preparation time prior to the start of a session |
Booking End Buffer (minutes) | The required duration after a booking which no other booking can be made, allowing for wrap-up or admin time following the end of a session |
Booking Max Attendees | How many attendees can come to a single booking. A single ticket might be for a table of 10 so the max per booking would be 10 |
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 if the Session does not include shipping a physical product and therefore doesn’t require shipping at checkout |
Bookable 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 Fields
Found under the “StoreConnect Bookings” > “Bookable Locations” or via the “Product Bookable Locations” related list of the product.
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 |
Bookable Location Name | Name of the Location |
Store | What store the location can be sold from |
Display Name | The location name as displayed in your store |
Information Markdown | Display information about the location to the customer (Plain Text, HTML, or Markdown) |
Standard Time Zone | The time zone of the location (Standard Time). 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 Field |
Address Line 2 | Address Field |
City | Address Field |
State | Address Field |
Zip Code | Address Field |
Country | Country Lookup |
Joining Sessions to Locations
To join a session to a location, you create a record from the Products Bookable Location related list. Here you can also set a maximum number of tickets available per time slot at each location.
Product Bookable Location Fields
Found under the “StoreConnect Bookings” > “Product Bookable Locations” or via the related list of the product.
Product Bookable Location Field | Usage |
---|---|
Bookable Location | The Location where the event is being held. |
Product | The “Product” or Event being held at the location |
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 they are available. We have two ways to achieve this, depending on the session type.
The availability start and end times will need to be wide enough apart to fit a booking duration plus any buffers.
If either the availability time set is too short or the booking duration on the product is set longer then the start and end time of the availability then no session result will show for the product.
Availability Fields
Found under the “StoreConnect Bookings” > “Availabilities” or via the “Product Bookable Location” Related list.
For both one-off and recurring sessions, you can use the Availability object to define when sessions are available. Here’s how to set it up:
Field | Usage |
---|---|
Product Bookable Location | The related record that holds the min/max bookings and 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 (for recurring sessions) | The days of the week the availability applies to |
Unavailable | Turns this into a record that defines unavailability when set to True |
Once-Off Sessions
For once-off sessions, create a new availability record and simply enter the specific start and end dates including the start and end time for the period of the event (Make sure the Products “Booking Duration” matches the time period required (eg: If it goes for 2 hours put 120 minutes on the Product). After the customer checks out with the booking product a “Bookable Event” is created on the related section of “Product Bookable Locations, this shows the details of the bookable location and the details from the availability object, including the attendee details.
Recurring Sessions
Where you have a session available on a regular basis, like multiple times per day you can define a set of conditions that determine a set of bookable slots.
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 multiple availability records for each of those slots. Instead, we set the booking duration on the product for the period per each lesson ( 90 minutes ) then set the start and end time for each day the lessons are run for the 90 minute period. This will then populate a session every 90 minutes within the 10 to 5 period or as desired ( keep in mind you can set a start and end buffer under the products booking section if break time between sessions is needed.
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 that specify availabilities. For instance, if sessions should not actually be booked during lunch time, say 1 - 2 pm, then you may have an Availability record stating availability between 9am and 5pm and then create an Availability record that is ‘unavailable’ between 1 and 2pm Monday to Friday. Multiple unavailabilities can be stacked as needed to achieve the desired schedule.
Booking Attendee
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.
The record will be created with all these fields populated and Status will be set to “Booked”.
Note: If a session needs to be cancelled, all the bookings can be found by accessing the Bookable Event record for that date and time.
Booking 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.
When the customer selects themselves as an attendee, their attendee record will instead lookup their Contact record. StoreConnect does not create contact records for attendees but you can manually or via Salesforce automation link the attendees to new or existing contact records if you wish.
Booking Attendee Fields
Found under the “StoreConnect Bookings” > “Booking Attendees” or can be added to the “Order Product” page as a related list.
Booking Attendee Field | Usage |
---|---|
Booking | The lookup to the Booking record |
Attendee | Lookup to Contact if attendee is the one who booked it |
First Name | As entered from website |
Last Name | As entered from website |
Phone | As entered from website |
As entered from website |
The maximum number of Booking Attendees for a Bookable Event is defined by the product’s Booking Max Attendees field.
Back to Documentation