以编程方式更新价格

时间:2012-02-06 12:23:34

标签: magento

我正在尝试使用以下方法更新从XML文件提供的多个产品:

 $productid = Mage::getModel('catalog/product')->getIdBySku($url->product);
 echo 'Loaded Product: ' . $url->product;

 // Initiate product model
 $product = Mage::getModel('catalog/product');
 $product->setPrice($url->price);

 try 
 {
    $product->save();
        echo "Save / Updated"."\r\n";
  }
  catch (Exception $ex) {
        echo "<pre>".$ex."</pre>";
  }

我遇到SQL错误的问题:

exception 'Mage_Eav_Model_Entity_Attribute_Exception' with message 'SQLSTATE[23000]:
Integrity constraint violation: 1062 Duplicate entry '531-0-82-1.0000-0'

我的数据库中存在ID为531的产品,我想要做的就是更新它的价格。

导致这种情况的原因是什么?

2 个答案:

答案 0 :(得分:1)

尝试此更新

$product = Mage::getModel('catalog/product');

更改为

$product = Mage::getModel('catalog/product')->load($productid);

您必须加载产品才能更新其属性。

答案 1 :(得分:0)

好吧,似乎不喜欢我对该产品的价格分层的事实。

清除它们,重新编制索引,重新创建分层定价,一切似乎都很好