我将尝试导入具有等级价格和团体价格的产品。第一次效果很好,但如果我尝试更新它,我会收到一个错误:
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()
有比“双重保存()方法”或直接从数据库中删除更好的解决方案吗?