Native Sale Pricing on Services V2 — Run Visible Discounts on Services Without Coupon Codes
J
Joshua Rammacher
There is currently no way to put a service "on sale" in Services
V2 and have the original price and the sale price both visible to
customers on the booking page. The only way to offer a discount
is through coupon codes, which require the customer to know the
code, type it in, and apply it at checkout.
This means if a detailing shop, med spa, salon, cleaning company,
or any service business wants to run a Black Friday sale, a slow-
week flash promotion, or a seasonal discount on a specific
service, they have two bad options:
- Change the actual service price to the sale price. The customer
sees the lower number but has no idea it is a deal. There is no
strikethrough, no "was $199, now $149," no urgency. The original
price disappears entirely, and when the sale ends the business has
to remember to manually change it back. If they forget, they are
undercharging every customer who books after the promotion.
- Create a coupon code and tell customers to use it. This adds
friction to the booking flow — the customer has to find the code,
remember it, and type it into a separate field. Every extra step
in a booking flow reduces conversion. And for a public sale where
every customer gets the discount, requiring a code makes no sense.
Nobody hands a coupon to every person who walks into the store and
then makes them read it back at the register.
What we need:
Add a native Sale Price field to each service in Services V2. When
the business enters a sale price, the booking page automatically
displays both the original price and the sale price — with the
original price shown as a strikethrough and the sale price
highlighted as the current amount. The customer sees:
~~$199~~ $149
No code needed. No extra step. The discount is applied
automatically to every booking made while the sale is active.
How it should work:
- Each service gets an optional Sale Price field and an optional
Sale Start Date and Sale End Date. If no dates are set, the sale
runs indefinitely until the business manually removes it. If
dates are set, the sale activates and deactivates automatically
— no risk of forgetting to revert the price.
- When a sale is active, the booking page renders the original
price with a strikethrough and the sale price as the current
amount. This is standard e-commerce UX that every customer
already understands.
- The original service price is never modified. It stays stored
as-is. The sale price is a separate field layered on top. When
the sale ends (either manually or by date), the service
automatically reverts to the original price with zero action
required from the business.
- Sale pricing should stack with coupon codes if the business
wants both. If a service is on sale for $149 (down from $199)
and the customer also applies a valid coupon code for 10% off,
the coupon applies to the $149 sale price — resulting in
$134.10. This lets businesses run public sales AND reward
specific customers (referrals, VIPs, email subscribers) with an
additional code-based discount on top. If the business does not
want stacking, they can simply not issue coupon codes during the
sale period.
- The sale price should be respected everywhere the service price
appears: the public booking page, the New Booking screen when
staff books internally, calendar confirmations, invoices, and
any workflow merge fields that reference the service amount.
Why this matters beyond just convenience:
Strikethrough pricing is one of the most well-documented
conversion drivers in retail and e-commerce. Showing what the
price was next to what the price is now creates anchoring — the
customer perceives the deal relative to the original value, not in
isolation. A service at $149 feels different when it is sitting
next to a crossed-out $199 than when it is just listed at $149
with no context.
Right now, every e-commerce platform (Shopify, WooCommerce,
Square, Stripe) supports native sale pricing with strikethrough
display. Services V2 is GHL's commerce engine for service
businesses, but it is missing this basic merchandising capability.
Adding it would bring Services V2 to parity with what every
product-based commerce platform already offers and unlock seasonal
promotions, flash sales, and strategic discounting for the
thousands of service businesses on GHL — without adding friction
to the booking flow.
Log In