Introduction
The pre reservation based booking flow is a solution made for Client Portal users to improve the process of booking events when purchasing a product.
This solution introduced to R93 version changes the sequence of business operations occurring during the booking process. Currently, when making a reservation along with purchasing a product, a debit transaction is created, the user receives the product, and the classes are booked. Only later does the user make the payment. This approach creates various issues, such as:
- Inability to apply a discount on the product in the shopping cart, because the debit transaction is already created and cannot be modified. Replacing it with a correction would involve complex business operations.
- If the user fails to pay for the transaction within a given time, a process must be implemented to clear unpaid transactions and the associated products and reservations.
- Notifications sent to users become complicated and need to be managed appropriately.
- The booking operation itself takes more time due to the execution of other business operations during the user's booking process.
Explanation of pre reservation based booking flow
The pre reservation booking flow only works in the client portal
The pre reservation booking flow only applies to events that require the purchase of a product during booking.
The new flow only works for the following types of reservations:
- Single class bookings
- Personal training bookings
- Facility bookings
In the new booking mechanism, the flow is 'reversed'. After the user confirms their intention to book a class, a 'Pre-Reservation' is created, containing all relevant information about the selected class, such as type, duration, and trainer. The Pre-Reservation also includes the creation date and an expiration date, which is calculated based on the value set in ClientPortal.Bookings.PreReservationValidityTimeInMinutes. At this point, no transaction, product, or actual booking is assigned to the user's account. Only after the product selected during the class booking is paid for, the Pre-Reservation is converted into an actual reservation. The reservation can be paid for immediately or added to the cart and paid for at a later time.
Configuration
To launch and configure the pre-reservation booking flow, there are three settings:
-
ClientPortal.Bookings.UsePreReservationBasedFlow- a flag to enable/disable the new flow. If disabled, the booking method will revert to the current flow. -
ClientPortal.Bookings.PreReservationValidityTimeInMinutes- the amount of time, expressed in minutes, that the pre-reservation will remain active from the moment it is created. -
ClientPortal.Bookings.MaxNumberOfActivePreReservationsPerUse- the maximum number of active pre-reservations a user can have at one time.
Changes visualisation
From user's perspective, flow looks the same way and wizard steps do not change at all. Business logic changes underneath. However there are some changes when the user already has active pre-reservation.
The examples given in this section refer to single class booking pre reservation
Visibility of pre reservation
When user has active pre reservation on some event, he will see Cancel pre reservation button next to the event.
From another user's perspective, this class will have -1 spot available while pre reservation is active.
At PGM in the class details modal, pre reservations will be marked in a different way to make the difference between the actual booking and pre reservation visible.
It will also be marked in a similar way at POS
Cancelling pre reservation
When user wants to cancel pre reservation he will see confirm modal
However, when user has already initialized payment for pre reservation, he will see confirm modal with warning
Shopping Cart
Some changes have been added to the shopping cart.
Cancelling pre reservation is available also from shopping cart - by clicking the bin icon
A clock has been added for each pre reservation, measuring the time remaining until its end. Next to the clock there is a tooltip explaining how it works.
When the pre reservation validity period expires, an appropriate message will be displayed.
When user enters shopping cart for the first time after pre reservation expired, he will be informed what happened.
PGM Pre reservations tab on user's profile
-
Status, possible statuses:
- Pending - default status for active pre reservation
- Booked - pre reservation has been paid and booking has been made successfully
- Expired - pre reservation expired
- Cancelled - pre reservation has been cancelled by user or by rejected payment
- Created on - timestamp, when pre reservation was created
- Validity - timestamp, when pre reservation will become inactive
- Booking Id - unique key of pre reservation
- Booking details - e.g. Name and date of the event
- Booking type - Single class, personal training or facility booking
- Payment status - status of payment for this pre reservation. Shares the same payment statuses from EPayment's tab
- Payment Id - Id of payment for this pre reservation.
If something went wrong, PGM employees can confirm pre reservation from this grid, by clicking on three dots to the right. Confirming pre reservation will result in creating proper booking from pre reservation.
Automation Events
Automation events are described in more detail in Here