Hello Magento Friends,
Today I am going to solve the issue of product salable quantity 0 being shown in stock in Magento 2.
Preserving customer faith in your store is extremely important. Managing inventory and displaying the correct quantity status to customers is significant to provide a better user experience. Admin can immediately get the list of products that are out of stock and accordingly add more quantity by integrating Out of Stock Products List Extension for Magento 2.
At times Magento 2 store owners face issue of quantity availability showing in stock even if the salable quantity is 0. This has a negative experience on your store customers. So, when the salable quantity becomes 0 it should show out of stock in the frontend to customers in Magento 2.
Let’s see how you can solve the issue of a Product with a Salable Qty 0 not considered Out of Stock in Magento 2.
Steps to Solve the Issue of Product with Salable Qty 0 is not considered Out of Stock in Magento 2:
Step 1: Create default.phtml in the below path
app\design\frontend\Themes\Yourtheme\Magento_Catalog\templates\product\view\type\
Now add the below code
<?php /* @var $block \Magento\Catalog\Block\Product\View\AbstractView */?> <?php $_product = $block->getProduct() ?> <?php $stockstate = \Magento\Framework\App\ObjectManager::getInstance()->get('\Magento\InventorySalesApi\Api\GetProductSalableQtyInterface'); $sale_qty = $stockstate->execute($_product->getSku(), 1); ?> <?php if ($block->displayProductStockStatus()): ?> <?php if ($_product->isAvailable() && $sale_qty > 0): ?> <div class="stock available" title="<?php /* @escapeNotVerified */ echo __('Availability') ?>"> <span class="label"><?php /* @escapeNotVerified */ echo __('Availability:') ?></span> <span><?php /* @escapeNotVerified */ echo __('In stock') ?></span> </div> <?php else: ?> <div class="stock unavailable" title="<?php /* @escapeNotVerified */ echo __('Availability') ?>"> <span class="label"><?php /* @escapeNotVerified */ echo __('Availability:') ?></span> <span><?php /* @escapeNotVerified */ echo __('Out of stock') ?></span> </div> <?php endif; ?> <?php endif; ?>
Results:
Once you apply the above code, the stock availability status in the frontend shows properly based on the scalable quantity in the backend.
Admin Catalog Product Grid
Frontend Product View Page
Conclusion:
As simple as that! Try out the above solution to figure out the issue of Product with Scalable Qty 0 is showing in stock in Magento 2. For any help, you can freely reach out to us via the comment box.
If you found the solution useful, share it with your friends and colleagues. Stay in touch with us for more.
Happy Coding!