Kesalahan kategori: Item (Magento \ Catalogue \ Model \ Category \ Interceptor) dengan ID yang sama "191" sudah ada

9

Saya tahu ada masalah serupa tentang suatu produk , tapi sekarang saya punya kesalahan ini dengan kategori.

Saya tidak dapat mengingat bahwa saya melakukan sesuatu yang berbeda, tiba-tiba saja mulai terjadi kesalahan ini begitu saya mendapatkan halaman kategori di frontend.

Kadang-kadang menyimpan kembali kategori di admin menyelesaikan masalah, tetapi sebagian besar kali tidak. Dari mana asal kesalahan ini? Bagaimana memperbaikinya? Apakah ada orang lain yang mengalami kesalahan ini juga?

Edit

Sepertinya halaman kategori meminta tabel penulisan ulang URL untuk URL. Ini menghasilkan permintaan ini:

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 

Tetapi jika url_rewrite-tabel Anda rusak (yang kemungkinan besar dalam kasus saya), itu berakhir dengan memiliki duplikat ID.

Giel Berkers
sumber
2
Sometimes re-saving the category in the admin resolved the issueIni berhasil untuk saya, terima kasih !!
nuwaus
3
Saya memiliki masalah yang sama, tetapi menyimpan kembali kategori tidak membantu.
Oliver Schmid
Seseorang menemukan perbaikan? Saya mengalami masalah yang sama, bagi saya itu aneh. Memiliki 10 toko dibuat di mana hanya 3 toko dan 1 adalah toko default, halaman katalog berfungsi tetapi di toko lain tidak. Saya telah menetapkan bahwa halaman beranda adalah halaman katalog
Gianni Di Falco

Jawaban:

11
  1. Hapus catatan dari tabel 'url_rewrite' di mana "entity_type" adalah "kategori".
  2. Lari php bin/magento indexer:reindex
Nilesh Gosai
sumber
Ini memiliki 3000 catatan, jadi saya harus memotong tabel untuk membuat ini bekerja :(
fudu
3
  1. Buka Panel Admin> Pemasaran> Penulisan Ulang URL.
  2. Saring berdasarkan "kategori / {entitas_id} (yang menyebabkan kesalahan yang sudah ada)" di targer_path. Jika Anda menemukan target_path yang sama untuk toko yang sama maka hapus yang
  3. Lari php bin/magento indexer:reindex
Pribhav
sumber
3

Kueri SQL berikut ini membersihkan penulisan ulang kategori duplikat. Jangan gunakan tanpa cadangan.

Anda dapat menggunakan n98-magerun2 db:consoleatau klien mysql lainnya:

 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
  )
Alex
sumber
0

Bagi kami yang baru saja menjalankan ini melakukan trik:

php bin/magento indexer:reindex

Kesalahan kami (dengan Magento 2.2.2) adalah ini ketika melakukan pencarian frontend atau memasukkan kategori:

Pengecualian # 0 (Pengecualian): Item (Magento \ Catalog \ Model \ Product \ Interceptor) dengan ID yang sama "XXXX" sudah ada.

Webninja
sumber
Tidak tahu mengapa komentar ini diturunkan, tetapi pengindeksan ulang sebenarnya memperbaiki kesalahan pada 2.3.4
puntable