mengapa duplikasi url produk magento

10

Saya menggunakan magento 1.7. saya menghadapi masalah aneh. magentomembuat url produk duplikat dengan nomor acak dengan kunci url yang salah, silakan screenshot saya terlampir

Saya juga mengosongkan rewrite_urlsurl tabel dan pengindeksan kembali tetapi url saya salah. tolong bantu saya untuk menyelesaikan masalah ini. jika Anda tidak dapat melihat gambar yang dimaksud maka silakan klik tautan duplikat url produk dan Produk di panel admin

URL produk rangkap,produk yang sebenarnya

Biarkan saya membuat Anda mengerti dengan contoh

Seperti saya punya satu produk bernama "example" dan kunci url adalah "example" Url akan menjadi

www.example.com/example

dan sekarang saya telah membuat produk baru "xyz dan kunci url adalah" xyz "dan seharusnya url

www.example.com/xyz

tapi magento menghasilkan url

www.example.com/example-123

sumber
Maksudmu mejanya core_url_rewrite?
Fabian Blechschmidt
ya saya berarti core_url_rewrite
Itu terjadi karena Anda memiliki / memiliki 2 produk dengan kunci url yang sama. Coba truncate core_url_rewritetable dan jalankan url rewrites indexer lagi.
Dmytro Zavalkin
tidak saya telah memeriksa saya memiliki kunci url yang unik dan saya sudah mencoba opsi ini "Coba truncate core_url_rewrite tabel dan jalankan url rewrites indexer lagi"

Jawaban:

6

Ini sepertinya bug dalam 1.7. Jika Anda memiliki beberapa produk sederhana dengan kunci url yang sama dengan produk yang dapat dikonfigurasi (mis. Semua nama adalah sama), maka magento selalu membuat url baru yang menulis ulang pada setiap proses indeks. Contoh:

Indeks pertama:

  • myproducturl (produk konfigurasi)
  • myproducturl-id (produk sederhana dengan id-nya ditambahkan, sejauh ini bagus)

Indeks kedua:

  • myproducturl (produk konfigurasi)
  • myproducturl-randomnumber (produk sederhana dengan nomor acak, BAD)
  • myproducturl-id -> myproducturl-randomnumber (menulis ulang ke url baru)

Dan pada setiap proses indeks baru langkah terakhir akan diulang, jadi selalu kunci url acak baru dihasilkan. Jika magento akan memeriksa, bahwa kunci url dengan id untuk produk itu sudah ada, ini seharusnya tidak menjadi masalah.

Setelah beberapa bulan, Anda akan memiliki tabel url_rewrite yang sangat besar, karena tidak ada yang akan dihapus dan setiap kali dijalankan, setidaknya 1 catatan untuk setiap produk dengan kunci url yang sama akan dibuat.

Vince Roy
sumber
Ini telah menyebabkan masalah besar bagi kami. Kami memiliki 1 produk dengan 20 variasi warna dan masing-masing 8 ukuran, sehingga kami memiliki BANYAK produk sederhana yang dapat diimpor dengan nama yang sama. Karena kunci url adalah nama jika seseorang tidak ditentukan, kami berakhir dengan banyak duplikat. Yang menjengkelkan adalah kita bahkan tidak memiliki simples diakses secara individual (yang membuat ejekan mereka mendapatkan indeks di tempat pertama). Kami menyiasati hal ini dengan mengimpor sku simples sebagai bagian dari namanya, karena itu tidak terlihat di ujung depan kami lolos begitu saja.
Peter O'Callaghan
Saya juga menghadapi masalah ini, dan tabel penulisan ulang URL saya berjumlah lebih dari 80.000 entri untuk hanya 4000 produk. Jika ada yang punya informasi lebih lanjut tentang ini, beri tahu saya.
andyjv
Ada Patch Perusahaan yang menyelesaikan masalah ini untuk CE.
brentwpeterson
@brentwpeterson Apakah Anda tahu ID untuk tambalan itu?
Paul
1
SUPEE_389_EE - magento.stackexchange.com/questions/32159/…
brentwpeterson
7

Kami telah terkena bug ini juga. Kami mengindeks ulang setiap hari dan mendapatkan 24.000 URL hanya dalam beberapa hari untuk sekitar 1000 produk.

Saya percaya saya mungkin telah menemukan perbaikan untuk itu. Saya telah memasang perbaikan ini langsung di situs produksi kami dan akan melihat hasilnya. Jika orang lain bisa mengujinya akan bermanfaat.

  1. Jika terjadi kesalahan, buat cadangan dari tabel dan data core_url_rewrite

  2. Dalam aplikasi / kode / inti / Penyihir / Katalog / Model / Url.php baris 809 berubah

    if ($product->getUrlKey() == '' && !empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        )
    

    untuk

    if (!empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        ) 
    
  3. Potong (kosong) tabel core_url_rewrite

  4. Di bawah Sistem -> Manajemen Indeks indeks ulang data URL URL Penulisan Ulang

Anda sekarang harus dapat mengindeks ulang lagi tanpa membuat ribuan penulisan ulang URL acak.

Terima kasih kepada Jahnni dan snowcountry untuk perbaikannya - baca lebih lanjut di sini: http://www.magentocommerce.com/boards/viewthread/416476/

Laporan bug di sini: http://www.magentocommerce.com/bug-tracking/issue?issue=15048

BlueC
sumber
Ini berhasil untuk saya. Diperbaharui
sulabh
Saya tidak berpikir ini berfungsi dengan benar pada 1.9.x. Lihat di sini untuk perbaikan yang berfungsi: gist.github.com/edannenberg/5310008
BlueC
0

Baru:

Ini gila. Sepertinya masalah caching !? Sesuatu dalam proses pengindeksan rusak, tetapi tidak tahu, maaf.

Tua:

Saya tidak tahu, mengapa ini terjadi, tetapi saya menuliskan pengalaman dan ide saya:

  1. Ketika Magento menemukan penulisan ulang yang sudah ada, itu menambahkan nomor penghitungan.

  2. Saat Anda mengubah penulisan ulang, magento membuat penulisan ulang untuk URL lama (jika kotak centang di bawah kolom input teks dicentang).

  3. Saya pikir penulisan ulang url kustom mungkin disimpan di tempat lain, jadi penulisan ulang kustom diterapkan terlebih dahulu dan kemudian dicoba untuk menambahkan penulisan ulang produk dan jika tidak memungkinkan, penghitung ditambahkan?

Fabian Blechschmidt
sumber
tolong lihat pertanyaan saya, saya telah memperbaruinya lagi posting Anda tidak berguna bagi saya sekarang
memperbarui jawabannya, tetapi tidak membantu :(
Fabian Blechschmidt