💰 How to set Pricing by duration for Appointment Booking Service
Pricing by duration lets you offer the same appointment service at different lengths — and charge a different price for each length. For example, a 30-minute consultation could cost $50, while a 60-minute consultation costs $90.
Hoppy Appointments links each duration to a Shopify product variant, so customers see the correct price when they choose how long they want to book.
This guide walks you through the full setup.
⚠️ Before You Begin
Before setting up duration pricing, make sure:
- The Hoppy Appointments app is installed on your Shopify store
- You have created a Regular or Bundle service → Multiday services do not use meeting duration, so this pricing model does not apply to them
- You have a Shopify product with the variants and prices you want to use → For example, one variant for 30 minutes and another for 60 minutes
- The app embed is enabled so the booking calendar appears on your storefront
💡 Not sure which booking type to use? See Types of Bookings (Regular, Multiday & Bundle) — Explained.
🛠️ Step 1 — Set the Service Durations
- Open the Hoppy Appointments app
- Go to Services and click the service you want to configure
- Open the Availability tab
- Find the Duration section
By default, the service has one duration — usually 30 minutes.
To offer multiple durations:
- Toggle Allow multiple durations
- Select the durations you want from the list, such as 30, 60, and 90 minutes
- If you need a duration that is not listed, choose Custom... and enter the number of minutes
You must keep at least one duration. If you want only one duration, leave the toggle off and pick a single value.
🛠️ Step 2 — Connect a Shopify Product with Variants
- Open the General tab
- In the Booking card, click Select product
- Choose the Shopify product that represents this service
The product you select controls the base price. For duration pricing to work, the product should have multiple variants — one for each duration/price combination.
Example product setup
Variant | Price |
|---|---|
30 Min Session | $50 |
60 Min Session | $90 |
90 Min Session | $120 |
If your product has only one variant, you can still offer multiple durations, but every duration will share the same price unless you switch to a product with variants.
🛠️ Step 3 — Map Each Duration to a Variant
If your product has multiple variants and your service has multiple durations, a Duration to Variant Mapping card appears below the product card.
For each duration, open the dropdown labelled Variant for {duration} min and choose the matching variant.
- 30 minutes → 30 Min Session variant
- 60 minutes → 60 Min Session variant
- 90 minutes → 90 Min Session variant
The first option is None (use default variant). Only choose this if you want that duration to fall back to the default product price instead of a mapped variant price.
Once you save, the app remembers which variant belongs to which duration. If you ever want to start over, click Reset All Mappings.
🛠️ Step 4 — Understand the Other Variant and Duration Combinations
The mapping card only appears when both multiple variants and multiple durations exist. In other cases, the app behaves like this:
One variant + multiple durations
All durations use the same variant and price. Customers can still choose how long the appointment lasts, but the price does not change by duration.
Multiple variants + one duration
No mapping card appears. Instead, customers see a variant selector during booking. They pick the variant they want, and the price comes from that variant.
One variant + one duration
No mapping is needed. The booking always uses the single product price.
🛠️ Step 5 — Save and Test on Your Storefront
- Click Save in the service editor
- Visit the product page on your storefront
- Click the Book Now button
- Select a date
- Check that the duration buttons show the correct prices
Try each duration and confirm the price updates. Then proceed to checkout and verify that Shopify charges the amount shown on the booking widget.
⚠️ Important Notes & Limitations
- Each variant can only be mapped to one duration. You cannot map the same variant to both a 30-minute and a 60-minute option.
- Variants cannot be reused across services for duration mapping. If a variant is already mapped in another active service, you will need to choose a different variant.
- More durations than variants. If you offer more durations than you have variants, some durations will share the same price. The app will warn you when this happens.
- Prices are always corrected at checkout. Hoppy Appointments fetches the live Shopify variant price before the order is created, so customers are charged the current price even if you change it after setting up the service.
- Multiday services do not support duration pricing. They charge by the number of days or nights, not by appointment length.
- Bundle services use duration pricing per slot. Each selected slot uses the duration and mapped variant price you configured.
✅ Final Result
After completing these steps:
- Your service offers multiple durations
- Each duration is linked to a Shopify variant with its own price
- Customers see accurate pricing when they choose a duration
- Shopify checkout charges the correct live variant price
📚 Related Articles
- How to Setup Appointment Booking Services
- How to configure Appointment Booking service for service bookings
- How to create a Bundle Appointment Booking
- How does Payments work with Appointment Bookings
- Appointment Bookings — All Payment Options Explained
- Types of Bookings (Regular, Multiday & Bundle) — Explained
Updated on: 20/08/2026
Thank you!