Here we learn how to update product stock programmatically in magento2
Here we define function in helper file of module to update product stock and use this function where we want to update product stock.
<?php namespace YourNameSpace\ModuleName\Helper; use Magento\Framework\App\Filesystem\DirectoryList; class Data extends \Magento\Framework\App\Helper\AbstractHelper { protected $_product; /** * @var Magento\CatalogInventory\Api\StockStateInterface */ protected $_stockStateInterface; /** * @var Magento\CatalogInventory\Api\StockRegistryInterface */ protected $_stockRegistry; /** * @param Magento\Framework\App\Helper\Context $context * @param Magento\Catalog\Model\Product $product * @param Magento\CatalogInventory\Api\StockStateInterface $stockStateInterface, * @param Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry */ public function __construct( \Magento\Framework\App\Helper\Context $context, \Magento\Catalog\Model\Product $product, \Magento\CatalogInventory\Api\StockStateInterface $stockStateInterface, \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry, ) { $this->_product = $product; $this->_stockStateInterface = $stockStateInterface; $this->_stockRegistry = $stockRegistry; parent::__construct($context); } /** * For Update stock of product * @param int $productId which stock you want to update * @param array $stockData your updated data * @return void */ public function updateProductStock($productId,$stockData) { $product=$this->_product->load($productId); //load product which you want to update stock $stockItem=$this->_stockRegistry->getStockItem($productId); // load stock of that product $stockItem->setData('is_in_stock',$stockData['is_in_stock']); //set updated data as your requirement $stockItem->setData('qty',$stockData['qty']); //set updated quantity $stockItem->setData('manage_stock',$stockData['manage_stock']); $stockItem->setData('use_config_notify_stock_qty',1); $stockItem->save(); //save stock of item } }
Thanks for reading the article 🙂 , I hope you liked it. Also, do check out Magento 2 Google Shopping Feed extension which allows you to showcase your Magento 2 online store’s products on Google using Shopping Feeds.
Thanks for posting this
Does it work with magento 2.4.2 ?