Guides

A Price List You Edit Yourself: The Salon Website Setup

How to build a salon price list as services with price fields the manager edits in seconds, grouped by category.

4 min read
GuidesSalonsEditing
797 words4 min read

The goal

The manager decides balayage goes up by five on Monday. On Monday morning they open the website admin, change one number, save, and every place the price appears is correct: the balayage service page, the Prices page, the search result snippet. Thirty seconds, no developer, no photo of a card. That is a price list you edit yourself, and it is a structure, not a page.

The structure

Services are records. Each has:

  • Name ("Balayage").
  • Category ("Colour"), from a fixed list that drives the Prices page grouping.
  • Short description, one line for the price table.
  • Duration in minutes.
  • Price, a number, with currency handled by the template.
  • "From" flag, so the template renders "from £X".
  • Price note, optional: "longer or thicker hair may be more; toner included".
  • Tier prices, optional: a price per stylist level (Stylist, Senior, Director) where the salon prices that way.
  • Stylists who offer it, a relationship.
  • Booking ID, the platform's service identifier for deep links.
  • Order, for where it sits in its category.

The Prices page template loops categories, then services in order, and renders a table: name, short description, duration, price (or "from", or a tier range). Service pages render their own price beside the Book button. Structured data (Service with Offer) is generated from the same fields.

Editing

In the admin, the manager sees a list of services by category. They open one, see labelled fields, change the price, save. The site updates within seconds (or on the next cache refresh, which the platform handles). Adding a service is filling in the same fields; removing one is unpublishing it. Reordering is dragging or setting a number.

The manager is an Editor, not an Administrator, so the price fields are the only thing they can break, and they cannot break those.

Stylist tiers

Salons that price by stylist level have two honest options:

  • Tier prices on the service, rendered as a small table on the service page ("Stylist £X, Senior £Y, Director £Z") and as a range on the Prices page. Clear, and the client chooses knowing.
  • "From" the lowest tier, with the note "price depends on stylist level" and the exact price shown when they pick a stylist in the booking flow.

Either is fine. What is not fine is a single price that half the clients will not be charged.

"From" prices, honestly

"From £X" is legitimate when X is what a real client with the simplest version actually pays, and the note says what moves it. Colour services almost always need it; cuts usually do not. Keep the "from" flag off where the price is fixed so the table is not a wall of "from".

Keeping it in step with the booking platform

The booking platform (Fresha, Booksy, Vagaro, Timely, Phorest, Square) is what charges the client, so its prices are the truth. Two approaches:

  • Two copies, one owner. The manager changes the platform and the website together, same day. Simple, and the quarterly check (read the Prices page against the platform) catches drift.
  • One copy, via the platform's API. Where the platform exposes services and prices through an API, the website reads them, and there is only one place to edit. More setup; zero drift. Worth it for salons with large menus or frequent changes.

Either way, the website's price and the platform's price are the same number.

Where prices appear

  • Service pages, beside Book, with duration. Where the client decides.
  • Prices page, grouped table, in the main menu.
  • Stylist profiles, their tier's prices on the services they offer.
  • Gallery images, "Balayage by Sam, from £X" on tap.
  • Search results, via structured data.

Effective dates and increases

Add an "effective from" note at the top of the Prices page when prices change, and a line in the booking confirmation for appointments booked before the change: "Prices shown were correct at booking." The platform usually honours the price at booking; say so.

The migration

From a photographed card, a PDF or a text page: list every service and current price from the platform; create the records; build the Prices page from them; add prices to service pages; add structured data; redirect the old Prices URL; delete the image. Record a thirty-second walkthrough for the manager. Put the quarterly check on the calendar.

Where this sits

A price list built as service records is part of every salon website we deliver, with the walkthrough that shows the manager the thirty-second edit. It is the fix that ends the "is that still the price?" conversation at the desk and puts the number beside the Book button where it converts.

All writingSee packages and prices