Magento Import - FK完整性约束违规

时间:2012-11-25 04:03:03

标签: magento magento-1.7

我正在逐步从XML Feed中将产品导入Magento 1.7.0.2。

脚本在一周的最佳时段运行良好,但现在我收到产品保存时出现的错误。

这个错误有多严重,可能导致什么?

我尝试重新索引所有内容并截断一堆表,错误似乎仍然存在。

错误:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '51-1' for key 'UNQ_CATALOGINVENTORY_STOCK_ITEM_PRODUCT_ID_STOCK_ID'

导入php(示例):

$sProduct = $this->_productModel;       
$sProduct->setTypeId($this->_productTypeSimple)
  ->setWebsiteIds(array(1))
  ->setStatus($this->_productStatusDisabled)
  ->setVisibility($this->_productVisibilityNotVisible)
  ->setTaxClassId(2) //Taxable Good
  ->setAttributeSetId(XML_FEED_PRODUCT_ATTRIBUTE_SET)
  ->setSku($arrayProductData['ProductSKU']) 
  ->setName($arrayProductData['ProductName'])
  ->setShortDescription($arrayProductData['ProductShortDescription'])
  ->setDescription($arrayProductData['ProductLongDescription'])
  ->setPrice(sprintf("%0.2f", $arrayProductData['ProductPrice']))   
  ->setRRP(sprintf("%0.2f", $arrayProductData['ProductPrice'])) 
  ->setWeight(0)    
  ->setCategoryIds($arrayProductData['ProductCategories'])
  ->setUrlKey(str_replace(array(" ","'","&"),"-",$arrayProductData['ProductName']) . "-" . $arrayProductData['ProductSKU']);

$sProduct->setStockData(
  array( 
    'use_config_manage_stock' => 1,
    'is_in_stock' =>1, 
    'qty' => $arrayProductData['ProductStockQty'] 
  )
);

$sProduct->setMetaTitle($arrayProductData['ProductName'])
->setMetaDescription(str_replace("<<THE_PRODUCT>>",$arrayProductData['ProductName'], DEFAULT_META_DESC));           

if(isset($arrayProductData['ProductSize'])) {
  $sProduct->setData("sizes", $arrayProductData['ProductSize']);
}

if(isset($arrayProductData['ProductColour'])) {
  $sProduct->setData("color", $arrayProductData['ProductColour']);
}
try {
  $sProduct->save();            
}
catch (Mage_Core_Exception $e) {
  echo $e->getMessage();
}

感谢您的光临。

2 个答案:

答案 0 :(得分:0)

错误显示

UNQ_CATALOGINVENTORY_STOCK_ITEM_PRODUCT_ID_STOCK_ID

DB table(cataloginventory_stock_item)中有相同product_id / stock_id的重复条目

这可能由于不同的原因而发生

您可以通过在保存之前手动设置产品的ID来解决此问题,这样就不会产生冲突,获取最后一个产品ID并将其递增。

或在保存

之前从表中删除与此新产品相关的行

答案 1 :(得分:0)

在脚本的下方,我根据特定标准创建了可配置产品。

由于我尚未发现此可配置产品的SKU的原因似乎并不独特,导致上述问题。

非常感谢Meabed。