# Bundles

> Reward your regulars: sell a discounted pack of sessions they pre-pay for and draw down as they book.

Who can do this: admins only.

A bundle is a discounted pack of sessions for customers who don't visit often enough for a [membership](/docs/membership). The customer pays once and their credits apply at checkout until they run out or expire. A customer who'd rather pay for a booking can tap **Pay instead** on the credit at checkout and keep their sessions. Set bundles up in [Offers → Bundles](/go/admin/shop/bundles).

## Bundles or gift vouchers?

Both are paid up front. The test is **who pays, and do they get a discount**.

| | Bundles | Gift vouchers |
|---|---|---|
| What it's for | **Rewarding your regulars** | **Reaching new people** |
| Who pays | The person who'll use it | Someone else |
| Price | Always a discount | Always face value |

Someone buying a present wants a [gift voucher](/docs/gift-vouchers). If you're new, start with gift vouchers - a bundle needs regulars to sell to.

## Settings

Set the **Image** (blank uses your default session image), **Sessions included**, **Bundle price**, and an **Original price** shown crossed out, which must be higher than the bundle price.

### Limits

- **Applies to** - two limits, the same as a [discount code's](/docs/vouchers#discount-code-settings):
  - **Prices** - **All prices**, or **Choose prices** to cover only some, such as your standard communal price and not private hire. A credit covers spaces on the chosen prices only - other spaces on the same booking are charged the normal price. Prices you add later aren't covered until you tick them. A price used on several sessions is one row, showing its names, sessions and price range.
  - **Sessions** - **All sessions**, or **Choose sessions** to limit which ones it covers.
- **Days and times** - **Any time**, **Off-peak times** (your [off-peak times](/docs/vouchers#offer-a-discount-at-quieter-times)), or **Choose days and times**. Credits only apply to sessions starting then; say so in the description.
- **Expiry** - two limits, in months from the day of purchase:
  - **Redeeming the credit** - **Never expires**, or **Expires** after a number of months.
  - **Sessions it covers** - **Any date**, or **Within a window** of a number of months. Credits only cover sessions inside that window.
- **Availability** - also two limits:
  - **How many to sell** - **Unlimited**, or a **Limited run**. Set it to `0` to show the bundle as sold out without making it inactive.
  - **Spaces covered per booking** - **Every space** (three spaces use three credits), or **Limited** to a number - 1 for a bundle meant for one regular. Extra spaces are charged the normal price by card, and the customer sees the split before paying.

Limits are copied onto each credit when bought; editing the bundle doesn't change sold ones. To change one, edit it under **Issued bundle credits** and use the **Usage** row.

## Stop bundles being used on one session

Bundles cover sessions you add later. To keep them all off a session, set it on the session.

<Steps>
<Step>Open the session in the [session editor](/go/admin/sessions) and select **Prices**.</Step>
<Step>At the foot of the panel, open **More options**, turn off the bundles switch and save. A note shows how many unspent sessions it affects.</Step>
</Steps>

It covers packs already sold but never changes bookings. A credit covers one space whatever it costs, so [pricing one date higher](/docs/instance-overrides#if-you-price-a-date-above-the-sessions-normal-rate) doesn't keep bundles out.

<Callout variant="warning">
This stops **prepaid sessions** - bundles, session gift vouchers and **Free sessions** discount codes. It does not stop money: a cash-value gift voucher or account credit still pays towards the price, and so does a percentage discount code, even at 100%. To keep those out, limit the code's **Applies to** - see [discount code settings](/docs/vouchers#discount-code-settings).
</Callout>

The **Who can book this without paying full price** summary in **Prices** shows how many unspent credits could reach the next date.

## Where customers find bundles and their balance

With more than one bundle, customers see them on a /bundles page; edit its intro with the **Bundles page** button next to **Create bundle**. Customers signed in with the bundle's address see it under **My account** → **Membership & credits** as a **Session credit** ("3 of 10 left"). To hide the count, open the credit under **Issued bundle credits** → **Edit**, open **Balance** and untick **Show customers what's left**.

### Sell a bundle by link only

For an offer you only advertise, such as an intro deal, set **Where customers find it** to **Direct link only** and copy its link. It's off your booking page, but anyone with the link can buy it. To stop it selling, turn off **Active**.

## Gifting a bundle

Customers can click **Buying this as a gift?** on the bundle page and enter the recipient's email, plus an optional name and message. The recipient gets the code and a booking link by email; edit its wording as **Bundle received** under [Email → Notifications](/go/admin/email/automated).

The sessions apply when the recipient books signed in with that address, or with the code. Buying three as a gift sends one larger credit to one person.

## Discounts and sale alerts

To take money off a bundle's price, use a [Stripe discount code](/docs/stripe-promo-codes), not one of your [discount codes](/docs/vouchers). To email your team when one sells, turn on **New shop purchase (Admin)** - see [team notifications](/docs/team-notifications).

## Common questions

1. **The recipient of a gifted bundle says the sessions aren't showing.** They've probably signed in with a different address. They can enter the code at checkout, or you can open the credit under **Issued bundle credits**, click **Edit** and change **Customer**.

2. **A gift went to the wrong address.** Change **Customer** on the credit as above (gifted credits show **Gift from**), then use **Resend voucher** from the row's menu.

3. **I turned bundles off on a session and someone still booked it for nothing.** They used a cash-value code. Limit its **Applies to** in [Offers → Discounts](/go/admin/shop/discounts) - it only affects codes made afterwards.

4. **Can I charge an extra guest to a customer's bundle?** Yes, from the booking - see [adding a space paid by a bundle](/docs/manage-bookings-admins#adding-a-space-paid-by-a-bundle-or-credit).

5. **A customer with two bundles was charged for a space.** A booking uses one bundle. Checkout picks the one covering the most spaces, but spaces added later only use that bundle.

6. **Can I sell a course as a bundle?** Yes - a 6-session bundle with **Applies to** set to that one session.
