Reputation: 504
I am importing products using script. It works perfectly when there are no products but when we try to update products or import more products it does not work. Basically it does not save product.
In below code $row_option['iStockLevel'] check quantity of product.
Code of script is:-
$product=Mage::getModel('catalog/product');
$proId=Mage::getModel('catalog/product')->getIdBySku($sku);
if($proId){
if($row_option['iStockLevel']) {
$product->load($proId);
$productStockData= $product->getStockData();
if(!$row_option['iStockLevel'])
{
$productStockData['qty']=0;
}
else{
$productStockData['qty']=$row_option['iStockLevel'];
}
$productStockData['is_in_stock']=1;
$productStockData['manage_stock'] = 1;
$productStockData['use_config_manage_stock'] = 0;
$product->setStockData($productStockData);
try {
$product->save();
}
catch (Exception $ex) {
echo $ex->getMessage();
}
}
Please help me.
Upvotes: 0
Views: 67
Reputation: 5410
Since in the bits you have posted you are only trying to modify the stock of the product. Therefor you do not need to save the product, only the stock for that product.
Try this:
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
if ($product) {
if ($row_option['iStockLevel']) {
$stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product->getId());
if (!$row_option['iStockLevel']) {
$stock->setData('is_in_stock', 0)
$stock->setData('qty', 0);
} else {
$stock->setData('is_in_stock', 1)
$stock->setData('qty', (int)$row_option['iStockLevel']);
}
// Save
$stock->save();
}
}
Upvotes: 1