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

2 cron magento

我们在 1.9.0 中的目录价格规则有问题

我们在一个网站上有大约 1000 种产品。

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

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

这些特价只显示到午夜。

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

cron 工作正常。

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

小智 5

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

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

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

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

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

$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)

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