> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bellabooking.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sell products through your online booking page

> Open an online shop on your booking page so clients can buy your products and either collect them at the business or have them ready for their next appointment.

## Overview

Bella Booking 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.

Stripe payments must be set up before you can enable the shop — see [Payments](/settings/payments).

***

## Turn the shop on

1. Open **Settings → Product Shop**.
2. Toggle **Enable online product shop** on.
3. Under **Fulfilment Modes**, choose which options you support — leave at least one enabled.
4. 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.
5. Save.

When the toggle is on, a **Shop Products** promo card appears on your online booking landing page.

***

## Make a product available online

Each product opts in individually. From **Products**:

1. Edit a product.
2. In the **Online availability** section, turn on **Available online**.
3. 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.
4. Add a product image — clients see this on the shop page and in the product detail sheet.
5. Save.

Products with **Manage inventory** disabled always appear in the shop regardless of stock. Products with inventory tracked are hidden when stock hits zero.

<Tip>
  Use **Product Categories** to group what shows on the shop — categories with no available products are hidden automatically.
</Tip>

***

## How the client journey works

1. Client visits your online booking page and clicks **Shop Products**.
2. They browse by category, open a product, pick a quantity, and add it to the cart.
3. 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.
4. They check out via Stripe (logging in or signing up if they haven't already).
5. On payment success they land on the order confirmation page and receive an **Order Received** email/SMS (configurable in [Automated Messages](/settings/automated-messages)).

***

## 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.
* **Ready** — orders you've marked ready for collection.
* **Picked Up** — collected, archive view.
* **Cancelled / Refunded** — cancelled orders (full refunds go here too).

Click an order to open the detail page. From there you can:

| Action                        | When it's available                                 | What happens                                                                                                    |
| ----------------------------- | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| **Mark ready for collection** | Awaiting Pickup orders set to *Collect in business* | Status flips to Ready and an "Order ready to collect" SMS/email is sent to the client.                          |
| **Mark picked up**            | Awaiting Pickup or Ready orders                     | Status flips to Picked Up. The order moves to the archive tab.                                                  |
| **Cancel order**              | Awaiting Pickup or Ready orders                     | Refunds the client in full via Stripe, restocks inventory, and prompts you for an internal cancellation reason. |

***

## Notifications you can customise

Three notification types power the order flow. Edit them in **Settings → Automated Messages → Online 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.

All three respect the recipient's contact preferences and your SMS quota.

***

## 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.

***

## Common questions

**Can I disable the shop temporarily?**
Yes — toggle off **Enable online product shop** in Settings. The promo card disappears and the shop URL returns clients to the landing page.

**What happens if the client doesn't finish paying?**
Pending orders that never complete are cleaned up automatically two hours after they were started. Nothing reaches your fulfilment queue and no notifications are sent.

**Can clients return products?**
Use the cancel flow up until the order is picked up — that refunds and restocks automatically. After collection, process a refund from the linked Sale record.
