2.0 Beta

Smootify 2.0 is in public beta. Your 1.x store keeps working. Move when you want.

What changed
New in 2.0 · Server plan

Booking

Time slots booked from a calendar you design: appointments, paid sessions, pickup and delivery windows.

ReplacesAppointment booking app; pickup and delivery date app, $13.99 to $79.99 /moStarting paid plan of the most-reviewed app for this on the Shopify App Store, checked 2026-10-06.
PlanServer
Shopify plan Basic, Grow, Advanced, Plus

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
Where people get stuck
  1. Without the two Flow templates no order confirms its slots: the holds run out and the same slot can be sold again.
  2. Turn on the Smootify booking checkout rule, or a bookable product can reach checkout without a slot.
  3. A delivery usually needs a window: add data-required to the calendar in the cart.
  4. Make the slot template a button, so a full slot is disabled for the keyboard too.
The honest footnote

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 hard part

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.

Customer A10:301 left Booked, held while they pay
1 place leftSmootify counts it
Customer B10:30FullJust taken: 12:00 has 3 places
5 → 2

Five customers on the last two places, all at once: two bookings, three told the slot is full. That is how we tested it.

5–120′

A slot in the cart or at checkout stays held for the minutes you choose, then goes back to everyone.

1 min

The places are kept for a minute in the browser, so moving between weeks asks Shopify nothing.

shopify admin

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
webflow

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 today
  • is-closedno slot that day
  • is-fullevery place taken
  • is-selectedthe slot picked
  • has-selectionon the calendar, once a slot is picked
  • is-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.

Often used together.

All 17 add-onsBrowse the add-ons

Start 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