ฉันประสบกับปัญหาว่าแคตตาล็อกกฎของวีโอไอพีอัพเดททุกวันไม่ทำงาน ซึ่งหมายความว่าไม่มีการเปลี่ยนแปลงราคาผลิตภัณฑ์เมื่อถึงวันหมดอายุของกฎของแค็ตตาล็อกดังนั้นฉันต้องกดปุ่มใช้กฎกดในผู้ดูแลระบบ Cron ถูกกำหนดค่าและทำงาน ดูเหมือนว่า catalogrule / ผู้สังเกตการณ์ :: dailyCatalogUpdate วิธีควรตรวจสอบและใช้กฎโดยอัตโนมัติทุกวัน แต่มันไม่ (ฉันพยายามเปิดมันด้วยตนเอง) นี่คือรหัสหลักของวีโอไอพี:
<!--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>
สังเกตการณ์:
/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();
return $this;
}
ฉันประสบความสำเร็จในการปรับเปลี่ยนวิธีสังเกตการณ์ดังนี้
/*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;
}
วิธีนี้มีการตรวจสอบและใช้กฎทุกวันและราคาผลิตภัณฑ์จะเปลี่ยนแปลงหากกฎหมดอายุ ฉันไม่เชื่อว่าเป็นข้อผิดพลาดของ Magento กรุณาแนะนำว่าปัญหาที่กฎไม่ได้ถูกตรวจสอบและนำไปใช้โดยอัตโนมัติคืออะไร?