Why not just use an appointment app?
If your business is 100% appointments (a salon, a doctor's office), use a dedicated appointment platform — they're built for it. But if you're mainly a Shopify product store that also sells the occasional class, tasting, or photo session, a separate appointment app means a separate checkout, a separate customer database, and confused customers.
Time-slot fields inside your normal Shopify product checkout keep everything in one place. The customer adds 'Saturday tasting' to cart alongside the wine they're buying — same cart, same payment, same order confirmation.
Step-by-step setup
- Install Print It My Way. Time-slot booking is a built-in field type. Install the app from the Shopify App Store.
- Create the bookable product. Create a Shopify product for the class, session, or appointment. Set the price as a single variant — the slot selection is a personalization field, not a variant.
- Add a date picker. In the personalizer, add a date picker with the relevant date range (e.g. next 60 days) and your blackout days.
- Add a time-slot field. Add a time-slot field and define the slots — e.g. 'Sat 10am Class', 'Sat 2pm Class', 'Sun 10am Class'. Set capacity per slot (e.g. 12 attendees per class).
- Decide whether multiple slots are allowed. For classes, one slot per booking. For tastings where a group might book back-to-back tables, allow multiple. Set the rule in the field.
- Test the capacity logic. Add the product to cart and confirm a 'full' slot grays out. Place 12 test orders for the same slot and confirm the slot moves to full.
- Wire up the calendar. Use Shopify Flow or a Google Calendar integration to auto-create a calendar event when a booking comes in. The slot details are on the order line item.
Designing your slot structure
The shape of your slots determines how the booking page feels. Three patterns:
- Fixed times, multiple per day — e.g. 10am, 12pm, 2pm, 4pm tastings. Customer picks one. Good for high-volume, defined-duration sessions.
- Single time, multiple days — e.g. 'Saturday cheese class at 11am'. Customer picks a date; only one slot exists per day. Good for weekly recurring classes.
- Custom durations — e.g. 60-min photo session, 90-min photo session. Each is a separate slot type with different pricing and different capacity rules.
Cancellation and no-show policy
Set the policy on the product page so customers see it before booking. Common defaults:
- Full refund if cancelled 48+ hours before
- 50% refund if cancelled 24-48 hours before
- No refund for same-day cancellations or no-shows
Shopify's standard refund flow handles the payment side. For the slot itself, you'll need to manually release the slot back to availability when you process a cancellation — Print It My Way exposes an admin action for this.
Reminder emails and check-in
Most no-shows are forgetful, not deliberate. A reminder email 24 hours and 2 hours before the slot dramatically reduces no-show rate. Use Shopify Flow with a 'delay until' trigger based on the line-item property containing the date.
For walk-up check-in, the line-item properties show the slot on the order — your front desk can confirm the booking in 5 seconds by looking up the customer name or order number in Shopify admin.
Sell classes and appointments inside your normal Shopify checkout
Print It My Way's time-slot booking handles capacity caps, blackouts, and lead times — no separate appointment platform, no separate checkout. Install free.
Install Print It My Way — Free See the time-slot booking comparison →Frequently asked questions
Can I sell different slot durations on the same product?
Yes. Each slot can have a different duration label and you can map capacity differently — e.g. a 60-min session takes 1 slot, a 90-min takes 1.5 slots from the same pool.
What happens if two customers try to book the last slot at the same time?
Shopify's inventory system handles the race — only one checkout completes. The other customer sees 'slot no longer available' and is asked to pick another.
Can I require a deposit instead of full payment?
Yes. Use Shopify's 'partial payment' feature on the product or use a deposit app. The slot is held once the deposit is paid.
Does this work with Shopify POS for walk-up bookings?
Yes. Staff can add the bookable product to a POS cart, pick a slot, and the slot is held the same way as an online booking.
Can I export bookings to Google Calendar?
Yes — use Shopify Flow with a Google Calendar webhook, or a third-party integration like Zapier. The slot details are on the order line item.