问题描述:
Exception #0 (Exception): Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "****" already exists.
这是产品页面的报错,分类页面也有类似的问题,依据报错的内容,猜测问题部分,数据库部分数据重复,URL _REWRITE重复及其它可能问题。
此问题报错位置:
vendor/magento/framework/Data/Collection.php
代码内容为
public function addItem(\Magento\Framework\DataObject $item) { $itemId = $this->_getItemId($item); if ($itemId !== null) { if (isset($this->_items[$itemId])) { throw new \Exception( 'Item (' . get_class($item) . ') with the same ID "' . $item->getId() . '" already exists.' ); } $this->_items[$itemId] = $item; } else { $this->_addItem($item); } return $this; }
尝试进行的解决方法:
先查看产品表,分类产品数据表中是否有此ID的数据重复,整库搜索此 ID,图示ID为 7443则查找7443,
会自动列出有此数据的表,分析数据,删除重复的,清空VAR再试。
重点照顾的表头 catalog_
,仔细查看
catalog_product_entity cataloginventory_stock_item
是否有数据重复,有则删除,没有不用理会。如果是多站点那么这些表的website_id是否与后台的对应,不对应则有问题,这里可能还有单个站点的情况。理论上可以清空
cataloginventory_stock_item
不过在清空先记得先备份,这里可以通过
indexer:reindex
再次生成
问题依旧,继续...
作者设置此篇文章部分内容需要付费才可阅读!