Build a Box offers several different products. To sell more units of one product at tiered prices, use Quantity upsells instead.
Setting up the box
Choosing candidate products
The Product selection section controls which products a shopper can choose from. These are called candidates.- Open the box offer in the post-purchase funnel editor.
- Expand Product selection.
- Select Add product and pick one or more products. Products already on the list are excluded from the picker.
- Save.
Box size
Box size sets how many items the shopper must choose:
With a fixed-size box, the editor notes that shoppers must choose exactly that many items and will see a “0 of N selected” counter.
Discounts
Discount tiers
The Box discount section sets a discount that scales with how many items are in the box. Add a tier with Add tier, then set Minimum items for tier N and Discount for tier N. How the rate is chosen:- The shopper gets the rate of the highest tier they reach. If you configure 3+ items at 30% and 6+ items at 20%, a shopper with 6 items gets 20%.
- The rate is evaluated at the live item count, not at the box minimum. A tile opens at full price and re-prices as the box fills, so the rate a shopper is quoted is always the rate their current selection actually earns.
- An empty tier table is valid and means the box sells at full price.
Free gifts on discount tiers
Any discount tier can include a free gift, added to the order at 100% off when the shopper’s box reaches that tier. To add a gift to a tier, click Add free gift under the tier row and choose a product. Once a gift is attached, click the gift row to expand its settings:
To change the gift product, use the replace icon on the gift row. To remove the gift, use the delete icon.
The editor shows a warning if a gift is on a tier whose minimum exceeds the box maximum, since that tier can never unlock.
Gift behavior appears once any tier has a gift and applies to the whole box:
- Give every gift the box has reached (cumulative). The shopper receives the gift from every tier they have passed.
- Give only the highest reached tier’s gift (selected tier). Only the gift from the deepest qualifying tier is given.
{items-to-next-gift} and {next-gift}, as well as all the standard box variables.
Per-product discounts
A candidate can carry its own discount instead of following the box rate. Open the candidate, go to Discount, and check Give this product its own discount.- The override applies on that product’s tile and in the box total, in place of the tier rate.
0is a valid override — it holds a product at full price inside an otherwise discounted box.- Leave the override off to follow the box discount.
Editing several products at once
Edit all products opens a bulk panel. Uncheck any candidate you want to leave out of the edit. Where the selected products differ, a field shows Mixed — editing it writes your value to all of them, and leaving it alone preserves each product’s own value. The override toggle shows an indeterminate state when only some have overrides.Per-product settings
Each candidate has its own panel, covering Badge, Product image badge, Image, Product details (including review ratings, with star colours defaulting to#fdcc0d and #d1d5db), Variant options, Box limits, Discount, and Already purchased.
Tile appearance is not set per candidate. It comes from the offer-level Layout setting, so every tile in a box is shaped the same way.
Two settings under Box limits are worth calling out:
- Show quantity selector — off by default on new offers. Each add puts in exactly one unit with no per-tile quantity stepper. Turn it on to let shoppers choose a quantity per tile.
- Maximum quantity in a box — leave empty for no limit, or set it to 1 to keep a variety box varied.
When Show a “Your choice” badge is selected, three additional settings appear:
- Badge text — the wording on the badge. Leave blank to use your store’s translation (set in Settings > Translations under Already purchased badge). Defaults to “Your choice”.
- Badge color — the fill color of the badge pill (hex, default
#008060). - Badge text color — the text color inside the badge pill (hex, default
#ffffff).
Layout
Layout, under the box’s layout settings, sets the tile shape and how many tiles share a row:
The same section sets the padding around the box.
Progress
Box progress controls the fill indicator:
There is no “hidden” position. To drop the progress line entirely, clear the progress text field.
Progress text variables
Type{ in any of the three progress wording editors to insert a variable.
The step-header variables available on multi-product offers have no box equivalent and are not offered here.
Progress wording
Progress wording is three rich text editors, one for each stage of filling the box. Type{ in any of them to insert a variable. Clear a field to hide the progress line in that state.
The editor shows only the fields your box can actually reach:
- Before the first tier appears when the box has a minimum above zero or at least one discount tier.
- Between tiers appears only when the box has two or more tiers, or a maximum on a box with no tiers.
- Last tier reached always appears. Every box reaches it.
Tile button text
The Tile button text section in the Buttons panel lets you customize the wording on the Add and Remove buttons that appear on each candidate tile, for this funnel only.- Add button text — the label shown on a tile before the shopper adds the product to their box. Defaults to “Add to box”.
- Remove button text — the label shown on a tile after the shopper has added the product. Defaults to “Remove”.
Shipping
The Shipping section sets what the box charges for delivery. The box either ships free or adds a shipping charge. When you charge, you set the amount and choose whether to multiply it by how many items are in the box, so a six-item box can cost six times a per-unit rate or one flat fee.Language and order tagging
- Language sets the language used for the box copy and buttons, and for product-detail translations.
- Order tag applies a Shopify tag to every order that accepts the box. Use it to route fulfillment or to isolate box orders in reporting.
Limitations
- One shared accept button. The box has a single call to action rather than per-product buttons, because Shopify caps how many accepts a post-purchase page can make.
- No replacement offers. A box can’t be used as a replacement upsell.
- The price breakdown doesn’t collapse. Show price breakdown, under General settings, turns it on or off. When it’s on it is always expanded — the multi-product offer puts its breakdown behind a “Show price breakdown” link instead.
Subscription-only products
Products configured to sell only as a subscription (requiresSellingPlan: true in Shopify — no one-time purchase option) cannot be included in a build-a-box offer. Every item in a box is charged as a one-time purchase on the order, so Shopify rejects subscription-only products at serve time. These candidates are silently dropped on every real order, even though the funnel editor preview continues to show them.
The funnel editor warns you when this situation is detected:
- Warning banner — some candidates are subscription-only but enough non-subscription candidates survive to reach the box minimum. The banner lists the affected products by name. The offer still shows to shoppers, but with fewer products than configured.
- Critical banner — all candidates are subscription-only, or the surviving non-subscription candidates cannot reach the box minimum. The offer is skipped entirely for every shopper.
- Add candidates that can also be bought once.
- Lower the box minimum, so the surviving candidates are enough to reach it.
- Turn off “subscription only” on the affected products in Shopify, if they should also sell as a one-time purchase.