Co zrobić, gdy oferta nie aktualizuje się?
Jeśli zauważysz, że Twoja oferta na Arena.pl nie aktualizuje się, mimo że masz poprawnie dodane zadania CRON – bardzo możliwe, że problemem jest sposób aktualizacji stanów magazynowych w Twoim sklepie.
Najczęstszy powód: ➡️ Sklep lub inne moduły nie korzystają z systemu haków Prestashop, przez co nasz moduł nie dostaje informacji, że coś się zmieniło.
Jak działa system haków Prestashop?
Prestashop ma wbudowany system haków (tzw. system eventowy), który działa trochę jak „megafon“ — kiedy coś się zmienia, Prestashop informuje wszystkie moduły, które nasłuchują takiego zdarzenia.
Przykład — jak powinno wyglądać poprawne działanie:
- ✅ Moduł A (np. integracja z ERP) zmienia stan magazynowy produktu za pomocą funkcji Prestashop
StockAvailable::setQuantity. - ✅ Ta funkcja automatycznie wywołuje hak
ProductUpdateQuantity. - ✅ Nasz moduł Arena.pl słucha tego haku. Kiedy go usłyszy, wie, że musi zaktualizować produkt na Arena.pl.
- ✅ Moduł Arena.pl wysyła dane do Arena.pl.
Problem zaczyna się wtedy, gdy Twój moduł ERP, magazyn, import itp. NIE używa tej oficjalnej funkcji lub robi to „na skróty“ bez wywołania haków.
Wtedy nasz moduł nic o tym nie wie i nie zaktualizuje produktu.
Jak rozwiązać problem?
Jeśli masz taki problem — nie martw się.
W module Arena.pl dodaliśmy specjalny mechanizm awaryjny, który ręcznie oznacza wszystkie produkty do ponownej synchronizacji z Arena.pl.

Co zrobić krok po kroku?
- Uruchom CRON 3 – „Oznaczenie wszystkich produktów jako oczekujące“.
- To wymusi oznaczenie wszystkich produktów w sklepie jako do aktualizacji.
- Następnie uruchom:
- 2 Synchronizacja produktów oczekujących (zalecane dla sklepów na serwerze współdzielonym),
- lub 4 Aktualizacja wszystkich produktów oczekujących (dla sklepów na serwerach dedykowanych).
Ważne uwagi
- 🔷 Skrypt (3) nie rozwiązuje problemu u źródła, ale pozwala wymusić pełną synchronizację.
- 🔷 Najlepiej zawsze upewnić się, że moduły zarządzające stanem magazynowym korzystają z oficjalnych funkcji Prestashop (
StockAvailable::setQuantity). - 🔷 Jeśli tego nie robią — skrypt (3) to Twoje koło ratunkowe.