How to Get Product Stock Information in Magento 2?
Vinh Jacker | 03-17-2025
Getting product stock information means you can fetch some of the detailed information, such as minimum quantity (min_qty), minimum sale quantity (min_sale_qty), maximum sale quantity (max_sale_qty), check if product is in stock (is_in_stock), out of stock, etc. In Magento 2, online stores need to get data on inventory changes for regular tracking, which can help them in making future business decisions. Although Magento 2 well supports this need, store owners like you may be confused in how to do it quickly. The tutorial today is going to show 2 ways get product stock information in Magento 2**.
How to Get Product Stock Information in Magento 2
Use the class
Step 1: Declare the command to get product stock information
First, you will use a block class of the module Mageplaza_HelloWorld
, then possibly inject the object of \Magento\CatalogInventory\Model\Stock\StockItemRepository
class in the constructor of the module’s block class.
app/code/Mageplaza/HelloWorld/Block/HelloWorld.php
<?php
namespace Mageplaza\HelloWorld\Block;
class HelloWorld extends \Magento\Framework\View\Element\Template
{
protected $_stockItemRepository;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\CatalogInventory\Model\Stock\StockItemRepository $stockItemRepository,
array $data = []
)
{
$this->_stockItemRepository = $stockItemRepository;
parent::__construct($context, $data);
}
public function getStockItem($productId)
{
return $this->_stockItemRepository->get($productId);
}
}
?>
Step 2: Load product ID and SKU in template file
Next, please use the below script to load the product by id and sku in the template file.
$id = 123;
$_productStock = $block->getStockItem($id);
//print_r($_productStock->getData());
echo $_productStock->getQty(); echo '<br />';
echo $_productStock->getMinQty(); echo '<br />';
echo $_productStock->getMinSaleQty(); echo '<br />';
echo $_productStock->getMaxSaleQty(); echo '<br />';
echo $_productStock->getIsInStock(); echo '<br />';
That’s all you have to do to get the information on product stock. So easy, right?
Use Object Manager
Running the following code to retrieve product stock information in Magento 2:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$stockItem = $objectManager->get('\Magento\CatalogInventory\Model\Stock\StockItemRepository');
$productId = 1; // YOUR PRODUCT ID
$productStock = $stockItem->get($productId);
var_dump($productStock->getData());
The bottom line
Getting product stock information is essential for every Magento 2 store, as it can influence stock management and future business strategies. The coding process can be done quickly as above, so I believe you can easily pull it off. If you want to see how to get the product ID and SKU in a specific way, How to get product by ID and SKU in Magento 2 is the perfect suggestion for you.
If you have any queries about the article or any questions in general, use the comment section below!
Related Topics