How to Fix Magento 2 Bundle Product Out of Stock Issue
[Updated: March 13, 2026]
Your Magento 2 bundle products show "Out of Stock" even though every child product has inventory. This is one of the most reported issues in Magento, with multiple GitHub issues and official patches addressing different root causes.
This guide covers all 7 known causes and their fixes, from simple admin checks to MSI bugs and database diagnostics.
Key Takeaways
- Bundle stock status depends on ALL child products being in stock
- Multi-Source Inventory (MSI) has a known bug that sets bundle stock to 0 in the database
- Official patches MDVA-33976 and ACSD-56546 fix specific bundle stock display issues
- Reindexing with
bin/magento indexer:reindex cataloginventory_stockresolves most sync problems - Cache clearing after any stock change is required for the frontend to reflect updates
Quick Answer
Magento 2 bundle product out of stock = The bundle inherits its stock status from child products. If one required child is out of stock, the entire bundle shows as unavailable.
Most common fix: Check child product stock status in Catalog > Products, then reindex with
bin/magento indexer:reindex cataloginventory_stockand clear the cache.If that fails: Check for MSI bugs in the
cataloginventory_stock_itemtable whereis_in_stockmay be set to 0 despite children being in stock.
What Are Magento 2 Bundle Products?
Bundle products let customers build their own product combination from predefined options. A customer selects a laptop, then picks the processor, storage, and accessories. Each option can be required or optional.
Magento calculates bundle stock status based on child product availability. The bundle shows as "In Stock" only when all required child products have stock. This dependency chain is where most out of stock issues originate.
Bundle products support two pricing models:
| Pricing Type | How It Works |
|---|---|
| Fixed | Bundle has a set price regardless of selected options |
| Dynamic | Final price = sum of selected child product prices |
7 Causes of Bundle Product Out of Stock Issues
1. Child Product Out of Stock
The most common cause. Magento checks stock for every required item in the bundle. If one child product has qty = 0 or stock_status = Out of Stock, the entire bundle becomes unavailable.
Fix: Go to Catalog > Products. Open each child product linked to the bundle. Set stock status to "In Stock" and verify the quantity is above zero.
2. MSI (Multi-Source Inventory) Database Bug
This is a known Magento 2.4.x bug documented in GitHub Issue #35271. When MSI is enabled, the cataloginventory_stock_item table may set is_in_stock = 0 for bundle products even when all child products have stock.
Diagnosis: Run this SQL query to check:
SELECT entity_id, sku, type_id
FROM catalog_product_entity
WHERE entity_id IN (
SELECT product_id FROM cataloginventory_stock_item
WHERE is_in_stock = 0 AND product_id IN (
SELECT parent_product_id FROM catalog_product_bundle_selection
)
);
Fix: Update the stock flag and reindex:
UPDATE cataloginventory_stock_item
SET is_in_stock = 1
WHERE product_id = YOUR_BUNDLE_PRODUCT_ID;
Then run:
bin/magento indexer:reindex cataloginventory_stock
bin/magento cache:flush
For a proper fix, review the Multi-Source Inventory configuration to verify source and stock assignments.
3. Missing Stock Status After Import
When you import bundle products via CSV, Magento may not create entries in the cataloginventory_stock_status table. The product exists in the catalog but has no stock record, so it defaults to out of stock.
Fix: After import, reindex your catalog to regenerate stock status entries:
bin/magento indexer:reindex
bin/magento cache:flush
4. Bundle Option Removed (MDVA-33976)
Removing an option from a bundle product in the admin panel can set the entire bundle to out of stock. This is a confirmed bug in Magento 2.3.0 through 2.3.7.
Fix: Install the MDVA-33976 patch via the Quality Patches Tool (QPT 1.0.15):
composer require magento/quality-patches
./vendor/bin/magento-patches apply MDVA-33976
bin/magento cache:clean
5. Display Out of Stock Setting (ACSD-56546)
When "Display Out of Stock Products" is disabled in configuration, bundle and configurable products may show as out of stock even when they have available inventory. This bug affects Magento 2.4.4 through 2.4.6-p4 and was fixed in 2.4.7.
Fix: Install the ACSD-56546 patch via QPT 1.1.48, or upgrade to Magento 2.4.7 or later.
6. Stale Cache and Index Data
Magento caches product data for performance. After stock changes, the frontend may still display old stock information until you clear the cache and rebuild indexes.
Fix:
bin/magento indexer:reindex cataloginventory_stock
bin/magento cache:clean
bin/magento cache:flush
7. Incorrect Product Visibility
If a child product's visibility is set to "Not Visible Individually" and it is also disabled, Magento may exclude it from stock calculations. The bundle then shows as unavailable because a required option has no selectable products.
Fix: Go to Catalog > Products. Open the child product. Set Status to "Enabled." The visibility can remain "Not Visible Individually" as long as the product is enabled.
Step-by-Step Troubleshooting
Follow this sequence to identify and fix the root cause:
Step 1: Verify child products. Open each child product in the admin. Confirm stock status is "In Stock" and quantity is above zero.
Step 2: Check the database.
Run the SQL diagnostic query from Cause #2 above. If is_in_stock = 0 for your bundle despite children being in stock, you have the MSI bug.
Step 3: Reindex and clear cache.
bin/magento indexer:reindex cataloginventory_stock
bin/magento cache:flush
Step 4: Check Magento version.
Run bin/magento --version. If you are on 2.3.x, apply MDVA-33976. If on 2.4.4 through 2.4.6, apply ACSD-56546 or upgrade to 2.4.7+.
Step 5: Verify the frontend. Open the product page in an incognito browser window. Confirm the bundle shows as "In Stock" with all options available.
Preventing Bundle Stock Issues
Automate Stock Synchronization
Set up cron jobs to run stock indexing on a regular schedule. This prevents stale stock data from accumulating between manual reindex runs.
# Add to crontab for automatic reindexing every 6 hours
0 */6 * * * cd /var/www/magento && bin/magento indexer:reindex cataloginventory_stock
Monitor Low Stock Levels
Use inventory reporting tools to set alerts when child products approach zero stock. Catching low stock before it hits zero prevents bundle products from going unavailable.
Configure Backorders for Critical Items
If a child product runs out of stock but you expect a restock, configure backorders to keep the bundle available. Customers can still place orders while you replenish inventory.
Keep Magento Updated
Each Magento release fixes known stock-related bugs. The current stable version is Magento 2.4.8 (released April 2025) with security patch 2.4.8-p4 (March 2026). Running the latest version eliminates many bundle stock bugs that existed in older releases.
Bundle Products vs Configurable Products: Stock Behavior
| Feature | Bundle Product | Configurable Product |
|---|---|---|
| Stock calculation | All required children must be in stock | At least one variant must be in stock |
| Price model | Fixed or Dynamic | Based on selected variant |
| Out of stock trigger | Any required child hits zero | All variants hit zero |
| MSI bug impact | High (GitHub #35271) | Medium (ACSD-56546) |
| Reindex dependency | cataloginventory_stock |
cataloginventory_stock |
Understanding this difference helps diagnose issues faster. Bundle products are stricter because every required option needs stock, while configurable products only need one available variant.
FAQ
What causes a Magento 2 bundle product to show out of stock?
The most common cause is a child product with zero stock or a stock status set to "Out of Stock." Magento requires all required bundle options to have at least one in-stock selection. MSI database bugs can also set the bundle's stock flag to 0 in the cataloginventory_stock_item table.
How do I check if MSI is causing the bundle stock issue?
Query the database: SELECT * FROM cataloginventory_stock_item WHERE product_id = YOUR_BUNDLE_ID. If is_in_stock = 0 but all child products show in stock, you have the MSI bug. Update the flag to 1 and reindex.
Which official patches fix bundle product stock bugs?
MDVA-33976 (QPT 1.0.15) fixes bundle products going out of stock after an option is removed. ACSD-56546 (QPT 1.1.48) fixes bundles showing out of stock when "Display Out of Stock Products" is disabled. Both are installed via the Quality Patches Tool.
Does reindexing fix bundle product out of stock issues?
Yes, in most cases. Running bin/magento indexer:reindex cataloginventory_stock recalculates stock status from the cataloginventory_stock_item table and updates cataloginventory_stock_status. Always clear the cache afterward.
Can I keep a bundle available when one child product is out of stock?
Yes, if the child product is in an optional bundle option (not required). For required options, add alternative selections so customers can pick a different product. You can also enable backorders to allow orders on out of stock items.
How do I prevent bundle stock issues after CSV import?
Always run a full reindex after importing bundle products: bin/magento indexer:reindex. The import process may not create entries in cataloginventory_stock_status, which causes bundles to default to out of stock on the frontend.
What Magento version fixes the most bundle stock bugs?
Magento 2.4.7 includes the fix for ACSD-56546 (bundle/configurable OOS display). Magento 2.4.8 (current stable, April 2025) includes all prior fixes. Running 2.4.8-p4 (March 2026) gives you the latest security patches along with all stock-related bug fixes.
How often should I reindex to prevent stock sync issues?
Set a cron job to reindex every 4 to 6 hours for stores with frequent stock changes. High-volume stores with real-time inventory updates from ERP systems should consider "Update on Save" indexer mode instead of "Update by Schedule."
Summary
Bundle product out of stock issues in Magento 2 stem from seven distinct causes, and each requires a different fix. Start with the simple checks (child product stock, cache, reindex) before investigating MSI bugs or applying patches.
The most effective prevention strategy combines automated reindexing, low-stock alerts, and keeping Magento updated to the latest version. For stores where uptime and stock accuracy are critical, managed Magento hosting provides server-level cron management and performance tuning that keeps inventory synchronization running smooth.