2016-11-02 2 views
1
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 

$product = $objectManager->get('Magento\Catalog\Model\Product')->load($id); 

$productStockData = $this->stockRegistry->getStockItem($product->getId()); 

$productStockData->setData('is_in_stock', 0); 

$productStockData->setData('qty', 0); 

$productStockData->setData('manage_stock', 1); 

$productStockData->save(); 

echo "<pre>"; 

print_r($productStockData->getData()); 

exit; 

$product->save(); 

Этот код дает правильный результат с Qty в массиве печати, но не отражает в базе данных ..Есть ли способ обновить QTY программно с помощью фронтального контроллера?

когда он RY печатать данные о продукте, то он вернется qty 0 (ноль)

Result

ответ

2

вы можете использовать следующий код для установки данных запаса. Ссылка Click Here

$productStockData->setStockData(array(
     'use_config_manage_stock' => 0, //'Use config settings' checkbox 
     'manage_stock' => 1, //manage stock 
     'max_sale_qty' => 2, //Maximum Qty Allowed in Shopping Cart 
     'is_in_stock' => 1, //Stock Availability 
     'qty' => 1 //qty 
     ) 
    ); 
+0

Спасибо, это работает –