Magento 1.7 – Change Stock Availability Programmatically

ce-1.7.0.2magento-1.7products-managementstock

How I can change stock availability ie in stock and out of stock of product programmatically using product ID?

Best Answer

The following code should work for you

$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}";
}