Not yet released. Build a Box is gated by
buildABoxIsEnabled, which currently has no merchants enabled. This page is staged and is not published to the docs site.Before promoting it: confirm the rollout has opened, and re-verify every claim below. This feature was landing engineering changes daily through early August 2026, and several earlier drafts of this content went stale within days.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 deepest rate their box qualifies for, not simply the last threshold crossed. If you configure 3+ items at 30% and 6+ items at 20%, a shopper with 6 items still gets 30%.
- 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.
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, Image, Product details (including review ratings, with star colours defaulting to#fdcc0d and #d1d5db), Variant options, Box limits, Discount, and Design (card style Subdued or Emphasized).
Two settings under Box limits are worth calling out:
- Show quantity selector — on by default. Turn it off so each add puts in exactly one unit, with no per-tile quantity stepper.
- 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).
Progress and layout
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 the progress text field 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 sets what the progress line says at each point in the fill. Leave a field empty to inherit from Settings → Translations, which in turn falls back to the shopper’s language — so a merchant who never opens this section keeps every translated language.{COUNT}, {MAX} and {RATE} are filled in at display time — keep them in your wording.
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”.
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.
Adding a box to an existing subscription
A box can be added to a subscription the shopper’s order created. Under the box’s subscription settings, tick Add this box to the customer’s existing subscription. On accept, the items they picked join that subscription: they’re charged for the first box now, and it repeats with the subscription. Two things gate it:- A subscription provider must be connected. Without one, nothing in the configuration is served.
- Skio only, today. The accept path runs this through Skio. If you’re connected to another provider the editor warns you, because the offer would otherwise save and then silently never modify anything.
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.