2012-02-06 39 views
1

我試圖用更新正在從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' 

與該產品我的數據庫中存在531的ID,我想要做的就是更新它的價格。

有誰知道可能是什麼原因造成的?

非常感謝

+0

Mage試圖插入,如果產品已經存在,您需要讓它進行更新。 – deed02392 2012-02-06 12:26:14

+0

我收集到了。有沒有簡單的方法來更新?我只見過$ product-> setXX $ product-> save() – 2012-02-06 12:37:26

+0

從未使用法師,但它是開源的。讀取類以獲取更新方法,或修改set方法以執行插入或更新SQL查詢。 – deed02392 2012-02-06 12:39:10

回答

0

那麼它似乎不喜歡我了分層對產品價格的事實。

清除它們,重新索引,重新創建的分級定價,一切似乎都很好

1

試試這個更新

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

變化

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

你必須加載產品更新其屬性。