OptionfierOptionfier

Set up Build-a-Box

By the end you'll have a working build-your-own-bundle on your store: a pool of products, a box size, and a page where customers assemble their own six-pack, gift box or sampler. Every item they pick becomes a real line item with its own price and its own inventory.

The working core is six steps. Everything else in the box editor is polish you can layer on afterwards, and there's a map of it further down.

Build the box

  1. Open Optionfier from your Shopify admin and click New Build-a-Box.
  2. Fill in Name. Internal only, customers never see it.
  3. In the Parent product card, click Select existing and pick the product that represents the box in your store (your "6-Pack" or "Gift Box" product), or click Create product to make one now. This is what customers add to the cart, so publish it to your Online Store sales channel. If you don't, the card badges it Unlisted and warns you the product isn't visible on your Online Store yet.
  4. In the Contents card, click Add products and pick everything customers can choose from. Drag the cards to set the order they appear in on your storefront. Put your best sellers first, since that's what an undecided customer reaches for.

Screenshot: the Contents card with eight product cards added, showing the drag handles

  1. In How many items?, set Minimum picks. Then decide about the ceiling: No maximum is checked by default and lets customers keep adding, so uncheck it and set Maximum picks if the box is a physical container with a real limit. A six-pack wants minimum 6, maximum 6. A "fill your own hamper" is happy with a minimum and no maximum.

Screenshot: the "How many items?" card with Minimum picks set and the No maximum checkbox unchecked so Maximum picks is editable

  1. Toggle Published in the Status card and save.

That's a working box. Its own page is live immediately, no theme editing required.

The optional half

Now the polish. None of it is required, and it's all reachable from the same editor:

Subscriptions for recurring boxes are coming soon; the card in the editor shows the status.

What the customer sees

Every published box with a parent product gets a standalone page on your store, wrapped in your theme's header and footer. The address is your store domain, then /apps/optionfier/box/, then the box's handle. A box called "Build Your Own Coffee Box" lands at https://your-store.myshopify.com/apps/optionfier/box/build-your-own-coffee-box.

You set that last part yourself in the URL handle field, and a box that has no handle falls back to its internal id instead. To get there: open the Storefront layout card, click the Box page row, and the composer opens. The URL handle field lives at the bottom of the left panel, with Open page and Copy link right under it. Copy the link and put it in a menu, an email or a button. You can also put the box on your product pages or anywhere else with the Optionfier: BYOB theme block, covered in the theme setup guide.

On that page the customer sees your product pool, a running count of how many picks they've made against the box size, and an add-to-cart button for the finished box. They can add multiples of the same item, and three of the same IPA counts as three picks. Sold-out products are badged and can't be picked.

Screenshot: the storefront box builder with a half-filled box and the progress indicator showing picks against the box size

When the finished box hits the cart, Optionfier expands it into one component line per picked item, each with its own price, exactly like a native Shopify bundle. Shopify decrements each component's inventory at checkout. Put three IPAs in a six-pack and your IPA stock drops by three. Refunds and restocks work the standard Shopify way, because every component is a real line item.

The parent product is the line that groups those components, but by default it's display only. The customer pays for what's inside the box, not for the box itself. If the container genuinely costs money (a nice wooden crate, say), turn on Charge for the box product in the Box pricing card and the parent joins the bundle as a paid line.

Go deeper