Errore categoria: esiste già un oggetto (Magento \ Catalog \ Model \ Category \ Interceptor) con lo stesso ID "191"


9

So che esiste un problema simile relativo a un prodotto , ma ora ho questo errore con una categoria.

Non ricordo di aver fatto qualcosa di diverso, all'improvviso ho iniziato a lanciare questo errore non appena sono arrivato su una pagina di categoria sul frontend.

A volte il salvataggio della categoria nell'amministratore ha risolto il problema, ma il più delle volte non lo è. Da dove viene questo errore? Come sistemarlo? Qualcun altro ha riscontrato anche questo errore?

modificare

Sembra che la pagina della categoria richieda la tabella di riscrittura degli URL per gli URL. Genera questa query:

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 

Ma se il tuo url_rewrite-table è corrotto (il che è molto probabilmente nel mio caso), finisce per avere ID duplicati.


2
Sometimes re-saving the category in the admin resolved the issueQuesto ha funzionato per me, grazie !!
Nuwaus,

3
Ho lo stesso problema, ma il salvataggio della categoria non aiuta.
Oliver Schmid,

Qualcuno ha trovato una soluzione? Sto avendo lo stesso problema, per me è strano. Sono stati creati 10 negozi in cui solo 3 negozi e 1 è il negozio predefinito, la pagina del catalogo funziona, ma negli altri negozi no. Ho impostato che la home page era una pagina di catalogo
Gianni Di Falco,

Risposte:


11
  1. Elimina i record dalla tabella 'url_rewrite' dove "entity_type" è "categoria".
  2. correre php bin/magento indexer:reindex

Ha un record di 3000, quindi devo troncare la tabella per farlo funzionare :(
fudu

3
  1. Vai a Pannello di amministrazione> Marketing> Riscrittura URL.
  2. Filtra per "categoria / {entity_id} (che causa l'errore già esistente)" nel targer_path. Se trovi lo stesso target_path per lo stesso negozio, elimina quello.
  3. Correre php bin/magento indexer:reindex

3

La seguente query SQL pulisce le riscritture di categorie duplicate. Non utilizzare senza un backup.

Puoi usare n98-magerun2 db:consoleo qualsiasi altro client mysql:

 delete
  from url_rewrite
  where url_rewrite_id in (
    select url_rewrite_id
    FROM (select url_rewrite_id
      from url_rewrite
      where entity_type = 'category'
      group by target_path, store_id
      having count(*) > 1) t
  )

0

Per noi solo correre questo ha fatto il trucco:

php bin/magento indexer:reindex

Il nostro errore (con Magento 2.2.2) è stato questo quando si eseguono ricerche frontend o si entra nella categoria:

Eccezione # 0 (Eccezione): esiste già un oggetto (Magento \ Catalog \ Model \ Product \ Interceptor) con lo stesso ID "XXXX".


Non so perché questo commento è stato ridimensionato, ma la reindicizzazione in realtà ha corretto l'errore 2.3.4
punibile il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.