Ini berfungsi baik di Magento CE 1.6 dan yang lebih baru:
$event =Mage::getSingleton('index/indexer')->logEvent(
$product,
$product->getResource()->getType(),Mage_Index_Model_Event::TYPE_SAVE,false);Mage::getSingleton('index/indexer')->getProcessByCode('catalog_url')// Adjust the indexer process code as needed->setMode(Mage_Index_Model_Process::MODE_REAL_TIME)->processEvent($event);
Kode pengindeks yang tersedia dapat dilihat menggunakan kueri:
Dalam Magento EE 1.13 itu berbeda, di sana pengindeks secara otomatis mengambil entitas yang diubah pada setiap cron run (setiap menit).
MEMPERBARUI
Jawaban di atas adalah 100% benar pula saya pikir informasi di bawah ini dapat menambahkan sesuatu yang lebih.
Jika Anda perlu mengubah hanya beberapa nilai atribut dalam suatu produk dan secara otomatis memperbarui tabel indeks relatif Anda dapat menggunakan fungsi ini:
Mage::getSingleton('catalog/product_action')->updateAttributes();
jika Anda ingin mengelola pengindeksan ulang dengan Anda sendiri, gunakan model resourse: Mage::getResourceSingleton('catalog/product_action')->updateAttributes();
Sebagai contoh, saya menggunakan fungsi berikut untuk memperbarui secara cepat hanya atribut tertentu dalam suatu produk.
Saya akan menyalin komentar pengguna5973 di sini, karena itu akan dihapus. @Vinai, apakah Anda mengatakan bahwa EE 1.13+ tidak memiliki masalah kinerja ini saat mengindeks ulang data terkait produk? Di mana kami dapat mengkonfirmasi bahwa pengindeks EE secara otomatis mengambil entitas yang berubah dan hanya memproses entitas yang berubah?
Fabian Blechschmidt
Dalam EE 1.13 pengindeks menggunakan pemicu MySQL untuk mengambil perubahan pada tingkat DB dan mencatat ID entitas yang diperbarui dalam tabel changelog. Changelogs ini kemudian diproses melalui cronjobs.
Vinai
2
Saya kira Anda berarti Anda ingin mengindeks ulang produk setelah Anda mengeditnya di admin ui. Metode termudah adalah dengan hanya mengatur mode pengindeks ke "perbarui menghemat". Anda harus melakukan ini untuk semua pengindeks terkait dengan produk yang Anda gunakan, mungkin termasuk: Atribut Produk, Harga Produk, Data Flat Produk, Kategori Produk, Status Stok.
Pastikan Anda tidak melakukan ini di skrip frontend atau memutakhirkan, dan toko yang saat ini dimuat adalah "admin". Kalau tidak, $ product-> save () tidak akan berfungsi sama sekali. Periksa dulu, bahwa menyimpan produk berpengaruh.
Selain jawaban @ feversocial juga pastikan Anda memiliki semua yang perlu dimuat pada produk sebelum menelepon $ product-> save (). Kalau tidak, penghematan sebenarnya dapat menghilangkan hal-hal dari produk yang saya alami dengan cara yang sulit.
Seperti menyimpan produk tanpa SKU sama sekali yang kemudian memecah semua url penulisan ulang dan membuat seluruh situs mengalihkan ke halaman produk ini: S: P
Poin bagus, itu sebabnya saya pikir lebih baik menggunakan catolog/product_actionpendekatan sehingga Anda tidak mengambil risiko masalah di atas
Fra
1
Saya informasi ini dapat bermanfaat untuk memahami keseluruhan skenario sedikit lebih baik.
Jika Anda perlu mengubah hanya nilai atribut dan secara otomatis memperbarui tabel indeks relatif Anda dapat menggunakan fungsi ini:
Mage::getSingleton('catalog/product_action')->updateAttributes();
jika Anda ingin mengelola pengindeksan ulang dengan Anda sendiri, gunakan model resourse: Mage::getResourceSingleton('catalog/product_action')->updateAttributes();
Sebagai contoh, saya menggunakan fungsi berikut untuk memperbarui secara cepat hanya atribut tertentu dalam suatu produk.
Saya kira Anda berarti Anda ingin mengindeks ulang produk setelah Anda mengeditnya di admin ui. Metode termudah adalah dengan hanya mengatur mode pengindeks ke "perbarui menghemat". Anda harus melakukan ini untuk semua pengindeks terkait dengan produk yang Anda gunakan, mungkin termasuk: Atribut Produk, Harga Produk, Data Flat Produk, Kategori Produk, Status Stok.
Ini mungkin akan memperlambat penghematan produk.
Atau mungkin tautan ini akan membantu. Silakan lihat komentar dan juga menjelaskan cara memperbarui stok. http://www.magentocommerce.com/answers/discussion/239/reindex-one-product-at-a-time/p1
sumber
Pastikan Anda tidak melakukan ini di skrip frontend atau memutakhirkan, dan toko yang saat ini dimuat adalah "admin". Kalau tidak, $ product-> save () tidak akan berfungsi sama sekali. Periksa dulu, bahwa menyimpan produk berpengaruh.
sumber
Selain jawaban @ feversocial juga pastikan Anda memiliki semua yang perlu dimuat pada produk sebelum menelepon $ product-> save (). Kalau tidak, penghematan sebenarnya dapat menghilangkan hal-hal dari produk yang saya alami dengan cara yang sulit.
Seperti menyimpan produk tanpa SKU sama sekali yang kemudian memecah semua url penulisan ulang dan membuat seluruh situs mengalihkan ke halaman produk ini: S: P
sumber
catolog/product_action
pendekatan sehingga Anda tidak mengambil risiko masalah di atasSaya informasi ini dapat bermanfaat untuk memahami keseluruhan skenario sedikit lebih baik.
Jika Anda perlu mengubah hanya nilai atribut dan secara otomatis memperbarui tabel indeks relatif Anda dapat menggunakan fungsi ini:
Mage::getSingleton('catalog/product_action')->updateAttributes();
jika Anda ingin mengelola pengindeksan ulang dengan Anda sendiri, gunakan model resourse:
Mage::getResourceSingleton('catalog/product_action')->updateAttributes();
Sebagai contoh, saya menggunakan fungsi berikut untuk memperbarui secara cepat hanya atribut tertentu dalam suatu produk.
sumber