【问题标题】:Magento Import - FK Integrity Constraint ViolationMagento Import - 违反 FK 完整性约束
【发布时间】:2023-04-03 10:49:01
【问题描述】:

我正在以编程方式将产品从 XML 提要导入 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();
}

感谢收看。

【问题讨论】:

    标签: magento magento-1.7


    【解决方案1】:

    如错误所示

    UNQ_CATALOGINVENTORY_STOCK_ITEM_PRODUCT_ID_STOCK_ID

    数据库表 (cataloginventory_stock_item) 中有相同 product_id / stock_id 的重复条目

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

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

    或在保存前从表中删除与此新产品相关的行

    【讨论】:

      【解决方案2】:

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

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

      还是谢谢 Meabed。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-14
        • 2013-07-04
        • 1970-01-01
        • 2021-12-13
        • 2017-10-01
        • 2019-04-12
        相关资源
        最近更新 更多