You can build your own highly customized booking experience using Sesami SDK.
The Sesami SDK is currently in closed beta release. If you're interested in trying it out, you can reach out to our customer success team via our help desk.
After this feature is activated on your store, you can enable it from:
Sesami app > Settings > Storefront settings > Use storefront SDK
Enabling the Sesami SDK means that you need to implement storefront integration yourself and the Sesami button will not appear on product pages automatically.
Sesami will not block your other resources from being loaded and will not cause any delays or decrease in your store's performance, So you will need to initialize it when it is ready and loaded:
The code above will create a Sesami instance, You use it to render a fully customized calendar and get availabilities for each day.
Each instance of the Sesami SDK will contain a
data object with the following structure:
A Sesami day object contains the following properties:
Date object representing this day
Returns a promise that resolves to an array of available slots:
Determines if this day is within the same month as the currently set date.
Determines if this day is within the same week as the currently set date.
Determines if this day is in the past.
Determines if this day is today.
Slot duration in minutes
Number of remaining slots in the currently selected time. Always 1 except for sevices that accept group appointments.
String representing starting date and time for the current slot in the selected timezone.
Currently the only possible value is "available" for storefront integrations.
You can pass several options to SesamiSDK, here are all possible options:
Valid Shopify shop ID.
Valid Shopify product ID.
Valid Shopify variant ID.
Timezone in which you'd like availabilities to be displayed.
IANA timezone values. example: America/New_York
Defaults to store timezone.
Team member name, exactly as entered in Sesami.
example: John Smith
Defaults to null, which will result in displaying availabilities for all team members that are connected to the current service.
Quantity - Only use for a service with group appointments.
defaults to 1.
The weekday that should be considered as the first day of the week. Accepted values are 0 - 6:
0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday
defaults to 0.
If this option is enabled, SDK will automatically fetch availabilities for the current month as soon as it is initialized, or the current date is updated.
defaults to false
Currently selected date.
defaults to Current time:
The Sesami SDK provides several methods to render a calendar and fetch availabilities:
Initializes the instance and starts fetching availabilities for the current month if autoLoad is enabled.
year | month | week | day
year | month | week | day
Loads availabilities for the currently selected range. Only needed if autoLoad is disabled. This method will only trigger a network request if the data is not already available.
Returnes formatted date in user's preferred locale.
This is a wrapper around
Object- Please check Intl.DateTimeFormat for available options
Returns a set of hidden input fields that are normally used in a Shopify storefront to add a product with the selected time slot as Line item properties to the cart.
Check out rendered result section in storefront integration for more information about these fields.
- slot: SesamiSlotObject returned from getAvailabilities method.