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?