プログラム的に価格を更新する

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 "
".$ex."
"; }

私は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を持つ製品は、私のdbに存在します。私がしたいのは、その価格を更新することだけです。

誰もがこれを引き起こす可能性があることを知っていますか?

どうもありがとう

1
Mageが挿入しようとしている場合は、製品がすでに存在する場合は更新を行う必要があります。
追加された 著者 deed02392,
決してMageを使用しませんでしたが、オープンソースです。更新メソッドのクラスを読み込むか、setメソッドを変更してSQLクエリの挿入または更新を実行します。
追加された 著者 deed02392,
私はそれを集めました。 更新する簡単な方法はありますか?私はたった今$ product-> setXX $ product-> save()を見たことがあります。
追加された 著者 sipher_z,

2 答え

これを更新してみてください

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

への変更

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

その属性を更新するには、製品をロードする必要があります。

1
追加された

それは、私がその製品の価格を段階的に決めたという事実を好まないように思えました。

それらをクリアし、再インデックス化し、段階的価格設定を再作成し、すべて良好と思われる

0
追加された