当前位置: 技术文章>> 如何在Magento 2中以编程方式更新产品库存

文章标题:如何在Magento 2中以编程方式更新产品库存
  • 文章分类: Magento
  • 22864 阅读
系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》

本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。


在Magento 2中以编程方式更新产品库存的步骤:

第 1 步:我们需要 在扩展名中以以下路径创建一个“Data.php”文件

app\code\Vendor\Extension\Helper\

现在添加代码,如下所示

<?php
namespace Vendor\Extension\Helper;
 
class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
    protected $_productobj;
    protected $_stockRegistry;
 
    public function __construct(
        \Magento\Framework\App\Helper\Context $context,
        \Magento\Catalog\Model\Product $productobj,
        \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry,
    ) {
        $this->_productobj = $productobj;
        $this->_stockRegistry = $stockRegistry;
        parent::__construct($context);
    }
 
    public function updateProductStock($productId,$stockData) {
        $product=$this->_productobj->load($productId); 
        $stockItem=$this->_stockRegistry->getStockItem($productId); 
        $stockItem->setData('is_in_stock',$stockData['is_in_stock']); 
        $stockItem->setData('qty',$stockData['qty']); 
        $stockItem->setData('manage_stock',$stockData['manage_stock']);
        $stockItem->setData('use_config_notify_stock_qty',1);
        $stockItem->save(); 
        $product->save(); 
    }
}

步骤 2:定义帮助程序类并根据您的要求使用它。您需要将产品 ID 作为第一个参数传递,并将数组中的库存数据作为第二个参数传递。下面是一个股票数据数组的示例。

$stockData = array('is_in_stock'=>1,'qty'=> 5, 'manage_stock'=> 1);

结论:

就是这样!使用上述方法,您可以轻松地在Magento 2中以编程方式更新产品库存。管理员可以通过获取缺货产品列表并通过缺货通知模块在产品重新入库时通知客户,从而轻松管理缺货产品。


推荐文章