获取产品的库存信息意味着可以获取一些具体的信息,比如,最小数量(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 />';