Booking
Time slots booked from a calendar you design: appointments, paid sessions, pickup and delivery windows.
One calendar, three ways to book: an appointment with a form and no payment, an appointment paid with the product, or a pickup or delivery window chosen in the cart. You set the hours and the places on the product in Shopify, and Smootify counts them, so two customers never get the last one.
- Appointments with or without payment
- Pickup and delivery windows in the cart, required if you want
- Places counted on the server: the last one goes to one customer
- Schedule and bookings managed on the product in the Shopify admin
- Confirmed by Shopify Flow on every plan, Basic included
- Without the two Flow templates no order confirms its slots: the holds run out and the same slot can be sold again.
- Turn on the Smootify booking checkout rule, or a bookable product can reach checkout without a slot.
- A delivery usually needs a window: add data-required to the calendar in the cart.
- Make the slot template a button, so a full slot is disabled for the keyboard too.
Booking runs on the site’s licensed domain. On your .webflow.io address it runs once the site is paid, not during a trial. A paid slot becomes a booking when the order is placed, through the two Shopify Flow templates of the Smootify app: turn both on the day the calendar goes live.
One calendar, three ways to book.
The same booking-calendar books differently depending on where you put it: in a form, in the add to cart, or in the cart.
Appointments without payment
A fitting, a consultation, a visit to the workshop: the customer picks a slot and leaves a name and an email in a form you design.
Paid appointments
A haircut, a class, a tasting sold as a product: the slot is held when it goes in the cart and written on the order.
Pickup and delivery windows
Fresh bread on Friday evening or the weekly box: the customer picks the window in the cart and, if you make it required, the checkout waits until they do.
The last place goes to one person.
Two customers click the same 10:30 in the same second. A calendar in the browser cannot tell who was first. Smootify counts the places on its server, so one gets the slot and the other is told at once, before paying.
Five customers on the last two places, all at once: two bookings, three told the slot is full. That is how we tested it.
A slot in the cart or at checkout stays held for the minutes you choose, then goes back to everyone.
The places are kept for a minute in the browser, so moving between weeks asks Shopify nothing.
Run from the Shopify admin.
No booking dashboard to learn. The schedule and the bookings live on the product, where your team already works.
The schedule, on the product
- Appointment, pickup or delivery
- Weekly hours, closed days, special hours
- Slot length and places per slot
- How much notice, how many days ahead
- How long a slot stays held at checkout, 5 to 120 minutes
The bookings, next to it
- The next bookings on the product’s Smootify booking block
- Cancel a booking from the same block
- Book by hand for a phone call or the counter, even when full, with a warning
- Every booking an entry of the Booking metaobject
The checkout, guarded
- A checkout rule stops a bookable product without a slot, or with a slot already past
- Shopify Flow confirms the slots of every order, on every plan, Basic included
- A cancelled order gives its slots back
- A conflict trigger tells your staff when a slow payment finds its slot taken
A calendar you design, not a widget.
Days, slots, places left and the picked slot are elements you style in the Designer. Smootify repeats them and writes the states as combo classes.
is-todaythe day is todayis-closedno slot that dayis-fullevery place takenis-selectedthe slot pickedhas-selectionon the calendar, once a slot is pickedis-loadingwhile the places load
Day names and dates come in the site’s language, times in the time zone of your shop’s location. A full slot is a disabled button, for the keyboard too.
<booking-calendar days="7">
<button data-action="prev">‹</button>
<div booking="range">12 – 18 October</div>
<button data-action="next">›</button>
<div booking="day">
<div booking="weekday">Mon</div>
<div booking="day-number">12</div>
<button booking="slot">
<span booking="time">10:30</span>
<span booking="left">2</span> left
</button>
</div>
<div booking="selection"></div>
</booking-calendar>Automations on top.
Shopify Flows that react to what this add-on writes into Shopify.
Confirm the slots booked with Smootify
When an order is placed, Shopify Flow confirms the time slots it holds and saves each booking with the order and the customer.
See the flowGive back the slots of a cancelled order
When an order is cancelled, Shopify Flow frees the places of its time slots and marks its bookings as cancelled.
See the flowOften used together.
Metaobject creator
Webflow forms that create Shopify metaobjects, with no manual entry in the admin.
Read moreStore locator
Your stores, dealers and distributors on one Mapbox map.
Read moreMagic add-ons
Extras attached to a product, with their own titles and images at checkout.
Read moreStart in Figma.
Go live on Shopify.
Free to build, pay only when you go live. One Shopify app instead of ten, billed on the store’s Shopify invoice.
- One app on the Shopify bill, not ten
- Free to build, pay only when you go live
- Works on Basic, Grow and Advanced
- Your 1.x store keeps working
- Every element stays yours to change
- Docs indexed in llms.txt