【发布时间】:2015-05-15 05:11:53
【问题描述】:
我们在 1.9.0 中遇到了目录价格规则问题
我们在一个网站上上传了1000 产品。
在目录价格规则为500 产品提供折扣后,目录价格规则没有日期限制。这些特价只显示到午夜。
第二天,午夜过后,网站上不会显示特价。
cron 工作正常。
请帮我找到一些解决方案。
【问题讨论】:
我们在 1.9.0 中遇到了目录价格规则问题
我们在一个网站上上传了1000 产品。
在目录价格规则为500 产品提供折扣后,目录价格规则没有日期限制。这些特价只显示到午夜。
第二天,午夜过后,网站上不会显示特价。
cron 工作正常。
请帮我找到一些解决方案。
【问题讨论】:
这个问题只为我解决了这个:
问题出在Mage_CatalogRule_Model_Action_Index_Refresh::execute() 函数中。您必须在您的扩展程序中或通过文件的本地版本重写此函数/类。
您必须在此处替换第 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);
查看原帖: https://magento.stackexchange.com/questions/67970/catalog-price-rules-disappear-after-mid-night
【讨论】:
第 1 步:
请确保 Cron 工作正常。为此,您可以安装 AOE Scheduler 扩展。
第 2 步:
您需要通过调试 magento 表来调试问题。以下表格用于目录规则:
catalogrule
catalogrule_affected_product
catalogrule_customer_group
catalogrule_group_website
catalogrule_product
catalogrule_product_price
catalogrule_website
您可以删除所有目录规则并为一种产品创建一个规则并检查下表:
catalogrule_product - 在此表中,Magento 将管理所有客户组的所有产品折扣百分比。 catalogrule_product_price - 在此表中,Magento 将管理每个产品的折扣最终价格。在这里,magento 将为每条记录插入三天的记录。您可以通过“rule_date”字段进行检查。
如果它工作得很好。然后再次删除所有目录规则后,请从 MySQL 中截断以下表。
catalogrule_product
catalogrule_product_price
由于许多记录主键达到最大限制,并通过为 500 个产品创建规则重试。希望它会开始工作。
希望有帮助!!
【讨论】:
正如@Davi-Reinoldo 所说,问题出在索引器上。
我也遇到过这个问题,当本地时区的偏移量大于 +01:00 时就会出现问题。
基本上只是因为 magento 使用 gmtTimestamp 作为规则日期,在上述情况下导致前一天。
为此我开发了一个小模块https://github.com/Chuvisco88/Chuvisco_CatalogRuleFix 来解决这个问题。 如果有人遇到过这个问题,请尝试一下。
【讨论】: