Perkaya Katalog Magento Tanpa Merusak Indexer-nya

Banyak pengguna Magento menghadapi masalah yang sama. Anda memiliki ribuan produk dengan atribut yang hilang, deskripsi yang minim, atau tanpa terjemahan.

Menemukan sumber data itu mudah. Bagian yang sulit adalah memasukkan data tersebut ke dalam katalog Anda tanpa membuat toko Anda tumbang.

Kesalahan umum adalah menggunakan loop sederhana untuk menyimpan produk satu per satu.

Jika Anda menggunakan metode save pada product repository di dalam sebuah loop, Anda memicu siklus hidup (lifecycle) penuh untuk setiap item. Anda menjalankan validasi, observer, dan pemicu reindexing ribuan kali. Hal ini membuat skrip berjalan selama berjam-jam dan memperlambat panel admin Anda secara drastis.

Jalur penyimpanan (save path) dirancang untuk manusia yang mengedit satu produk. Ini adalah alat yang salah untuk pembaruan massal (bulk updates).

Ikuti langkah-langkah berikut untuk memperbarui katalog Anda dengan aman:

  • Gunakan pembaruan atribut massal. Alih-alih menyimpan seluruh model produk, gunakan Magento\Catalog\Model\Product\Action. Gunakan metode updateAttributes untuk menulis langsung ke tabel database. Lakukan ini dalam batch berisi 1.000 hingga 2.000 ID sekaligus.

  • Ubah pengaturan indexer Anda. Atur indexer Anda ke Update by Schedule sebelum memulai. Jika Anda menggunakan Update on Save, setiap penulisan akan memicu reindex sinkron. Dengan mode jadwal (on a schedule), penulisan akan masuk ke changelog dan cron job yang akan menangani pekerjaannya.

  • Kelola terjemahan dengan benar. Terjemahan adalah nilai atribut untuk store view tertentu. Masukkan store ID yang benar ke metode updateAttributes. Jangan menimpa nilai default global Anda saat menambahkan bahasa lokal.

  • Tangani konten AI dengan hati-hati. LLM menulis teks yang bagus tetapi sering kali berhalusinasi mengenai fakta. Mereka mungkin mengatakan sebuah kemeja berbahan katun padahal sebenarnya poliester. • Tulis konten AI ke dalam field staging atau scope yang dinonaktifkan terlebih dahulu. • Tinjau sampel kecil sebelum Anda meluncurkannya (go live). • Pastikan spesifikasi teknis seperti dimensi dan bahan bersumber dari data yang terverifikasi.

Ringkasan untuk pengayaan massal:

  1. Atur indexer ke mode terjadwal (scheduled mode).
  2. Gunakan field staging untuk data baru.
  3. Terapkan pembaruan dalam batch berisi 1.000 hingga 2.000 ID.
  4. Hindari jalur penyimpanan produk secara penuh.
  5. Reindex perubahan tersebut.
  6. Uji sampel halaman produk Anda.

Sumber data adalah bagian yang mudah. Mengelola katalog yang sedang berjalan (live) memerlukan pendekatan yang berbeda.

Sumber: https://dev.to/iamrobindhiman/enriching-a-large-magento-catalog-without-melting-the-indexer-3mk9