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.
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
- Open Services and click Add ServiceYou'll see a modal with tabs.
- General: name, description, imageRequired: Name. Optional: description (shows under the title on the form), image (thumbnail).
- Pricing: base price + base durationBase price is the minimum the customer pays. Base duration (in minutes) is the minimum the booking takes. Both get added to whatever fields contribute.
- Capacity: how many staff, how many customersStaff required — number of staff needed (1 for solo, 2 for pair jobs). Max capacity — number of customers per slot (group bookings).
- Fields: attach the questionsFrom the library panel, search and tick the fields the customer should be asked. Drag to reorder. Set per-service price overrides here if needed.
- Add-ons: pick which extras applySearch the add-on library and tick the ones available for this service. A customer can choose any of them when booking.
- Placements: choose categoriesAssign the service to one or more categories (and sub-categories) so it shows in the right group on the form.
- Save and assign staffSave 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:
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
| Field | Required | Notes |
|---|---|---|
| Name | Yes | What the customer sees. |
| Slug | Auto | URL-friendly. Auto from name. |
| Description | No | Markdown supported. |
| Image | No | Aspect 1:1 recommended. |
| Base price | Yes | Number, in your store currency. |
| Base duration | Yes | Minutes. |
| Staff required | Yes | Default 1. |
| Max capacity | Yes | Default 1 (one customer per slot). |
| Active | Yes | Off = hidden from the form. |
| Sort order | Auto | Drag 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.