Saya menghadapi masalah bahwa Katalog Magento mengupdate setiap hari tidak berfungsi. Ini berarti bahwa tidak ada perubahan harga produk ketika tanggal kadaluwarsa aturan katalog datang, jadi saya harus menekan tombol aturan berlaku di Admin. Cron dikonfigurasi dan berfungsi. Tampaknya metode catalogrule / observer :: dailyCatalogUpdate harus memeriksa dan menerapkan aturan secara otomatis setiap hari, tetapi ternyata tidak (juga saya sudah mencoba meluncurkannya secara manual). Berikut adalah kode inti Magento:
<!--file: app/code/core/Mage/CatalogRule/etc/config.xml-->
<crontab>
<jobs>
<catalogrule_apply_all>
<schedule>
<cron_expr>*/1 * * * *</cron_expr>
</schedule>
<run>
<model>catalogrule/observer::dailyCatalogUpdate</model>
</run>
</catalogrule_apply_all>
</jobs>
...
</crontab>
Pengamat:
/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();
return $this;
}
Saya berhasil memodifikasi metode pengamat seperti di bawah ini:
/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
Mage::getModel('catalogrule/rule')->getResourceCollection()
->walk(array(
Mage::getResourceSingleton('catalogrule/rule'),
'updateRuleProductData'
));
Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();
return $this;
}
Dengan cara ini, peraturan diperiksa dan diterapkan setiap hari dan harga produk diubah jika aturan berakhir. Saya tidak percaya itu adalah bug Magento. Tolong, beri tahu masalah apa yang aturannya tidak diperiksa dan diterapkan secara otomatis?
Jawaban:
Baru-baru ini saya memiliki masalah yang sama ketika saya menguji aturan harga baru untuk proyek kami. Dan alasan sakit kepala saya adalah bahwa saya tidak memperhatikan bahwa setiap kali Anda membuat aturan baru atau mengedit beberapa aturan yang ada - Anda harus menekan tombol " Terapkan Aturan " untuk membuat Magento tahu tentang perubahan aturan Anda.
sumber
Memastikan untuk menekan "Terapkan Aturan" tidak selalu cukup. Saya baru-baru ini menemukan bahwa jika cron tidak diatur dengan benar, di beberapa titik di masa depan, aturan tidak akan diterapkan.
Saya tidak dapat benar-benar memakukan ketika aturan berhenti bekerja. Dalam kasus saya, saya memiliki beberapa aturan yang diterapkan berdasarkan kelompok pelanggan (grosir).
sumber
Periksa apakah pekerjaan dijadwalkan
Anda dapat melakukan ini dengan memeriksa database atau menginstal ekstensi ini: Aoe_Scheduler
Uji apakah pekerjaan itu berhasil
Buat skrip php
run_my_rules.php
dan letakkan di sana hanya konten untuk fungsi:dailyCatalogUpdate
lalu jalankan itu dari konsol. Lihat apa yang terjadi.sumber