Mam problem z tym, że codzienna aktualizacja zasad Katalogu Magento nie działa. Oznacza to, że nie ma żadnych zmian cen produktów, gdy nadejdzie data wygaśnięcia reguły katalogu, więc muszę nacisnąć przycisk Zastosuj regułę w Administratorze. Cron jest skonfigurowany i działa. Wygląda na to, że metoda catalogrule / observer :: dailyCatalogUpdate powinna sprawdzać i stosować reguły automatycznie każdego dnia, ale tak nie jest (próbowałem również uruchomić ją ręcznie). Oto kod podstawowy 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>
Obserwator:
/*file app/code/core/Mage/CatalogRule/Model/Observer.php*/
public function dailyCatalogUpdate($observer)
{
Mage::getResourceSingleton('catalogrule/rule')->applyAllRulesForDateRange();
return $this;
}
Miałem sukces modyfikującą metodę obserwatora, jak poniżej:
/*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;
}
W ten sposób reguły są sprawdzane i stosowane codziennie, a ceny produktów zmieniają się, jeśli reguła wygasa. Nie wierzę, że to błąd Magento. Proszę doradzić, na czym polega problem polegający na tym, że reguły nie są sprawdzane i stosowane automatycznie?
Odpowiedzi:
Ostatnio miałem ten sam problem, kiedy testowałem nową regułę ceny dla naszego projektu. Powodem mojego bólu głowy było to, że nie zauważyłem tego za każdym razem, gdy tworzysz nową regułę lub edytujesz niektóre z istniejących reguł - powinieneś nacisnąć przycisk „ Zastosuj reguły ”, aby Magento wiedział o zmianach w regułach.
źródło
Upewnij się, że klikniesz „Zastosuj reguły”, nie zawsze wystarczy. Niedawno odkryłem, że jeśli cron nie zostanie poprawnie skonfigurowany, w pewnym momencie w przyszłości reguły nie zostaną zastosowane.
Nie byłem w stanie naprawdę dopracować, kiedy zasady przestały działać. W moim przypadku miałem garść zasad, które są stosowane w oparciu o grupę klientów (sprzedaż hurtowa).
źródło
Sprawdź, czy zadanie zostało zaplanowane
Możesz to zrobić, sprawdzając bazę danych lub instalując to rozszerzenie: Aoe_Scheduler
Sprawdź, czy zadanie działa
Utwórz skrypt php
run_my_rules.php
i umieść tam tylko treść dla funkcji:dailyCatalogUpdate
następnie uruchom ją z konsoli. Zobacz co się dzieje.źródło