Overview
The Product shop (sometimes called a product store) lets your clients buy products directly through your online booking page. Each order is paid online, and you fulfil it from the Sales → Client orders screen - there’s no extra integration to maintain. Two fulfilment modes are supported:- Collect in business - the client pays online and pops in during opening hours to pick up.
- Reserve for next appointment - the client buys the product and reserves it against an upcoming appointment, so it’s ready at the front desk when they arrive.
Turn the shop on
- Open Settings → Product shop.
- Toggle Enable product shop on.
- Under Fulfilment modes, choose which options you support - leave at least one enabled.
- Optionally add Pickup instructions (e.g. “Ask at the front desk on arrival”). These are surfaced on the order confirmation page and in the ready-for-collection notification.
- Save.
- A Shop products strip appears on your landing page, showing your product photos with a Shop all button.
- The hero gains a Shop products button beside Book now.
- Want products to lead your page? Drag the grip on the Products row above Services in Settings → Online booking → Section order. The strip grows into a full product grid - photos and prices right on your landing page - and Shop products becomes the main hero button, with Book now beside it. Services always stay on the page.
Make a product available online
Each product opts in individually. From Products:- Edit a product.
- In the Online availability section, turn on Available online.
- By default the product inherits your business fulfilment settings. To set per-product behaviour, turn on Override per-product defaults and pick which of Collect in business / Reserve for next appointment apply to this product.
- Add a product image - clients see this on the shop page and in the product detail sheet.
- Save.
How the client journey works
- Client visits your online booking page and clicks Shop products.
- They browse by category, open a product, pick a quantity, and add it to the cart.
- In the cart they choose How will you collect this? - Collect when you visit or Reserve for my next appointment. Reserve mode also asks them to pick the appointment to attach the order to.
- They check out securely online (logging in or signing up if they haven’t already).
- On payment success they land on the order confirmation page and receive an Order received email/SMS (configurable in Automated messages).
Share a link to one product
Promoting one product? Share a link that opens that product, rather than sending clients to your shop to find it.- Open Products from the sidebar.
- Find the product and open its ⋯ menu.
- Choose Copy product link.
When the option isn’t there
Copy product link only appears when a client could actually open the product, so a link you copy always works. It is hidden when:- your product shop is switched off, or online booking is off
- the product isn’t marked Available online
- the product is archived
- you track inventory for it and it is out of stock (it is hidden from the shop too, even though you can still sell it at the till)
- neither of the fulfilment modes you offer applies to the product
If you have more than one location, copy the link at the location that stocks the product. Each location has its own booking page, its own shop and its own products, so the link is always for the location you copied it from.
Products added during booking
Clients don’t have to visit the shop separately - when the shop is on and Reserve for next appointment is enabled, a Products step appears in the online booking flow between picking a time and confirming, so they can add products to collect at their appointment while they book. How those products are paid is up to you. Once Reserve for next appointment is on, Settings → Product shop shows a Products added during booking setting with two options:- Full payment when booking - products are paid online in the same booking journey, exactly like a shop purchase. On businesses that take a deposit or save a card at booking, the client makes one combined payment covering both. The paid order lands in Sales → Client orders as a reserve order, and the appointment shows the usual Reserved products card so your team knows to have the items ready at handover.
- Pay at the appointment (the default) - products ride the appointment unpaid. The client sees “Pay at your appointment”, the appointment shows the lines with a Stock secured chip, and they pre-fill at the till checkout to settle with the rest of the bill.
Gift cards behave differently between the two modes. With Full payment when booking, products are charged in full - a gift card applied at booking covers the services side, not the retail. With Pay at the appointment, products settle at the till, where a gift card can cover them like any other part of the bill.
Member pricing in the shop
If a client is signed in and their membership includes a product - free or at a discount - the shop shows their price on the product card, with the list price struck through, before they order. The discount is locked in when the order is placed, so a plan change between ordering and paying never changes what they were quoted. An order a membership covers in full has nothing to pay, so it completes straight away with no payment step: the client lands on the confirmation and the order appears in Client orders ready to collect. Cancelling or refunding an order returns the stock and the client’s included item, so they can use it again in the same cycle.Fulfil orders in the dashboard
Open Sales → Client orders to manage the fulfilment queue. The page is split into four tabs:- Awaiting pickup - new paid orders, plus the rare order badged Confirming payment (see below).
- Ready - orders you’ve marked ready for collection.
- Picked up - collected, archive view.
- Cancelled / refunded - cancelled orders (full refunds go here too).
“Confirming payment” orders. Very occasionally a client’s card is charged but the payment doesn’t finish
recording. Those orders appear in Awaiting pickup badged Confirming payment rather than “Pending
payment”, because the money has been taken. Don’t ask the client to pay again and don’t hand the goods over
yet - the order’s actions stay unavailable until the payment finishes recording, which usually resolves on its
own. If one sits there, contact support to reconcile it.
None of the three actions are available on an order badged Confirming payment - its payment hasn’t finished
recording, so it can’t be handed over or refunded until it has.
Notifications you can customise
Three notification types power the order flow. Edit them in Settings → Automated messages → Product shop:- Order received (client) - sent when payment succeeds. Variables include
{{OrderNumber}},{{LineItems}},{{TotalPrice}},{{FulfilmentMode}},{{PickupInstructions}}. - Order ready for collection (client) - sent when you click Mark ready for collection. Variables:
{{OrderNumber}},{{LineItems}},{{PickupInstructions}}. - New product order (business) - sent to the business and assigned team members when a paid order comes in, so the team knows to prep it.
Auto-send a form when a product is purchased
If a product needs intake details - a written plan prepared from a questionnaire, a programme that starts with an assessment - link a form to it and every paid order sends it automatically:- Open Forms and edit (or create) the form.
- In Settings -> Product linking, click Select and tick the products (several at once, or tick a category or brand heading to take the whole group).
- Make sure Auto-send is on and the form is Active.
Where shop revenue shows up in reports
Online product orders create Sales records the same way in-person sales do, so all the standard sales reports include them automatically.- Reserve-for-appointment orders are credited to the team member servicing the appointment.
- Collect-in-business orders appear in a House / Online row on the Team member sales and Service & product sales reports - explicit “no team member attribution” rather than a misleading default.
- The Sales summary always shows blended totals regardless of channel.