Eu enfrento o problema de que a atualização diária das regras do catálogo do Magento não funciona. Isso significa que não há alterações de preço dos produtos quando a data de validade da regra de catálogo chegar, por isso tenho que pressionar o botão Aplicar regra no Admin. Cron está configurado e funcionando. Parece que o método catalogrule / observer :: dailyCatalogUpdate deve verificar e aplicar regras automaticamente todos os dias, mas não o faz (também tentei iniciá-lo manualmente). Aqui está o código principal do 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>
Observador:
/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();
return $this;
}
Tive sucesso ao modificar o método observador, como abaixo:
/*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;
}
Dessa forma, as regras são verificadas e aplicadas todos os dias e os preços dos produtos são alterados se a regra expirar. Não acredito que seja um bug do Magento. Por favor, informe qual é o problema de as regras não estarem sendo verificadas e aplicadas automaticamente?
Respostas:
Recentemente, tive o mesmo problema ao testar uma nova regra de preço para o nosso projeto. E a razão da minha dor de cabeça foi que eu não percebi que toda vez que você cria uma nova regra ou edita algumas das regras existentes - você deve pressionar o botão " Aplicar regras " para que o Magento saiba sobre as alterações nas regras.
fonte
Certificar-se de pressionar "Aplicar regras" nem sempre é suficiente. Descobri recentemente que, se o cron não estiver configurado corretamente, em algum momento no futuro, as regras não serão aplicadas.
Eu era incapaz de realmente definir quando as regras pararam de funcionar. No meu caso, eu tinha várias regras aplicadas com base no grupo de clientes (atacado).
fonte
Verifique se o trabalho é agendado
Você pode fazer isso verificando o banco de dados ou instalando esta extensão: Aoe_Scheduler
Teste se o trabalho funciona
Crie um script php
run_my_rules.php
e insira apenas o conteúdo da função:dailyCatalogUpdate
execute-o no console. Veja o que está acontecendo.fonte