Everything You Sell — Services, Products, Packages, and Custom Work
One catalog system manages services, products, packages, projects, workflows, brands, and memberships. Service menu and product catalog with per-location pricing, per-technician overrides, commission tracking, and variant management. Templates for multi-step custom work and recurring revenue.
One Place to Define Everything You Offer
Services, products, packages, categories, pricing rules, brands, and staff assignments — all managed from a single catalog that feeds your booking page, POS, and reports.
Services
Name, description, price, duration, buffer time, category, active/inactive toggle, and display ordering. Define it once, use it everywhere.
Products
Price, cost, margin tracking, SKU, barcode, variants for size/color, and category assignments. Retail inventory that feeds your POS.
Categories
Hierarchical parent/child categories with manual drag-and-drop or alphabetical sort. Separate trees for services and products.
Pricing Overrides
Different prices per location and per technician. A senior stylist downtown charges differently than a junior at your suburban branch.
Every Service, Fully Configured
No more scribbling prices on a paper menu or guessing how long a service takes. Define every detail once, and it flows to your booking page, POS checkout, and client communications automatically.
Service Details
Everything a service needs in one place: name, description, price, duration, buffer time, category, and display order.
- Name, description, and rich formatting
- Base price with optional discounts
- Duration in minutes with buffer time before and after
- Category assignment for organized booking pages
- Display ordering — feature your most profitable services first
- Mark services as taxable or non-taxable
Active/Inactive and Seasonal Control
Toggle services off during the off-season instead of deleting and recreating them. All settings, pricing, and assignments stay intact.
- Active/inactive toggle per service
- All configuration preserved when inactive
- Reactivate with one click next season
- Inactive services hidden from booking page automatically
- Historical data and reports preserved
- Bulk toggle for seasonal service groups
Retail Products with Variants and Margin Tracking
Selling shampoo in three sizes? A styling tool in five colors? Product variants let you manage every combination without creating dozens of separate product entries.
Price, Cost, and Margin Tracking
Set retail price and cost separately. Gross profit calculates automatically so you see your margin at a glance on every product.
- Retail price and cost (wholesale) tracked separately
- Gross profit margin calculated automatically
- SKU and barcode fields for every product
- Barcode scanning at POS checkout
- Category assignment for organized product pages
- Taxable and non-taxable product flags
Product Variants
Create variants for size, color, scent, or any attribute. Each variant gets its own SKU, price, and stock level.
- Size variants (250ml, 500ml, 1L) with separate pricing
- Color, scent, or material options
- Each variant has its own SKU and barcode
- Per-variant pricing and cost tracking
- Variant combinations auto-generated
- Stock tracked at the variant level
A Clean Menu Clients Actually Enjoy Browsing
Clients abandon booking pages that feel like a junk drawer. Hierarchical categories with sorting options turn your service list into a polished menu that converts browsers into bookings.
Hierarchical Parent/Child Categories
Nest subcategories inside parent categories. 'Hair Services' can contain 'Coloring', 'Cuts', and 'Treatments' — as deep as you need.
- Unlimited nesting depth for subcategories
- Separate category trees for services and products
- Each category can have its own description
- Categories drive booking page organization
- Assign multiple services or products per category
- Bulk move items between categories
Manual or Alphabetical Sort
Choose drag-and-drop ordering to feature your most profitable services first, or alphabetical sorting for large catalogs. Set sort mode per category.
- Manual drag-and-drop ordering
- Alphabetical automatic A-Z sort
- Sort mode set independently per category
- Reorder categories themselves, not just items
- Display ordering preserved across booking page and POS
- Instant preview of how clients will see the menu
Different Prices for Different Markets
A haircut in Manhattan should not cost the same as one in a suburb. Per-location overrides let you set the right price for each market without duplicating your entire service catalog.
Price and Duration Overrides per Location
Override the base price and duration at any location. Downtown charges more for a cut than the suburbs — no separate services needed.
- Override base price at any location
- Override duration per location (express vs. luxury)
- Location-specific tax rates supported
- Booking page shows the correct price per location
- POS uses the location-specific price automatically
- Reports break down revenue by location pricing
Per-Location Availability Toggle
Not every location offers every service. Toggle services on or off per location so clients only see what is actually available where they want to book.
- Toggle service availability per location independently
- Inactive at a location but active everywhere else
- Booking page auto-filters by selected location
- New locations start with all services — disable what you do not offer
- Location-specific menus without duplicating services
- Bulk enable/disable for new location setup
Experience-Based Pricing, Automated
A senior stylist charges more than a junior — and that is good for everyone. Per-technician pricing lets clients choose their tier while your team earns what they are worth.
Individual Price per Technician
Sarah is a senior stylist charging a premium rate for a cut. Alex is a junior at a lower rate. Same service, different price — set once, applied everywhere.
- Individual price override per technician per service
- Experience-based pricing tiers (junior, senior, master)
- Booking page shows the technician-specific price
- POS applies the correct price automatically
- Visual indicator for overridden prices in the catalog
- Override hierarchy: technician > location > base price
Duration Override per Technician
A senior finishes a color in 90 minutes. A junior needs 120. Per-technician duration keeps your schedule accurate and prevents overbooking.
- Duration override per technician per service
- Scheduler uses technician-specific duration
- No more blocked time from inaccurate estimates
- Different buffer times per technician if needed
- Booking page reflects the correct time per technician
- Reports compare efficiency across technicians
The Right Staff for the Right Service
Stop untrained staff from being booked for services they cannot perform. Assign which technicians can do which services, and the booking page handles the rest.
Service-to-Technician Mapping
Assign specific technicians to each service. Clients only see qualified staff when booking. No more accidental bookings with untrained technicians.
- Assign one or many technicians per service
- Only assigned technicians appear on the booking page
- Bulk assign — add a new hire to all their qualified services at once
- Remove assignments when staff are no longer trained
- Booking page dynamically filters available staff
- POS respects assignments for walk-in checkout
Assignments Drive Scheduling
Assignments are not just for the booking page. They feed into your scheduler so staff are never scheduled for services they cannot perform.
- Scheduler only shows eligible staff for each service
- Prevents double-booking unqualified technicians
- New hires see exactly which services they can perform
- Assignments update booking availability in real time
- Staff can view their own service assignments
- Manager dashboard shows assignment gaps across the team
Commission Rates That Calculate Themselves
No more end-of-month spreadsheet marathons. Set commission rates per service, per product, and per technician — payroll calculates automatically on every sale.
Percentage or Fixed Commission
A percentage on a premium color service. A flat amount on a product sale. Set the rate that makes sense for each item in your catalog.
- Percentage-based commission (e.g., 10%, 15%, 20%)
- Fixed-amount commission per sale
- Set per service — different rates for different services
- Set per product — retail commissions separate from services
- Commission calculated automatically at checkout
- Commission totals visible in staff payroll reports
Per-Technician Commission Overrides
Your top performer earns 25% on color services while juniors earn 15%. Override the default rate per technician without changing the base setting.
- Override commission rate per technician per service
- Override commission rate per technician per product
- Commission history tracked per staff member
- Manager-level commission reports and comparisons
- Commission disputes resolved with audit trail
- Integrates with team payroll and tip tracking
Packages — Service Bundles Sold as One Unit
Sell '5 manicure sessions for $79' or '10 massages with rollover' as a single transaction. Templates define the bundle; purchased packages track usage per customer.
Package Templates
Admin defines reusable bundles once. Sell '5 manicures for $79' or '10 massages with rollover' by attaching the template to checkout.
- Name + description for client-facing display
- Fixed package price set at the template level
- Validity period in days (e.g., 90 days from purchase)
- Item list — one or more services with quantity per item
- Per-location pricing override for the same template
- Status: active or archived (archived hides from POS without deletion)
Purchase Tracking
Per-customer lifecycle view. Staff see remaining sessions at checkout — no manual ledger, no spreadsheet, no guessing.
- Quantity included / used / remaining tracked per purchase
- Expiry countdown shown in client profile
- Status: active / completed / expired / cancelled
- Visible on contact profile for front-desk quick reference
- Redemption ledger — full history of every session redeemed
- Bulk-view all purchased packages across all clients
Expiry Management
Automatic expiry on the validity date with pre-expiry reminders and a recovery flow for recently-expired packages.
- Automatic expiry triggered on the validity date
- Renewal reminders sent before expiry (configurable window)
- Recovery flow for expired packages — reinstate or refund
- Audit log of all expiry events for accountability
- Staff alerted at checkout when a package is about to expire
- Expired packages retained in history for reporting
Per-Location Pricing + Availability
Same template, different prices per location. Downtown charges more; the suburban branch opts out of certain bundles entirely.
- Per-location price override on any package template
- Per-location active/inactive flag — opt out without archiving
- Location-specific item availability within the bundle
- Cross-location ledger view for multi-location operators
- POS automatically uses the location-specific package price
- Reporting breaks package revenue down by location
Brands — Manufacturer Tagging for Retail
Tag your retail products with their brand. Olaplex, K18, Redken, your in-house line. Customers see brand-organized product menus; staff see brand-level inventory.
Brand CRUD
Create and manage manufacturer brands — name, logo, active/inactive. Olaplex, K18, Redken, your in-house line.
- Short name + descriptive copy for internal and customer-facing use
- Active/inactive toggle — hide brands without deleting them
- Soft-delete for data retention (brand stays in historical reports)
- Product count display so you see how many SKUs are tied to each brand
- Bulk-activate or deactivate multiple brands at once
- Audit log of brand changes for accountability
Logo Upload
Visual brand representation on product menus and the booking widget. Drag-and-drop upload with automatic resizing.
- Drag-and-drop or browse upload flow
- Accepted formats: JPEG, PNG, WebP up to 5MB
- Automatic resizing for thumbnail and full-size display
- Fallback to brand-name initials avatar if no logo uploaded
- CDN storage for fast load on the booking widget
- Replace or remove logo without affecting product associations
Product Association
Link any retail product to its brand. Brand filter at POS, brand-organized booking widget product menu, and brand-level inventory reporting.
- Many products per brand — no limit on SKUs per brand
- Brand filter at POS so staff can quickly find products by manufacturer
- Brand-organized product menu in the booking widget for customers
- Brand-level inventory reporting (total stock value per brand)
- Audit log of brand changes on product records
- Unbranded products still work — brand is optional on each product
Workflows + Projects
Multi-step custom work — wig builds, alterations, repairs, med-spa programs — sold as a single purchasable Project, executed via a reusable Workflow blueprint.
- Projects = sellable workflows — Turn a multi-step process into a single line-item purchase. The customer buys a Project; the system creates a tracked run of each step.
- Workflows = reusable blueprints — Define a step sequence once, attach it to multiple Projects. Wigs, alterations, and repairs each get their own workflow — you write the blueprint once.
- Snapshot-on-purchase — Edits to a workflow don't break in-flight customer runs. Purchased Projects are frozen to the workflow version at the time of sale.
Memberships
Recurring billing on top of the catalog. Family plans, service credits, facility access, member discounts. Stripe + Cardknox recurring.
- Three plan types — Facility access (gym/sauna walk-in), service credits (e.g. '1 mani-pedi per month'), or hybrid combining both in one membership.
- Real subscriptions — Stripe + Cardknox recurring billing with automatic dunning. Not manual re-charging of a 'package balance' — actual subscription infrastructure.
- Member discounts — Retail % and service % discounts auto-applied at checkout when a member buys — no codes, no rules to look up, no front-desk errors.
Override Hierarchy in Action
The system always uses the most specific price available. Technician overrides beat location overrides, which beat the base price. No guessing, no mistakes.
Example: "Women's Haircut"
Base Price
Base
Default for all staff
Downtown Studio
Higher
Sarah (Senior): Premium
Suburban Branch
Lower
Alex (Junior): Standard
Override hierarchy: technician > location > base price. The system always uses the most specific price available.
The Catalog Management Difference
Most businesses piece together their service menu from three different tools. See what changes when everything lives in one system.
Without Catalog Management
- ×Services scattered across a paper menu and a separate booking app — prices never match
- ×Same price everywhere, even though downtown rent is 3x higher than the suburbs
- ×Staff doing services they are not trained for because there is no assignment system
- ×New hires spending a full day memorizing which services exist and what they cost
- ×Seasonal services deleted and recreated every year — losing all historical data
- ×12 separate product entries for one shampoo in different sizes — no variants
- ×Commission disputes because no one knows the agreed rate for each service
With Booking Pro AI Catalog
- One catalog feeds your booking page, POS, reports, and communications — always in sync
- Per-location pricing overrides so downtown charges more and suburban locations charge less
- Staff-service assignments ensure only qualified technicians appear for each service
- New hires see exactly which services they can perform and at what commission rate
- Toggle services inactive for the off-season — all settings preserved for next year
- Product variants handle every size/color/scent combination under one product entry
- Commission rates defined per service and per technician — flowing into payroll automatically
Explore Related Products
Your catalog powers the rest of the platform. See how it connects to payments, inventory, projects, memberships, and scheduling.
See how businesses like yours manage their service catalog