ティア価格とグループ価格の商品を輸入してみます。初めてはうまく機能しますが、更新しようとするとエラーが発生します。
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_price
entity_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()
「ダブルセーブ()メソッド」またはデータベースからの直接削除よりも良い解決策はありますか?