Magento目录价格规则在晚上消失

Meh*_*hak 11 rule magento

我在magento平台上开发了在线商店.除了出售目录价格规则外,一切正常.我创建了一个简单的规则,对所有产品适用15%的折扣.当我保存并应用规则时,它整天工作正常.但是在晚上12点之后,销售情况就不再明显了.我尝试通过单击应用规则从管理面板应用规则,但在晚上它甚至不允许我手动应用规则.我可以在第二天早上申请这条规则并且工作正常,但又一直到12点.

我尝试了以下内容.我已经删除了在产品上单独定义的特价,因此销售仅按价格规则执行.我已经设置了cron工作,但它也没有在晚上工作.我已经检查了规则的日期和时间.

我发现可能是因为时间设置.我使用的是GMT + 5.有什么办法可以保持规则日夜工作.

谢谢

Ale*_*yev 23

是的,这是Magento中的一个错误(或者超出我的理解的一些逻辑).当Magento在前端显示产品时,它会检查此日期是否有目录规则.此检查所用的日期是您当地的,所以在您的情况下GMT + 5.但是,在应用目录规则时,它使用GMT日期.这意味着您无法在凌晨5点之前应用规则.

问题在于Mage_CatalogRule_Model_Action_Index_Refresh::execute()方法.您必须在扩展中或通过文件的本地版本重写此函数/类.

文件位置: app/code/core/Mage/CatalogRule/Model/Action/Index/Refresh.php

你必须更换第121行:

$timestamp = $coreDate->gmtTimestamp('Today');
Run Code Online (Sandbox Code Playgroud)

用这一行:

$timestamp = Mage::app()->getLocale()->date(null, null, null, true)->get(Zend_Date::TIMESTAMP);
Run Code Online (Sandbox Code Playgroud)

之后,您应该能够应用规则.