Full bundle page

Studio

The recommended guided box builder, with campaign-led steps, catalog search and filters, a live summary, and a final review.

Built for: Most stores — especially gift boxes, routines, meal kits, sample packs, and larger catalogs that benefit from a guided flow.

Studio storefront design
Interactive demo

Use the controls merchants actually get.

The catalog data is illustrative. Every configurable section and block setting, plus each folded variant, is synced from the committed Liquid schema.

Custom bundle · illustrative catalogBuild your boxAdd 1 more to unlock 15%
Campaign coverage

How Studio handles each offer.

The four campaign tabs in the demo show one illustrative state per supported builder mode, including selectable, preselected, and locked gift states. Fixed bundles use a standard product page and expand at checkout.

Campaign stateRendering in this design
Custom bundleProduct selection, progress, qualifying step, totals, and add-to-cart.
Build-a-box sectionsNamed groups and live section counts within the shared storefront payload.
Quantity breaksCompatible rendering through the design’s product and step UI.
Free giftsSelectable, preselected, and locked gift states; locked gifts can render as Included free.
Fixed bundleNot applicable. Shoppers buy the fixed parent product through its standard product form.
Every setting

The schema, rendered without drift.

139 settings across the section and its reorderable blocks.

GroupSettingTypeOptionsDefaultWhat it changes
SectionCampaign ID (optional)textTheme defaultEmpty = automatic: on a product page, the campaign whose bundle product this is; otherwise the highest-priority published campaign with a landing placement. IDs (cmp-…) appear in the app's campaign editor URL and Diagnostics page.
SectionHeadingtextBuild your boxControls this part of the section in the Theme Editor.
SectionSubheadingtextA few easy steps — pick your favorites, we’ll handle the rest.Controls this part of the section in the Theme Editor.
SectionSummary headingtextYour boxControls this part of the section in the Theme Editor.
SectionSummaryselectSticky sidebar, Bottom barsidePhones always use the bottom bar with a pull-up summary.
SectionKeep the sidebar visible while scrollingcheckboxOnControls this part of the section in the Theme Editor.
SectionSticky offset (fallback)range80The stepper and sidebar sit below your theme header automatically. This is a minimum used only if no sticky header is found.
SectionAccent colorcolor#e94f64Controls this part of the section in the Theme Editor.
SectionGift accent colorcolor#b8863bControls this part of the section in the Theme Editor.
SectionText colorcolor#191817Controls this part of the section in the Theme Editor.
SectionCard backgroundcolor#ffffffControls this part of the section in the Theme Editor.
SectionSummary backgroundcolor#ffffffControls this part of the section in the Theme Editor.
SectionSummary text colorcolor#191817Controls this part of the section in the Theme Editor.
SectionSection backgroundcolorTheme defaultLeave empty to inherit the theme background.
SectionImage fitselectCover (crop to fill), Contain (show whole product)coverCover fills the shape and crops edges; Contain shows the whole product without cropping.
SectionCard frameselectBoxed, BareboxBoxed draws a border and background around each card; Bare removes them so the image runs edge to edge and blends into the page.
SectionCorner styleselectRounded, Soft, SquareroundedControls this part of the section in the Theme Editor.
SectionButton styleselectRounded, PillroundedControls this part of the section in the Theme Editor.
SectionContent widthrange1280Controls this part of the section in the Theme Editor.
SectionVariant optionsselectColor swatches and buttons, Buttons, DropdownsswatchesProducts with multiple options show one row per option, such as Color and Size.
SectionparagraphTheme defaultControls this part of the section in the Theme Editor.
SectionStep kicker ({step}, {steps})textStep {step} of {steps}Controls this part of the section in the Theme Editor.
SectionProducts step labeltextChoose your itemsControls this part of the section in the Theme Editor.
SectionReview step labeltextReviewControls this part of the section in the Theme Editor.
SectionReview step sub-labeltextConfirmControls this part of the section in the Theme Editor.
SectionReview headingtextReview your boxControls this part of the section in the Theme Editor.
SectionReview empty statetextNothing added yet — step back and pick something.Controls this part of the section in the Theme Editor.
SectionBack buttontext← BackControls this part of the section in the Theme Editor.
SectionContinue buttontextContinueControls this part of the section in the Theme Editor.
SectionContinue to review buttontextReview your boxControls this part of the section in the Theme Editor.
SectionSkip optional step buttontextSkip this stepControls this part of the section in the Theme Editor.
SectionStep minimum hint ({remaining}, {label})textAdd {remaining} more to continueControls this part of the section in the Theme Editor.
SectionSwap button on full single-choice stepstextChoose this insteadControls this part of the section in the Theme Editor.
SectionRemove labeltextRemoveControls this part of the section in the Theme Editor.
SectionEdit step labeltextEditControls this part of the section in the Theme Editor.
SectionSummary titletextYour boxControls this part of the section in the Theme Editor.
SectionOpen summary label (phones)textView boxControls this part of the section in the Theme Editor.
Message barparagraphTheme defaultControls this part of the section in the Theme Editor.
Message barShow progress trackcheckboxOnControls this part of the section in the Theme Editor.
Message barShow discount labels on the trackcheckboxOnControls this part of the section in the Theme Editor.
Message barEmpty statetextAdd your first product to start your boxControls this part of the section in the Theme Editor.
Message barProgress ({remaining}, {label}, {discount})textAdd {remaining} more to unlock {discount}% offControls this part of the section in the Theme Editor.
Message barGift prompt ({remaining})textNice! Choose your free giftControls this part of the section in the Theme Editor.
Message barReady ({discount})text{discount}% off unlocked — add your box to the cart!Controls this part of the section in the Theme Editor.
Message barAddingtextAdding your box…Controls this part of the section in the Theme Editor.
Message barAddedtextYour box is in the cart 🎉Controls this part of the section in the Theme Editor.
Message barOver largest boxtextYou’ve exceeded the largest box size — remove some itemsControls this part of the section in the Theme Editor.
Message barStep below minimum ({remaining}, {label})textAdd {remaining} more to {label}Controls this part of the section in the Theme Editor.
Message barItems count ({count})text{count} in your boxControls this part of the section in the Theme Editor.
Message barEditing a carted boxtextYou’re editing a box from your cart — updating replaces it.Controls this part of the section in the Theme Editor.
Message barEditing: unavailable items ({dropped})textHeads up: {dropped} item(s) from your original box are no longer available and won’t be included.Controls this part of the section in the Theme Editor.
Message barparagraphTheme defaultControls this part of the section in the Theme Editor.
Countdown timerparagraphTheme defaultControls this part of the section in the Theme Editor.
Countdown timerLabeltextEnds inControls this part of the section in the Theme Editor.
Countdown timerEnded texttextOffer endedControls this part of the section in the Theme Editor.
ProductsparagraphTheme defaultControls this part of the section in the Theme Editor.
ProductsColumns (desktop)range4Controls this part of the section in the Theme Editor.
ProductsColumns (tablet)range3Controls this part of the section in the Theme Editor.
ProductsColumns (phones)range2Controls this part of the section in the Theme Editor.
ProductsImage shapeselectSquare, Portrait, Landscape1/1Controls this part of the section in the Theme Editor.
ProductsAdd button labeltextAdd to boxControls this part of the section in the Theme Editor.
ProductsAdded button labeltextAddedControls this part of the section in the Theme Editor.
ProductsShow product badgescheckboxOffShort labels like New or Refillable, from the badges saved on each product.
ProductsShow review starscheckboxOffUses the rating your reviews app saves on each product.
ProductsReview count suffixtextTheme defaultShown after the number, e.g. (128 Reviews). Leave empty to show only the number.
ProductsPer-product limit note ({max})textLimit {max} per productControls this part of the section in the Theme Editor.
ProductsSold-out productsselectHide them, Show them grayed outhideControls this part of the section in the Theme Editor.
ProductsSold out labeltextSold outControls this part of the section in the Theme Editor.
ProductsparagraphTheme defaultControls this part of the section in the Theme Editor.
ProductsShow the toolbar fromrange9Controls this part of the section in the Theme Editor.
ProductsSearchcheckboxOnControls this part of the section in the Theme Editor.
ProductsSearch placeholdertextSearch items in this stepControls this part of the section in the Theme Editor.
ProductsSortingcheckboxOnControls this part of the section in the Theme Editor.
ProductsSort: featuredtextFeaturedControls this part of the section in the Theme Editor.
ProductsSort: price uptextPrice: low to highControls this part of the section in the Theme Editor.
ProductsSort: price downtextPrice: high to lowControls this part of the section in the Theme Editor.
ProductsSort: title A–ZtextTitle: A to ZControls this part of the section in the Theme Editor.
ProductsSort: title Z–AtextTitle: Z to AControls this part of the section in the Theme Editor.
ProductsFilterscheckboxOnFilter chips are built from each product's options (like Color or Size) and the step's price range.
ProductsFilter button labeltextFilterControls this part of the section in the Theme Editor.
ProductsLoad products in pagescheckboxOnControls this part of the section in the Theme Editor.
ProductsProducts per pagerange24Controls this part of the section in the Theme Editor.
ProductsLoad more button ({count})textShow more ({count} left)Controls this part of the section in the Theme Editor.
ProductsResult count ({count})text{count} productsControls this part of the section in the Theme Editor.
ProductsResult count, paged ({shown}, {count})textShowing {shown} of {count}Controls this part of the section in the Theme Editor.
ProductsNo results headingtextNo products foundControls this part of the section in the Theme Editor.
ProductsNo results hinttextTry a different search or clear the filters.Controls this part of the section in the Theme Editor.
ProductsClear filters labeltextClear all filtersControls this part of the section in the Theme Editor.
ProductsSelected items hidden note ({count})text{count} selected item(s) are not shown right now.Controls this part of the section in the Theme Editor.
ProductsShow hidden items buttontextShow themControls this part of the section in the Theme Editor.
ProductsPrice filter labeltextPriceControls this part of the section in the Theme Editor.
ProductsPrice filter: under ({price})textUnder {price}Controls this part of the section in the Theme Editor.
ProductsPrice filter: over ({price})textOver {price}Controls this part of the section in the Theme Editor.
ProductsStep status ({count}, {max})text{count} of {max} chosenControls this part of the section in the Theme Editor.
ProductsStep status, no max ({count}, {min})text{count} chosen — pick at least {min}Controls this part of the section in the Theme Editor.
ProductsStep status, optional ({count})text{count} chosenControls this part of the section in the Theme Editor.
ProductsStep full notetextThis step is full — remove an item to choose anotherControls this part of the section in the Theme Editor.
ProductsTier deal ({min}, {discount})textBuy {min}+ — save {discount}%Controls this part of the section in the Theme Editor.
ProductsPer-unit price ({price})text{price} eachControls this part of the section in the Theme Editor.
Quick viewparagraphTheme defaultControls this part of the section in the Theme Editor.
Quick viewPhoto hover labeltextQuick viewControls this part of the section in the Theme Editor.
Quick viewShow the pricecheckboxOnControls this part of the section in the Theme Editor.
Quick viewShow review starscheckboxOnControls this part of the section in the Theme Editor.
Quick viewShow badges as checkmarkscheckboxOnThe product's badges, listed like feature checkmarks.
Quick viewShow the descriptioncheckboxOnLoads the product's own description when the window opens.
Quick viewDescription lengthselectShort, Medium, LongmediumControls this part of the section in the Theme Editor.
Quick viewShow an add buttoncheckboxOnControls this part of the section in the Theme Editor.
Quick viewAdd button labeltextAdd to boxControls this part of the section in the Theme Editor.
Quick viewAdded button labeltext✓ AddedControls this part of the section in the Theme Editor.
Quick viewLink to the product pagecheckboxOnControls this part of the section in the Theme Editor.
Quick viewProduct page link labeltextView full detailsControls this part of the section in the Theme Editor.
Free giftsparagraphTheme defaultControls this part of the section in the Theme Editor.
Free giftsGift step labeltextChoose your giftControls this part of the section in the Theme Editor.
Free giftsGift step sub-labeltextFree with your boxControls this part of the section in the Theme Editor.
Free giftsLocked hint ({remaining})textAdd {remaining} more item(s) to unlock your free giftControls this part of the section in the Theme Editor.
Free giftsPick hint, exact ({count})textChoose {count}Controls this part of the section in the Theme Editor.
Free giftsPick hint, range ({min}, {max})textChoose {min}–{max}Controls this part of the section in the Theme Editor.
Free giftsPick hint, up to ({count})textChoose up to {count}Controls this part of the section in the Theme Editor.
Free giftsGift card flagtextFree giftControls this part of the section in the Theme Editor.
Free giftsFree price labeltextFREEControls this part of the section in the Theme Editor.
Free giftsGift card, not chosentextChoose this giftControls this part of the section in the Theme Editor.
Free giftsGift card, chosentext✓ ChosenControls this part of the section in the Theme Editor.
Free giftsGuaranteed-gift labeltextIncluded freeShown on a preselected gift the customer can't change.
Free giftsReset gifts labeltextReset to the included giftsControls this part of the section in the Theme Editor.
TotalsSubtotal labeltextSubtotalControls this part of the section in the Theme Editor.
TotalsDiscount labeltextDiscountControls this part of the section in the Theme Editor.
TotalsTotal labeltextEstimated totalControls this part of the section in the Theme Editor.
TotalsShow a savings linecheckboxOffThe discount plus the value of any free gifts, using the wording below.
TotalsSavings line ({value})textYou save {value}Controls this part of the section in the Theme Editor.
Add to cartButton labeltextAdd box to cartControls this part of the section in the Theme Editor.
Add to cartButton label while items are needed ({remaining})textTheme defaultShows on the button until the box qualifies, for example "Add {remaining} more items". Leave blank to keep the main label.
Add to cartShow the total on the buttoncheckboxOnControls this part of the section in the Theme Editor.
Add to cartShow the button only on the Review stepcheckboxOffControls this part of the section in the Theme Editor.
Add to cartButton label while editing a carted boxtextUpdate boxControls this part of the section in the Theme Editor.
Add to cartUpdated messagetextYour box is updated 🎉Controls this part of the section in the Theme Editor.
Add to cartShow error messagescheckboxOnControls this part of the section in the Theme Editor.
Add to cartOpen the cart after addingcheckboxOnOpens your theme's cart drawer when the bundle is added. Themes that don't support this ignore it.
Add to cartView cart labeltextView cartControls this part of the section in the Theme Editor.
Add to cartBuild another labeltextBuild another boxControls this part of the section in the Theme Editor.
Text and labels

Your words stay in the theme.

Generic storefront wording is theme-owned. The campaign keeps only the cart title and each step’s message and badge.

Before and after

Section · Heading
Build your box
Build your summer set

Editable in this design

  • Campaign ID (optional)Section
  • HeadingSection
  • SubheadingSection
  • Summary headingSection
  • Step kicker ({step}, {steps})Section
  • Products step labelSection
  • Review step labelSection
  • Review step sub-labelSection
  • Review headingSection
  • Review empty stateSection
  • Back buttonSection
  • Continue buttonSection
Reorderable blocks

Keep what earns its place.

Removing a block removes that presentation layer, not the checkout rule. Shopify still validates the price.

01

Message bar

Removes the progress, ready, and status message area.

02

Countdown timer

Removes the schedule-bound countdown from this design.

03

Products

Removes the product or quantity selection surface.

04

Quick view

Removes the optional product quick-view modal.

05

Free gifts

Removes the dedicated free-gift presentation area.

06

Totals

Removes the illustrative subtotal, savings, and total display.

07

Add to cart

Removes the design’s add-bundle button.

Installation paths

Pick the least complicated path that fits.

01

Theme app block

The standard no-theme-write route. It uses the app-block renderer rather than installing this committed design file.

02

One-click is gated

This path stays hidden in production until the protected theme-write capability is available.

03

Manual install

Copy the self-contained section, then create or assign the corresponding page or product template.

Remixable display layer

Change the presentation without changing the pricing authority.

The theme renders the campaign, the storefront engine owns selection and cart intent, and Shopify checkout validates the result.

Three layers, one direction

  1. Theme and published Shopify data
  2. Selection and cart engine
  3. Shopify checkout pricing
Read the technical story