Services

A service is the product the customer books. It's a bundle of item fields (the questions), a base price, a base duration, optional add-ons, and one or more staff members who can deliver it.

i

The mental model

A service is a recipe, not a static price tag. The price is computed every time the customer fills the form: base + (field_value × price_per_unit) + addons. This is what makes one service handle "1 bedroom flat" and "5 bedroom house" with a single configuration.

Where to find it

Advik Booking → Services Services tab.

Creating a service — the 6 tabs

  1. Open Services and click Add Service
    You'll see a modal with tabs.
  2. General: name, description, image
    Required: Name. Optional: description (shows under the title on the form), image (thumbnail).
  3. Pricing: base price + base duration
    Base price is the minimum the customer pays. Base duration (in minutes) is the minimum the booking takes. Both get added to whatever fields contribute.
  4. Capacity: how many staff, how many customers
    Staff required — number of staff needed (1 for solo, 2 for pair jobs). Max capacity — number of customers per slot (group bookings).
  5. Fields: attach the questions
    From the library panel, search and tick the fields the customer should be asked. Drag to reorder. Set per-service price overrides here if needed.
  6. Add-ons: pick which extras apply
    Search the add-on library and tick the ones available for this service. A customer can choose any of them when booking.
  7. Placements: choose categories
    Assign the service to one or more categories (and sub-categories) so it shows in the right group on the form.
  8. Save and assign staff
    Save the service, then in Staff assign at least one team member to it. A service with no staff won't appear on the form.

The pricing formula

For every service the price is recomputed on the front-end like this:

js
subtotal =
    service.basePrice
  + fields.reduce((sum, f) => sum + f.value * f.pricePerUnit, 0)
  + selectedAddons.reduce((sum, a) => sum + a.price, 0);

tax     = (advikTaxInclusive ? 0 : subtotal * taxRate / 100);
discount= coupon ? discountAmount(subtotal) : 0;
total   = subtotal + tax - discount;

The same calculation runs on the server when the booking is submitted, so the customer's quote always matches what they're charged.

Field reference

FieldRequiredNotes
NameYesWhat the customer sees.
SlugAutoURL-friendly. Auto from name.
DescriptionNoMarkdown supported.
ImageNoAspect 1:1 recommended.
Base priceYesNumber, in your store currency.
Base durationYesMinutes.
Staff requiredYesDefault 1.
Max capacityYesDefault 1 (one customer per slot).
ActiveYesOff = hidden from the form.
Sort orderAutoDrag to reorder in its category.

Why you almost never edit a field on a service

Edit fields in the library, not on individual services. The library is the single source of truth. The service page only attaches fields and overrides prices where really needed.

Bundle line items (advanced)

For services that always include a fixed set of items (e.g. a "Deep Clean" that always includes oven, fridge, windows), you can add bundle line items. These are not customer-facing — they are line items in the price breakdown used for internal reporting and exports.

Service templates

Once you have a service you like, you can duplicate it. Use the Duplicate action in the service list. All field attachments, add-ons, and placements are copied — only the name, slug, and price reset.

What shows on the booking form

A service appears on the form if all of these are true:

  • It's Active.
  • It's placed in at least one Active category.
  • At least one Active staff member is assigned to it.
  • The customer has passed the (optional) service-area check.
!

The most common gotcha

"I created a service but it doesn't show up on the form" — 90% of the time, it's because no staff member is assigned. Go to Staff → pick the staff → Services tab → tick the service.

Services done?

Layer optional extras with Add-ons.