программно изменять доступность запасов


Как я могу изменить доступность на складе, т.е. in stock и out of stock продукта программно, используя идентификатор продукта?

Author: Sandesh, 2013-07-26

2 answers

Следующий код должен работать для вас

$stock_item = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product_id);
if (!$stock_item->getId()) {
    $stock_item->setData('product_id', $product_id);
    $stock_item->setData('stock_id', 1); 
}

$stock_item->setData('is_in_stock', 1); // is 0 or 1
$stock_item->setData('manage_stock', 1); // should be 1 to make something out of stock

try {
    $stock_item->save();
} catch (Exception $e) {
    echo "{$e}";
}
 10
Author: Sander Mangel, 2013-07-26 13:33:36

Кто-то пометил это как дубликат, это не так. Те, кто хочет сделать это через базу данных, могут обратиться к оригинальному ответу Шоаиба Мунира - Magento 2 - Массовое обновление запасов программно - С помощью запроса базы данных

Помимо двух обновлений в cataloginventory_stock_item и cataloginventory_stock_status, также обновите inventory_source_item. После этого ваш cron должен автоматически переиндексироваться

 0
Author: Cotton, 2020-02-03 06:33:37