change stock availability programmatically
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}";
}