Let customers build their own box or mix-and-match bundle: pick products, get a discount, and add the whole thing to cart as one box. Components stay real products, so inventory never oversells.
Watch the whole setup, choosing which products can go in, pricing, turning the box live, and what a shopper sees at checkout. Watch on YouTube →
You create a box: choose which products a shopper can pick from, how many items go in the box, and the discount. On your storefront, shoppers build their box in a simple picker; at checkout the picked items collapse into one discounted box line. Because the items are your real products, stock draws down normally and the exact contents carry through to the order for fulfillment.
Each box has one source:
Minimum and Maximum control how many items a shopper puts in their box: not how many products you offer. Below the Minimum, the "Add box to cart" button stays disabled and shows "Pick N more"; at the Maximum, extra picks are blocked. Minimum must be at least 1, and Maximum can't be below the Minimum.
A fixed price suits items that cost about the same, like a four-pack or a half dozen. Where your prices vary a lot, remember that quantities count toward your maximum, so a shopper can take your maximum number of your dearest item. The editor works that worst case out under Total box price and warns you when the discount gets steep, or when your maximum sits above your minimum, which makes every item past the minimum free. Matching the maximum to the minimum fixes it, and so does % off, which scales with whatever the shopper picks.
Choosebox reads each product's real, online-sellable availability. With Hide out-of-stock products on (the default), a sold-out item simply drops out of the picker and returns when restocked. You can even add a currently out-of-stock product to a box in the editor, availability is checked live on every page load, so it appears for shoppers automatically the moment it’s back in stock, with no re-editing. Turn it off and sold-out items show as a grayed "Out of stock" card that can't be picked. Either way, shoppers can never add something that would fail at checkout, and because components are real products, you won't oversell. A product or variant that isn't published to the Online Store sales channel also shows as “Out of stock”, since it can't be sold on your storefront until you publish it there.
Each product appears as one card. A single-variant product adds in one click. A product with multiple variants (sizes, colors, etc.) shows an “Add” button that opens a small popup: shoppers choose one or more variants and a quantity each (e.g. Ice ×1, Sunset ×2), each with its own thumbnail. Every unit counts toward the box’s maximum, and the exact variants carry through to the order.
Set a Box image in the box editor to control the thumbnail on the box line in cart and checkout. Leave it blank and the box automatically uses the first item the shopper picked. To choose one, click any of the thumbnails shown under the Box image field, which are the products already in your box, or use Choose any product’s image to pick a different one. If you would rather use an image that is not on a product, upload it under Content → Files in your Shopify admin and paste its URL under “Or paste an image URL”.
They work. A shopper can use one of your discount codes on an order containing a box, and both come off. Shopify runs the box pricing first and then applies discounts, so a code stacks on top of the box discount rather than replacing it or being refused.
This is worth knowing because it is not true of every app in this category. Apps that build a box as a draft order cannot accept discount codes at all, which is a common reason merchants move away from them.
By default a shopper sees every eligible product in one grid. For a bigger box you can split that into named screens they move through in order: one bread, then one pastry, then an extra.
Open a box, scroll to Steps, and press Split this box into steps. For each step, give it a name shoppers will read as the heading, set the least and most items it takes, and click the products that belong on it.
The app home screen shows a Last 30 days card once your builder has loaded at least once, and each box shows its own numbers in its editor.
Open a box and expand Storefront wording. Every string a shopper can see is there: the prompt above the products, the prompt once the minimum is met, the prompt when there are still slots left to fill, the prompt once the box is full, the counter next to the button, the Add and Edit buttons, the sold-out label, the discount tag and every error message.
Leave a field empty and it keeps the English wording, which is shown in grey inside the empty field so you can see what you are replacing. Fill in only the ones you care about.
Wording is set per box, and it applies on the box’s own page and in the theme block. It is included on every plan.
Open a box, scroll to Gift message and switch on Let shoppers add a message to this box. Shoppers then get a message field under the products, before the add-to-cart button.
The box editor shows a live preview at the top. It lays out your eligible products with their images and prices, and you can click products right in the preview to build a box the way a shopper would, the item count and the discounted box total update as you pick, respecting your Minimum and Maximum. Change your products, item counts, or pricing and the preview updates instantly, so you can sanity-check the discount before going live.
There are two ways to put a box in front of shoppers. The first needs no theme editing at all.
Every live box is also served at /apps/choosebox/build on your own store. Choosebox draws it inside your theme, so the page arrives with your header, footer, fonts and colours already on it. Nothing is added to your theme and nothing can be placed wrongly.
The second way puts the builder inside a page you already have, using the theme block. Both can run at once.
Two different things cause this, and the first one is far more common.
You may be looking at the page rather than inside a section. App blocks can only be added inside a section, so the add control at the page level will not list any apps at all. Click directly on the section you want the builder in, then look for an Apps group in the add list that appears. Themes also disagree about what that control is called. Some say Add block, some say Add section, and others use their own word such as Add feature or Add element. Look for the Apps group rather than for a particular phrase.
Or your theme may be an older one. Themes from before Shopify's Online Store 2.0 cannot hold app blocks anywhere, and no app can change that. You can check in about ten seconds: go to Online Store → Themes, open the three dots next to your theme and choose Edit code, then open the templates folder. A file named product.json means your theme supports app blocks. product.liquid means it does not. A good second clue is that sections only work on your home page.
There are two places styling can come from, and they work together.
Open a box and scroll to Appearance. You get accent, text, card background, card border and button text colours, corner roundness, card border width, overall width, the add-to-cart wording and a Custom CSS field. Leave a colour cleared and it follows your store theme, which is the default and usually the right answer.
Layout presets sit at the top of that section: Default, Minimal, Compact, Rounded, Sharp and Wide. Each one sets roundness, border width and width together. They do not change colour on purpose. The builder is built to take your store’s own colours, and a preset that painted it something else would undo that on most themes.
What you set here applies to the box’s own page and to the theme block.
The Choosebox builder block keeps its own copy of the same settings. Anything set there wins for that block, so a block you have already styled by hand does not change. Leave a block setting blank and the block uses what you set in the app instead. The block also has its own Custom CSS field, separate from the one in the app.
By default the picker matches your store theme, it inherits your theme’s fonts, text color, and background automatically. Open the Choosebox builder block in your theme editor to adjust anything; settings are grouped into Text, Colors, Layout, and Advanced. Leave any color blank to keep the theme default.
.choosebox, .cb-card, .cb-add and other classes. Applies to this block only.Each live box needs a hidden $0 container product, named “Your box name (Choosebox bundle - do not delete)” in your Products list (product type “Choosebox Bundle”, tag choosebox-parent), so the box can check out as one line. It must stay published to your Online Store for checkout to work, but Shopify shows every published product in /collections/all and search, so it can appear where shoppers browse. None of the steps below affect checkout; they only change what’s displayed. Work them in order, most stores only need steps 1 and 2.
The container never needs to be in a collection. Don’t add it to a manual collection, and if an automated collection’s conditions would sweep it in, add the condition Product type is not equal to “Choosebox Bundle”. This one habit prevents it from surfacing in most places, including homepage “Featured collection” blocks, which pull from a collection you pick.
{%- for product in collection.products -%} and add this line directly beneath it:{%- if product.type == 'Choosebox Bundle' -%}{%- continue -%}{%- endif -%}
Save. This single edit covers /collections/all and every collection page at once.
If a homepage “Featured collection” section still shows the container, open Sections → featured-collection.liquid, find its {%- for product in collection.products ... -%} line, and add the same line beneath it. Usually unnecessary once you’ve done step 1.
Storefront search uses a different loop, so the line above won’t match it. Easiest: use Shopify’s free Search & Discovery app to exclude the “Choosebox Bundle” product type from search and recommendations. Or edit Sections → main-search.liquid, find {%- for item in search.results -%}, and add:
{%- if item.object_type == 'product' and item.type == 'Choosebox Bundle' -%}{%- continue -%}{%- endif -%}
On the storefront, shoppers pick items in a clean picker with a progress bar, running savings, and a total. When they add the box, the individual items merge into a single box line at the discounted price. At checkout and on the order, the box line expands to show exactly what's inside, so you know what to ship.
Creating and editing boxes is always unlimited on every plan. What the plans meter is box sales a month in dollars, and only the box lines count, never the rest of an order. The dashboard shows a usage bar so you always know where you stand. Upgrading is one click through Shopify’s secure billing, and you can cancel anytime from the Plans page.
Support is on every plan, including Free: one inbox, read by the person who builds Choosebox. It is not something a paid plan buys.
At the bottom of Choosebox’s home screen there is an Email updates box. It is optional: add an email and press Save to receive updates, or leave it empty and Choosebox never emails you. Emails greet you by your store’s name.
If you add one, you get a note when your boxes have used 80% of your plan’s monthly box sales, another if they reach the limit and the builder is hidden until the 1st, and an occasional note when there is a major update. Every email has an unsubscribe link, and Unsubscribe under the box removes your address straight away.
No. The items in a box are your real products, so their inventory draws down normally and Shopify won't let a sold-out item be purchased. Choosebox also hides or blocks out-of-stock items in the picker.
Yes. At checkout and on the order the box line lists its components, so fulfillment sees exactly which products (and quantities) to pack.
Yes, create as many as you like. To show a specific one on a specific page, paste that box’s ID into the block’s Box ID field; leave the field empty and the block follows whichever box is live. Box creation and editing are unlimited on every plan. If two or more boxes are live at once, every block with an empty field follows the most recently edited one, so pin each block with its own ID.
Only completed box orders (up to 25/month on Free). Building and editing boxes never counts.
Cancelling Pro stops future charges (Shopify applies any prorated credit for unused time, and your live boxes keep selling. The monthly box-order count resets on the 1st of each month regardless of plan, so a plan change doesn’t reset the current month. If you’re over 25 for the month, you simply can’t create or edit boxes until it resets) sales are never blocked.
Not as a subscription. Boxes work with one-time purchases; a line with a subscription/selling plan can't be merged into a box.
Not a recurring one. This is a Shopify limit rather than a Choosebox setting: Shopify's bundling system, which is what lets a box check out as one line, does not support selling plans, so no app that builds boxes this way can sell one on a subscription.
A box is always a one-off purchase. The shopper picks their items and buys that box, and nothing renews, nothing bills again, and there is no cancelling or skipping to handle. If they want another next month they come back and build another one.
You can still name a box something like “The Soap Club” and plenty of shops do, but understand what you are and are not getting: the name is yours, the repeat is not automatic. Bringing people back is on you, with a reminder email, a reorder link or a discount on their next box. If you need real recurring billing, you need a subscription app, and the box has to be a normal product rather than a Choosebox box.
Email support@dropfeed.io. We typically reply within 1–2 business days.
← Back to Dropfeed