目录价格规则在 magento 网站午夜后消失

catalog price rules disappear after mid night in magento site

1.9.0 中的目录价格规则存在问题

我们在一个站点中有大约 1000 种产品。

我们应用目录价格规则为 500 种产品提供折扣。

我没有给出目录价格规则的任何日期限制

这些特价只显示到午夜。

第二天,午夜过后网站上不再显示特价。

cron 工作正常。

请帮我找到一些解决办法。

来源:Magento catalog price rule disappears at night

天才学分 "Alexei Yerofeyev"。大多数情况下我永远不会忘记这个人。

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

问题出在 Mage_CatalogRule_Model_Action_Index_Refresh::execute() 函数中。您必须在您的扩展中或通过文件的本地版本重写此 function/class。

您必须在此处替换第 121 行:app/code/core/Mage/CatalogRule/Model/Action/Index/Refresh.php

$timestamp = $coreDate->gmtTimestamp('Today');

这一行:

$timestamp = Mage::app()->getLocale()->date(null, null, null, true)->get(Zend_Date::TIMESTAMP);

之后您应该可以应用这些规则了。