1

ティア価格とグループ価格の商品を輸入してみます。初めてはうまく機能しますが、更新しようとするとエラーが発生します。

Versuche zu speichern:SQLSTATE[23000]: Integrity constraint violation: 1062 Doppelter Eintrag '4463-0-0-0' für Schlüssel 2

(主キー 4463-0-0-0 の重複エントリ)。

ドイツのブログで「解決策」を見つけました。catalog_product_entity_group_priceテーブルとcatalog_product_entity_tier_priceentity_id ( = ProductId)からすべての行を削除することをお勧めします。

  $dbc = Mage::getSingleton('core/resource')->getConnection('core_write');
              $resource = Mage::getSingleton('core/resource');
              $table = $resource->getTableName('catalog/product').'_group_price';
              $dbc->query("DELETE FROM $table WHERE entity_id = ".$product->getId()."");  

これはうまくいきます!しかし、これを行うためのより良い解決策はありますか? クラスメソッド?行を挿入しようとする前に、magento インポート プロセスがこのエントリを削除しないのはなぜですか?

別の解決策は、次のコードでした。しかし、それには product->save() アクションが必要で、これはインポートのパフォーマンスには良くありませんでした:

$product->setTierPrice( array()  );
$product->save()
$product->setTierPrice($pid["my_tier_price_array"]);    
$product->save()   

「ダブルセーブ()メソッド」またはデータベースからの直接削除よりも良い解決策はありますか?

4

0 に答える 0