If you sell from more than one location, your bundles need to follow the same rules as the rest of your store. A customer in one country should only see what you can actually ship to them. A customer somewhere else should see something different.
Biscuits Bundles does this for you. This article explains how it works, and the few settings you need to get right.
If a bundle is already showing as sold out and you want to fix it now, go straight to Contextual availability with Markets, Locations, and Shipping.
Your bundle builder always shows live availability from Shopify, for each individual customer.
A customer can never choose a product that you cannot ship to them.
Your bundle product needs its own locations turned on, the same as any Shopify product.
New bundles start with every location turned on, and new locations are added to your bundles for you.
The products inside your bundle keep their own locations and publishing settings in Shopify.
Shopify does not simply ask "does this product exist". For every visitor, it checks three things:
Market. Which market is this customer shopping in, and is the product published to that market's catalog?
Location. Is the product stocked at a location that can ship to this customer?
Shipping. Is there a shipping rate that reaches this customer's address?
Shopify calls this fulfillable inventory. A product can only be bought when it is in stock at a location that is set up to deliver to that customer's shipping zone.
This applies to every store. Shopify has removed the older "sell from all locations to all shipping zones" option, so locations and shipping zones now decide availability for everyone. You can read more in Shopify's guide to setting up fulfillable inventory.
[screenshot - Shopify Settings, Shipping and delivery, showing a shipping zone and the locations that serve it]
The Biscuits bundle builder is a theme app block. It is built fresh every time a customer opens the page, using that customer's own market, location and shipping context. Nothing is saved ahead of time or reused from another customer.
This means:
Every product card is checked against live Shopify availability at the moment the page loads.
A product you cannot ship to that customer is shown as sold out and cannot be selected.
A product that has been deleted or archived is not shown at all.
Availability is checked against the quantity your step needs. If a step asks for 3 units and only 2 can be shipped to that customer, the card shows as sold out.
Products set to Continue selling when out of stock in Shopify, or with inventory tracking turned off, stay available. Biscuits follows your Shopify setting.
The same product can be available for one customer and sold out for another, on the same page, at the same time. This is correct. Your customer can only ever build a bundle you are able to ship to them.
[screenshot - a bundle on the storefront with one product card greyed out and marked Sold out]
A bundle is a real Shopify product. Like any product, Shopify needs to know which of your locations it belongs to. If your bundle product is not turned on at a location, Shopify cannot use that location to serve the customer.
To check or change this:
Open your bundle in Biscuits Bundles.
Find the Locations card. It shows how many locations are turned on, for example "3 of 4 locations activated".
Select Edit locations.
Tick every location you want this bundle to be sold from.
Select Set, then save your bundle.
Locations are grouped into Shopify locations and Third-party managed locations. Third-party locations are the ones handled by a fulfilment service or 3PL app. You turn them on the same way.
[screenshot - the Locations card on a bundle showing "3 of 4 locations activated"]
[screenshot - the Edit locations window, showing Shopify locations and third-party managed locations]
The rule to remember: if a location is not turned on, and it is the only location serving a customer's market, your bundle will show as sold out for that customer.
A new bundle starts with every location turned on. You only need to change this if you want to limit a bundle to certain locations.
When you add a new location in Shopify, or turn an existing one back on, Biscuits turns it on for your existing bundles automatically. You do not need to open each bundle one by one.
The products your customers choose inside a bundle are normal Shopify products. Biscuits does not change their locations or their publishing. You manage those in Shopify, exactly as you always have.
Your bundle can be on sale in a market while one product inside it is not. What happens next depends on whether you made that product required.
If the product is optional, only that product shows as sold out. The customer can still build the bundle and buy it.
If the product is required, the whole bundle shows as sold out for that customer. The add to cart button is turned off.
If a required step has no available products at all, the whole bundle shows as sold out for that customer.
So check your required products in every market you sell in. One required product that you cannot ship stops the whole bundle for those customers.
Locations decide where a bundle can ship from. Publishing decides which customers can see it at all. You need both.
Set your bundle to Active and it is published to your Online Store automatically.
In the Status card, select Publishing, then Manage, to publish the bundle to your market catalogs.
A market is covered when any of its catalogs includes the bundle product.
A market with no catalog of its own is served through your Online Store publication.
Publish the products inside your bundle to the same markets.
If you sell in several currencies, also read Localised bundles: pricing for Shopify Markets. For localised bundles, publishing is read at the product level only, and Shopify's variant level publishing settings are ignored.
[screenshot - the Publishing window listing catalogs and markets]
Your bundle product should not track its own stock. The real stock lives on the products inside the bundle, and Biscuits checks those instead. If the bundle product tracks inventory, Shopify will treat it as sold out even when everything inside it is in stock.
Biscuits keeps this setting turned off for you. Another app, or a manual change in Shopify, can switch it back on. If that happens, Biscuits shows a Bundle availability issue message on the bundle. Open the bundle and select Save, and Biscuits will set it back for you.
[screenshot - the Bundle availability issue message in the app]
For every region or market you sell in, check that:
Your bundle product is turned on at a location that ships to that region. Use the Locations card in Biscuits.
Your bundle product is published to that market's catalog, or to your Online Store if the market has no catalog of its own.
Every product inside the bundle is Active and published to the Online Store and to that market's catalog.
Every product inside the bundle is stocked at a location that ships to that region.
A shipping rate reaches that region. Bundles do not have their own shipping profile. Shopify works out the rate from the shipping profiles of the products inside your bundle, so check those profiles and your general profile.
Your bundle product is not tracking inventory.
A warehouse for each region. Turn every warehouse on for the bundle. Shopify then picks the right one for each customer.
A retail store that does not ship online. Check the location's own settings in Shopify first. If it should never serve online orders, you can also turn it off for the bundle.
A 3PL or fulfilment app. These appear under Third-party managed locations in the Edit locations window. Turn them on in the same way.
Pre-orders or made to order. Set the products inside the bundle to Continue selling when out of stock in Shopify. Biscuits will keep them selectable.
Older locations. Some older locations do not turn on reliably. Biscuits marks these with a Legacy label. Update the location in Shopify if you can.
Missing SKUs. Some locations will not accept a product without a unique SKU. If a location will not turn on, add a SKU to your bundle product and save again.
A location that could not be turned on. Biscuits tells you which one. You can ignore the message if you do not need that location.
Turning a location off. This removes the bundle from that location. If it was the only location serving a market, customers there will see the bundle as sold out.
The easiest way to check is to view your bundle the way a customer in that country would.
Add ?country= and the two letter country code to your bundle's URL. For example, add ?country=DE to see it as a customer in Germany.
Or open your theme editor, switch the preview country or market, then look at the bundle.
Check two things: the bundle's own add to cart button, and the individual product cards inside it.
[screenshot - the storefront country selector switched to another country]
Work through Contextual availability with Markets, Locations, and Shipping. It covers each cause and how to fix it. For sold out states that are not about markets or locations, see Bundle displaying sold out.