使用脚本导入时不会更新产品

时间:2012-12-21 09:30:22

标签: import magento-1.7

我正在使用脚本导入产品。当没有产品但我们尝试更新产品或导入更多产品时,它无法正常工作。基本上它不会保存产品。

在下面的代码$ row_option ['iStockLevel']中检查产品数量。

脚本代码是: -

        $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();
                }

  }

请帮帮我。

1 个答案:

答案 0 :(得分:1)

因为在您发布的位中,您只是尝试修改产品的库存。因此,您无需保存产品,只需保存该产品的库存。

试试这个:

$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(); 
    }
}
相关问题