# Bundles

Sell packs with one buy button — expanded into real products at checkout.

Canonical: https://cartrella.com/docs/bundles

Packs sell more units per order — but only if buying one is a single click
and the price never surprises anyone. Bundles gives you both: a pack is a
real product with one buy button, the price you set is the price checkout
charges, and when the order lands your **inventory, fulfillment, and reports
see the real items**, not a mystery SKU.

## The model in one picture

```
"SheaX 2-Pack" — $36  ──checkout──▶  2 × SheaX Bar ($18 each)
   (what the shopper buys)              (what your store fulfills)
```

- **The pack is a product.** It has its own page, price, and buy button.
- **Checkout expands it.** A Shopify Function (running inside checkout, on
  Shopify's servers) swaps the pack for its components at the configured
  per-item prices. The price you set is the price charged — there is no
  client-side math to drift.
- **Inventory stays true.** Pack products carry no stock of their own;
  selling a 2-pack decrements the component's inventory by 2. One stock pool
  covers singles and every pack size.

## Two kinds of packs

| | Fixed pack | Mix &amp; match |
|---|---|---|
| What the shopper gets | The same product × N ("Honey Bar 2-Pack") | Their choice of eligible products to fill a Pack of N |
| Storefront | The pack product's own page, or a size ladder on the base product's page | A "build your pack" picker rendered by the Cartrella theme block |
| Set up in | [Creating packs](/bundles/creating-packs) | [Mix &amp; match](/bundles/mix-and-match) |

## Where to go next

1. [Creating packs](/bundles/creating-packs) — your first pack, publishing, editing
2. [Theme setup](/bundles/theme-setup) — the pack selector block and how it adapts to your theme
3. [Adopting existing products](/bundles/adopting-existing-products) — if your store already sells pack variants
4. [Live demo](/bundles/demo) — click through a working store
