magento,重新编制目录URL重写索引时出错

时间:2012-01-20 11:34:51

标签: magento url-rewriting

所有这些都是从1.4.1开始的。

我收到一条非常具体的错误消息:

  

下一个异常'Zend_Db_Statement_Exception',消息'SQLSTATE [23000]:完整性约束违规:1062 / home / in-due / domains / sb2中的密钥'UNQ_CORE_URL_REWRITE_ID_PATH_IS_SYSTEM_STORE_ID'的重复条目'product / 19-1-2'。 in-due.de/public_html/hochzeitsshop/lib/Zend/Db/Statement/Pdo.php:234

问题是,我不知道如何找到条目,那就是制造麻烦。既不在后端(目录| URL重写管理)也不在db本身(表core_url_rewrite)是一个条目

  

产品/ 19-1-2

感谢任何帮助,

PAT ERLER

3 个答案:

答案 0 :(得分:2)

@perler,这是一个用于检测重复SKU的MySQL查询。请记住,如果您为表格添加前缀,请相应地更改catalog_product_entity

SELECT
    DISTINCT(`sku`) as `sku`,
    COUNT(`sku`) as `skuCount`,
    entity_id
FROM
    catalog_product_entity
GROUP BY
    `sku`
HAVING
    `skuCount` > 1;

答案 1 :(得分:1)

重复条目是由3个字段组成的密钥,id_path,is_system和store_id,理论上你应该能够使用URL Rewrite Management,搜索product / 19的id_path,这是你的'麻烦'字段。删除该值可能会解决问题(但我建议先进行备份,然后先在开发环境中尝试)。

如果您仍在开发中并且未使用任何自定义重写,则只需清空core_url_rewrite表并重新索引以重新生成所有字段。如果它是一个现场网站,这会有点麻烦,如果你重新命名产品,那就意味着失去一些SEO果汁,因为你会失去重写。

答案 2 :(得分:0)

好的,问题是重复的SKU。你不应该输入一个,但发生了什么(在magento 1.4.0.1中),客户进入了一个很长的SKU,在保存产品时缩短了。缩短的部分与另一个SKU完全相同。

所以,如果你自己有这个问题,请检查数据库中是否有重复的SKU(有人可以发布SQL查询来执行此操作吗?)