# Mix & match

Let shoppers fill a pack with their own choice of products.

Canonical: https://cartrella.com/docs/bundles/mix-and-match

A mix &amp; match pack sells a **Pack of N** the shopper fills themselves —
"any 2 of our six bars".

## Create one

1. **Create pack** → type **Customer picks the mix**.
2. **Select eligible products** — at least two.
3. Add sizes as usual (e.g. 2 for $36, 4 for $64).
4. **Publish.**

Publishing creates one hidden **container product per size** (tagged
`cartrella-pack` and `cartrella-mix`). Shoppers don't browse to containers
directly — they use the picker.

## The picker

Add the **Cartrella pack selector** block to the container product's page
(see [Theme setup](/bundles/theme-setup)). It renders the eligible products
as a grid with steppers, enforces the pack size, and adds the pack to the
cart with the shopper's selection.

## How the selection is protected

The shopper's choice travels with the cart line, but **checkout re-validates
everything** against your published configuration: the selection must match
the pack size exactly and contain only eligible products, and every unit is
priced at your configured per-item price. A tampered cart can change *which*
eligible items fill the pack — never the price, the count, or the
eligibility.
