Shopify bundle says sold out while the components are in stock: the location your store does not ship from
Ten tekst nie powstał jeszcze w twoim języku, więc czytasz wersję angielską.
A customer clicks "Add to cart" on a bundle and gets "already sold out". You open the admin and every component is in stock. Both screens are telling the truth about different things. We reproduced this on a test store by changing a single setting, and the cause is not a bug in your theme: it is where the stock sits.
What we tested
We created fresh products for the test, so no old orders or reserved units could muddy the result. The components of a bundle had stock only on a location the store does not ship from: 10 units of one, 4 of the other, more than enough for the bundle. The storefront refused to add the bundle to the cart as sold out. Then we gave the same quantities to the location the store does ship from, and the bundle went into the cart. Nothing else changed between the two runs.
To rule out geography, we added a third location in the same country as the shipping one and put the stock only there. Same refusal. The address does not matter. What matters is whether the store ships from that location.
- Stock on a location your store does not ship from is ignored when a bundle is added to the cart.
- In our test the location was set to fulfil online orders, and the stock still did not count.
- Moving the stock to a shipping location fixed it immediately.
Why the admin says everything is fine
At the moment the storefront refused the bundle, the admin reported both components and the bundle itself as available for sale. The product page showed an active "Add to cart" button with no sold-out label, because the bundle product does not track its own inventory. The failure only appears when the customer actually tries to buy. That is the worst place for it: you see no warning, and the customer sees a broken shop.
The opposite mistake: zero is not always sold out
While testing, we hit the reverse case. A component with zero stock can still be sold if inventory is not tracked for it, or if "Continue selling when out of stock" is on. Shopify lets that sale through. So a check that only looks at the available number will block sales that Shopify itself would accept. If you run any stock check over bundles, it has to read both settings, not just the count.
How to check your own store
- List the locations that hold stock for your bundle components.
- In your shipping settings, check which of those locations your store actually ships from.
- If stock sits on a location outside your shipping setup, either move it or add that location to the shipping setup, then try adding the bundle to the cart again.
- For components that can sell at zero (untracked or continue selling), treat them as never blocking.
What we could not test
Our test store ships from a single location, so the case of two shipping locations with stock split between them is not covered here. If your store ships from several locations, test a bundle whose components sit on different ones before you rely on it.
How Bundle Ledger handles it
Bundle Ledger keeps a map of component stock split into what can ship and what is stuck on a location the store does not ship from. The cart names the missing component instead of a bare "sold out", and the Bundle health screen shows stuck stock as its own problem: the component looks in stock in your admin, but its stock sits on a location the store does not ship from. Stock changes reach the map 3.5 to 13 seconds after Shopify records them. Unknown stock is never treated as zero: a late warning is better than blocking a real sale.
Autor Maksym Burkhan · Założyciel makseong
Maksym prowadzi makseong, studio programistyczne dla e-commerce i systemów webowych, i pisze o Google Merchant Center, feedach produktowych i problemach ze zgodnością, na które trafiają sprzedawcy.
Podobne poradniki
Sprawdź to na swoim sklepie
Zobacz Bundle Ledger