Skip to main content

Introduction

Service Variants let you create named versions of a single service, each with its own price, duration, and timing settings. Instead of creating separate services for every variation (e.g., “Haircut — Short”, “Haircut — Medium”, “Haircut — Long”), you define one service with multiple variants underneath it. Variants also support client eligibility — you can restrict certain variants to first-time or returning clients. This lets you offer different pricing and durations for initial vs return appointments without any manual workarounds.
Service variants editor showing named versions with per-variant pricing and durations

Key features

  • Named variants: Create variations like “Short Hair”, “Medium Hair”, “Long Hair” under a single service
  • Per-variant pricing and duration: Each variant has its own full price and duration
  • Per-variant timing: Optionally override processing time, buffer before, and buffer after per variant
  • Client eligibility: Restrict variants to first-time or returning clients, with automatic filtering
  • Automatic “From” pricing: Service listings show a “From” price based on the lowest variant price
  • Works with pricing tiers: Set tier-specific prices per variant (e.g., senior stylist charges more for the same variant)
  • Works with bundles: Clients select their variant when booking a bundle that includes a variant service
  • Works with add-ons: Add-on groups linked to the parent service apply to all variants

Creating variants

  1. Navigate to the Services and open the service you want to add variants to
  2. Click the Variants tab
  3. Click Add variant
  4. Fill in the variant details:
    • Name (required): A descriptive name (e.g., “Short Hair”)
    • Description (optional): Additional context about this variant
    • Price (required): The full price for this variant
    • Duration (required): How long this variant takes
    • Processing time (optional): Override the service’s default processing time for this variant
    • Buffer before (optional): Override the service’s default buffer before for this variant
    • Buffer after (optional): Override the service’s default buffer after for this variant
    • Client eligibility (optional): Restrict who can book this variant — see Client Eligibility below
  5. Click Save to add the variant
Repeat for each variation of the service.
When a service has variants, the base price and duration fields on the Details tab are not used. Price and duration are set per variant instead.

What changes when you enable variants

Once you add at least one variant to a service:
  • The service listing shows a “From” price using the lowest variant price
  • The Price prefix field is hidden (the “From” prefix is applied automatically)
  • Clients must select a variant when booking — it is not optional
  • The calendar displays appointments as “Service Name — Variant Name”

Editing variants

  1. Open the service and go to the Variants tab
  2. Click Edit on the variant you want to change
  3. Update any field — name, price, duration, timing, or eligibility
  4. Click Save
Changes apply to future bookings only. Existing appointments retain the variant details captured at booking time.

Reordering variants

Drag variants using the handle to reorder them. The display order determines how variants appear to clients during booking.

Removing variants

Click Delete on a variant to remove it. If you remove all variants, the service reverts to standard flat pricing — you will need to re-enter the base price and duration.

Client eligibility

Client eligibility is the most powerful aspect of service variants. It lets you automatically show or hide variants based on whether the client is booking for the first time or returning.

Eligibility types

Each variant has a Client eligibility setting with three options:

Eligibility scope

When you set eligibility to “First-time only” or “Returning only”, you also choose the scope — what “first-time” means: Example: A client who has had five haircuts at your business but has never had a colour service would be:
  • Returning at location scope (they’ve visited before)
  • First-time at service scope for “Hair Colour” (they’ve never had this service)

How eligibility works in online booking

When a client browses your services online:
  • Logged-in clients: Only eligible variants are shown. Ineligible variants are hidden automatically
  • Anonymous clients (not logged in): Treated as first-time — they see “First-time only” and “All clients” variants, but not “Returning only” variants
  • Single eligible variant: If only one variant is eligible, it is auto-selected — the client does not see a variant picker
  • No eligible variants: If no variants pass eligibility for a client, the entire service is hidden from the listing
A banner encourages anonymous clients to verify their phone number for personalised options. When a client logs in or verifies mid-flow, eligibility is re-evaluated and any ineligible selections are cleared with a friendly message.

How eligibility works on the dashboard

When team members book from the scheduler, they see all variants regardless of eligibility:
  • Eligible variants appear normally and are sorted first
  • Ineligible variants appear dimmed with a badge (e.g., “First-time only” or “Returning only”)
  • Selecting an ineligible variant shows a warning banner — but your team can proceed if needed (business discretion)
This gives your team full flexibility while still surfacing the recommended option.

Variants and pricing tiers

If you use pricing tiers (e.g., Junior, Senior, Master), you can set tier-specific prices for each variant:
  • Each pricing tier can override the price for each variant
  • If no tier override exists, the variant’s base price is used
  • This works the same way tier pricing works for non-variant services — just applied per variant
Every worked figure below is shown as a plain number in your business’s own currency — Bella uses your location’s currency everywhere, so read 40 as A$40, £40, €40, or whatever your business trades in. Example:

Variants in bundles

When a bundle includes a service that has variants:
  • The bundle references the parent service — not a specific variant. The client picks their variant when booking the bundle
  • On a fixed-total or %-discount bundle, the variant’s own price is overridden by the bundle’s distributed line price. The bundle’s total is split across its component lines, so the amount charged for the variant service comes from that split — not the variant’s list price. The variant still sets the duration and determines which option the client books
  • On a bundle that uses component service prices (no fixed total), the variant’s own price is used for that line
  • The bundle duration range is displayed when included services have variants (e.g., “45–70 min” for a service with 45-min and 70-min variants)
See Service Bundles for the full picture of how a bundle expands into one appointment line per component, and how each line carries its own variant, tier, and add-ons.

Variants and add-ons

Add-on groups linked to the parent service apply to all variants. Clients select their variant first, then proceed to add-on selection. Add-on prices and durations are added on top of the variant’s price and duration.

Display and notifications

Calendar

Appointments booked with a variant display as “Service Name — Variant Name” on the calendar (e.g., “Haircut — Long Hair”). This gives your team full context at a glance.

Service listing

When a service has variants, the price on the service listing shows a “From” price using the lowest variant price (or the lowest eligible variant price in online booking).

Notifications

Client confirmation emails, reminders, and business notifications all include the variant name. For example, a confirmation email would show “Haircut — Long Hair” rather than just “Haircut”.

Receipts and checkout

The variant name appears alongside the service name in the appointment details, checkout screen, and sale records.

Common use cases

Different pricing by hair length

Create variants for “Short Hair”, “Medium Hair”, and “Long Hair” — each with its own price and duration. Clients self-select during booking.

Initial vs return client pricing

Create two variants: one for first-time clients (longer duration, possibly higher price to cover consultation time) and one for returning clients (shorter, lower price). Use client eligibility to show the right variant automatically. Example: Hair Colour

Initial consultation service

Create a service visible only to new clients by adding a single variant with “First-time only” eligibility at location scope. Returning clients never see it in online booking.

Experience-level variations

Combine variants with pricing tiers for granular control — e.g., “Short Hair” performed by a “Senior Stylist” has a different price than “Short Hair” by a “Junior Stylist”.

FAQs

Q: What happens to existing services when I add variants? A: The service continues to work as before until you add your first variant. Once variants are added, the base price and duration become read-only and all bookings require a variant selection. Existing appointments are not affected. Q: Can I go back to flat pricing after using variants? A: Yes. Delete all variants from the service and it reverts to standard pricing. You will need to re-enter the base price and duration. Q: Are variants required when booking? A: Yes. If a service has variants, a variant must be selected. In online booking, the system enforces this. On the dashboard, team members must pick a variant before saving the appointment. Q: What happens if I rename or delete a variant? A: Past appointments are not affected — the variant name and price are captured at booking time. Renaming or deleting a variant only changes future bookings. Q: Can I use variants and add-ons on the same service? A: Yes. Add-on groups linked to the parent service apply to all variants. Clients select their variant first, then choose add-ons. Q: How does the “From” price work? A: When a service has variants, the listing automatically shows a “From” price using the lowest variant price. In online booking, it uses the lowest eligible variant price for the current client. You do not need to set this manually. Q: Can I override processing time or buffer time per variant? A: Yes. Each variant can optionally override the parent service’s processing time, buffer before, and buffer after. If left blank, the variant inherits the service’s default timing. Q: How do client eligibility and anonymous clients work? A: Clients who are not logged in are treated as first-time clients. They see “First-time only” and “All clients” variants but not “Returning only” variants. A prompt encourages them to verify their phone number for personalised options. Q: Can your team override eligibility when booking from the dashboard? A: Yes. Your team sees all variants with visual cues indicating eligibility. They can select an ineligible variant if needed — a warning is shown but the booking can proceed. Q: How do variants work with bundles? A: Bundles reference the parent service. The client selects their variant when booking the bundle. On a fixed-total or %-discount bundle, the variant’s price is overridden by the bundle’s distributed line price; on a bundle that uses component service prices, the variant’s own price is used. Either way, the duration is resolved from the selected variant. See Service Bundles for the full picture. Q: Do variants affect deposit calculations? A: Yes. Deposit amounts are calculated based on the variant’s price, not the base service price. Q: What does the calendar show for variant appointments? A: The calendar displays “Service Name — Variant Name” (e.g., “Haircut — Long Hair”) so your team can see the exact variant at a glance. Q: Can I duplicate a variant? A: Yes. Use the duplicate action on any variant to create a copy with the same settings. This is useful when adding a similar variant with minor changes.