在 Magento2 中获取产品的库存信息

获取产品的库存信息意味着可以获取一些具体的信息,比如,最小数量(min_qty),最少销售数量(min_sale_qty),最大销售数量(max_sale_qty),是否有库存(is_in_stock),缺货等。在 Magento2 中,可以完全控制需要的库存信息。

获取产品库存信息概览

  • 第一步:声明获取产品库存信息的命令

  • 第二步:在模板文件中加载产品 ID 和 SKU

第一步,声明获取产品库存信息的命令

使用模块 Mageplaza_HelloWorld 的块(block)类,然后,在模块的块(block)类的构造函数中注入类 \Magento\CatalogInventory\Model\Stock\StockItemRepository 。

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);
    }
}
?>

第二步,在模板文件中加载产品 ID 和 SKU

接下来,使用以下代码在模板文件中加载产品的 ID 和 SKU

$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 />';

本教程翻译自Mageplaza模块开发系列,其他内容请点击下面链接: