Sei que há um problema semelhante em relação a um produto , mas agora tenho esse erro em uma categoria.
Não me lembro de ter feito algo diferente; de repente, começou a gerar esse erro assim que cheguei a uma página de categoria no frontend.
Às vezes, salvar novamente a categoria no administrador resolveu o problema, mas na maioria das vezes isso não ocorre. De onde vem esse erro? Como corrigi-lo? Alguém mais encontrou esse erro também?
Editar
Parece que a página da categoria solicita a URL para reescrever a tabela. Ele gera esta consulta:
SELECT `e`.*,
IF(at_is_active.value_id > 0, at_is_active.value,
at_is_active_default.value) AS
`is_active`,
`url_rewrite`.`request_path`
FROM `catalog_category_entity` AS `e`
INNER JOIN `catalog_category_entity_int` AS `at_is_active_default`
ON ( `at_is_active_default`.`entity_id` = `e`.`entity_id`)
AND ( `at_is_active_default`.`attribute_id` = '46' )
AND `at_is_active_default`.`store_id` = 0
LEFT JOIN `catalog_category_entity_int` AS `at_is_active`
ON ( `at_is_active`.`entity_id` = `e`.`entity_id` )
AND ( `at_is_active`.`attribute_id` = '46' )
AND ( `at_is_active`.`store_id` = 1 )
LEFT JOIN `url_rewrite`
ON ( url_rewrite.entity_id = e.entity_id )
AND ( url_rewrite.is_autogenerated = 1
AND url_rewrite.store_id = 1
AND url_rewrite.entity_type = 'category' )
WHERE ( IF(at_is_active.value_id > 0, at_is_active.value,
at_is_active_default.value)
=
'1' )
AND ( `e`.`entity_id` IN( '10', '170', '171', '172',
'173', '175', '176', '177',
'178', '179', '180', '189', '276' ) )
ORDER BY `e`.`position` ASC
Mas se a sua url_rewrite
tabela estiver corrompida (o que é mais provável no meu caso), ela acaba tendo IDs duplicados.
Sometimes re-saving the category in the admin resolved the issue
Isso funcionou para mim, obrigado !!Respostas:
php bin/magento indexer:reindex
fonte
php bin/magento indexer:reindex
fonte
A consulta SQL a seguir limpa as regravações de categoria duplicadas. Não use sem um backup.
Você pode usar
n98-magerun2 db:console
ou qualquer outro cliente mysql:fonte
Para nós, apenas executando isso, fez o truque:
Nosso erro (com o Magento 2.2.2) foi esse ao fazer uma pesquisa de front-end ou entrar na categoria:
fonte