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_pricecatalog_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