Magentoのカタログルールの毎日の更新が機能しないという問題に直面しています。これは、カタログルールの有効期限が切れたときに製品の価格が変更されないことを意味するため、管理でルール適用ボタンを押す必要があります。Cronが構成され、機能しています。catalogrule / observer :: dailyCatalogUpdateメソッドは毎日自動的にルールをチェックして適用するようですが、そうではありません(手動で起動しようとしました)。Magentoのコアコードは次のとおりです。
<!--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のバグだとは思わない。ルールが自動的にチェックおよび適用されないという問題は何ですか?