How does Product Bundles handle inventory?

The way the app works is it creates an app variant for the selected product to represent the discounted bundle price, and if the customer is eligible, this variant is added to the cart instead of the products regularly priced variant.

The bundle variants don't have their own inventory, and they instead share the inventory of the regular variant that its created from.  As long as the regular variant is in stock, the bundle variant will be listed as "n/a", which is technically in stock at an unlimited amount.  If the product has inventory tracking enabled, then when a bundle variant is checked out with, the app will reduce the inventory of the regular variant.  When the regular variant is out of stock, the inventory of the bundle variant will be changed to 0.

To bring the Bundle variant back into stock

If you add inventory to the regular variant and you want the bundle variant to be listed as "in stock", you'd need to go into the app admin, click on the "Product Bundles" tag, and click on the "Manually Sync Product Bundles Inventory" button.  This will cause the app to go through the bundle variants and list them as back in stock if the regular variant that it was created from has a positive inventory.


Bundle variants are always created as in stock

Shopify doesn't allow variants created from an app to be created at a specific stock quantity, so when the app variants are created they always have a value as "n/a", regardless if the variant that they're created from is out of stock.  To have those variants listed as out of stock if the regular variant is out of stock, you'd need to click on the "Manually Sync Product Bundles Inventory" button as pointed out above.  It's a good idea to click this button whenever a bundle group is updated or you create a new bundle group.


Potential for oversolds

With how inventory is handled, we have built it the best we can within the limitations of the Shopify framework. Unfortunately, this means that there is always the potential for an item to be oversold, but will only happen once.

 If only the base item is being purchased, inventory is being counted towards that variant inventory. Generally, if they are trying to buy more than what is available, a message would prompt the customer to reduce the quantity.

 When the bundle is being purchased, the customer is purchasing the bundle price variant, the one where the inventory is N/A. Within Shopify, N/A means that the inventory is unlimited and not being tracked. No longer is a prompt given to reduce the quantity.

After the sale, the app does a little bit of magic, reducing the base variant inventory by the quantity purchased. Once the base variant has been reduced to zero, the bundle price variant will switch from N/A to zero, making the product unavailable for purchase.

 To better illustrate, lets say that a t-shirt has 3 in stock. When looking at the product within Shopify, it would look like this:

shirt - 3 in stock
shirt (bundle price) - N/A

 If the first customer just buys the shirt and nothing else, inventory is reduced as normal. The 3 now becomes 2.

 The next customer buys 2 bundles that include this shirt. What they are actually purchasing is 2 of the bundle price variant (the N/A variant one). After the sale, the base variant is reduced by 2, down to zero. As the base variant is now zero, the bundle price variant is automatically switched from N/A to zero. This product cannot be added to any bundles, until stock is re-added.

Backing up, if instead of 2, the second customer purchases 3 bundled shirts, the same process happens. Order proceeds through as they are purchasing the N/A variant that does not track inventory. After the sale, the base variant is reduced from 2 down to -1. The bundle price variant is also switched from N/A to zero, preventing any further items from being oversold.

Again, we have built this the best we can within the limitations of Shopify. There are a couple workarounds. Something simple as showing the base inventory quantity on the product page, informing the customer how much is on hand. Still doesn't prevent overselling, but at least they know up front what is available. Preventing the overselling even on bundles could be done with some custom, theme-specific enhancements.

Have more questions? Submit a request