Quotes — sending a quote on a booking
For services priced "on consultation". Booking comes in, you send a price, customer accepts.
Some services aren't fixed-price — colour corrections, complex piercings, custom ink, anything where the actual scope shows up at the consultation. Mark the service as Requires Quote under Catalog → Services and the booking flow handles the rest.
How it looks to the customer
- The customer picks the quote-required service.
- The booking page shows "Quote on consultation" instead of a price.
- They book a time as normal.
- The booking lands in your Pending queue with status
quote_pending. - The customer doesn't get a payment ask yet.
How you respond
- Open the booking → click Send Quote.
- Enter the quoted amount (and optional notes — "Includes 2 hours of bleach work").
- Optionally tick Require deposit to confirm + a percentage.
- Click Send. The customer gets an email with the price, your notes, and an Accept / Decline pair of buttons.
How customers respond
The Accept / Decline buttons go to a public quote page. Either:
- Accept without deposit → booking flips to
confirmed, confirmation email + SMS go out as usual, your team gets notified in the bell. - Accept with deposit required → routes through Stripe Checkout. Once paid, booking flips to
confirmed. Until paid, it stays inquote_pendingwith a "Awaiting deposit" badge. - Decline → booking flips to
cancelledwith the customer's optional reason captured. Your team is notified.
What the customer sees in their portal
Pending quotes show up at the top of their /user/dashboard with a coloured "Pending Quote" card showing the quoted amount, your notes, and Accept / Decline buttons. The accept routes them through the same public quote page.
Quote expiry
A booking-attached quote expires when the booking date passes (you can't book in the past). For standalone quotes (next guide) you set an explicit expiry date.
Tweaks
- Re-quoting: you can replace the quote on a booking that's still in
quote_pending. The customer gets a new email; the old link still works but shows the new price. - Cancelling a sent quote: change the booking status to
cancelleddirectly. The customer's accept link will show "This quote is no longer active" if they try to accept. - Internal notes: anything you type into the Internal notes field is admin-only and never sent to the customer.