Devo affrontare il problema che l'aggiornamento quotidiano delle regole del catalogo di Magento non funziona. Ciò significa che non ci sono variazioni del prezzo dei prodotti quando arriva la data di scadenza della regola del catalogo, quindi devo premere il pulsante Applica regola in Amministratore. Cron è configurato e funzionante. Sembra che il metodo catalogrule / observer :: dailyCatalogUpdate dovrebbe controllare e applicare le regole automaticamente ogni giorno, ma non è così (anche io ho provato ad avviarlo manualmente). Ecco il codice principale di 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>
Osservatore:
/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();
return $this;
}
Ho avuto successo modificando il metodo dell'osservatore come di seguito:
/*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;
}
In questo modo le regole vengono controllate e applicate ogni giorno e i prezzi dei prodotti vengono modificati se la regola scade. Non credo che sia un bug di Magento. Si prega di avvisare qual è il problema che le regole non vengono controllate e applicate automaticamente?