Your first bundle, start to finish

This is the whole setup. It takes about two minutes, and the products that go in the kit need to already be in your catalog.

Before you start

Nothing goes into your theme. There is no snippet to paste, no app block to enable and no script tag. If you were expecting a setup step in the theme editor, there isn't one, and a theme update can't break a bundle later for the same reason.

Two things the form will reject, so they are worth knowing now: a kit needs at least two items in total, and a gift card can't be a component. One product at a quantity of two counts, so a three-pack of the same mug is a valid kit.

1. Open the app and choose Create your first bundle

After installing, the app's home screen shows Get started with a Create your first bundle button. The bundles list is also reachable from the top nav at any time.

2. Name the kit

Bundle title is the product title shoppers will see. Any title Shopify accepts for a product works, slashes included — it becomes a real product, so Shopify's own rules are the only rules.

3. Add the components

Under Components, use Add products and pick the variants that go in the kit. Set Qty per kit for each one. Two mugs and a tray is Mug ×2, Tray ×1.

Pick the exact variants, not the parent products. Stock is counted against the variants you choose here.

4. Set one price

Bundle price is what the kit sells for. The compare-at price is filled in for you from the sum of the components, so that's one field you can't get wrong.

Type a price higher than the sum of the parts and the form says so before you save. Shoppers can see it's cheaper to buy the items separately. Shopify also won't show a compare-at price in that case.

5. Pick the fulfillment locations

This is the step people skip, and it's the one that matters most. Under Fulfillment locations, tick the locations the kit can ship from. The form won't save without at least one.

The stock number is counted at these locations, in complete kits. A location shows a kit in stock only when every component is on the shelf there, at the same time. Two mugs in Berlin and a tray in Rotterdam show zero at both. If you tick only Berlin, only Berlin's stock counts.

That number is what you see in Shopify, and it decides which location an order is sent to. It doesn't block checkout. Shopify checks each component's stock across your whole store, so a kit split between two locations can still be bought.

6. Save

Save bundle creates an ordinary product in your Shopify catalog: its own handle, its own product page, its own price. Your theme renders it, Shopify's checkout sells it and Shopify's translations translate it.

If the save succeeds locally but Shopify rejects the product, the form tells you plainly and asks you to save again — it doesn't fail silently.

What happens after that

At checkout, the kit line expands into its components. The shopper sees the kit; the order carries the individual products. Stock comes off each component, and fulfilment and sales reports stay on the real items. The component prices are worked out when you save and stored on the variant, so they add up to the kit price exactly. No pricing maths runs at checkout time.

The stock number refreshes on events, not on a timer alone. Shopify tells the app when inventory moves (inventory_levels/update), when an order comes in (orders/create) and when a product changes (products/update). The kit count is recomputed per location each time.

A health check runs every six hours, staggered per store. In the bundles list each row shows a Last check column and a badge: Verified ✓, FAILED, or Not checked before the first one has run. The check re-reads three things: the checkout price, the stock count, and whether shoppers can see the product. If the stock shown has drifted from what the components allow, the app re-syncs it once and keeps a record of the attempt.

A failed check shows on the dashboard and in this list. The app doesn't email you about it, so look there after a big stock change.

Removing a bundle

Remove bundle takes it out of the app and stops its health checks, and sets its Shopify product to Draft so shoppers can't buy it. Nothing is deleted. The product stays in Shopify until you delete it there yourself.

Suggestions, on the paid plans

The Suggestions page reads the last 90 days of orders and lists products that sell together. A pair needs to appear in at least two orders to show up. Nothing is created automatically — a suggestion opens the same bundle form for you to check the price, pick locations and save.

The suggested price is the components total minus a discount, never below component cost plus 15% margin where Shopify has cost data, rounded to .99.

The plans

Both paid plans have a 7-day trial and are free on development stores.

One thing it doesn't do

It won't let a shopper build their own kit. The components are fixed when you save, so "pick any three from this collection" is not something this app does. If that's the job you need, a mix-and-match app is the right tool and this one isn't.

It also won't stop a sale on its own. The kit product keeps selling at zero, because it holds no stock of its own. What holds a sale back is each component's own setting in Shopify. A component you allow to sell when out of stock keeps selling inside the kit.

If something looks wrong

Write to theagentgarage@gmail.com. Include the store's .myshopify.com domain, the bundle title, and what the bundles list shows in the Last check column. Roy built the app and reads the mail. The dashboard's Contact support button writes to shopifyaddson@gmail.com instead. Both inboxes are his.


Solid Bundles is a Shopify app that sells a multi-product kit as one real Shopify product with stock counted per fulfillment location, for merchants who ship from more than one place.