Moduły · 1 min czytania

Konflikty modułów PrestaShop – jak diagnozować i naprawiać?

Dwa moduły działają osobno, ale razem powodują błędy? To klasyczny konflikt modułów. Dowiedz się jak go zidentyfikować i naprawić bez utraty funkcjonalności.

Czym jest konflikt modułów?

Konflikt modułów występuje gdy dwa lub więcej modułów próbuje modyfikować ten sam element PrestaShop – ten sam hook, klasę PHP lub plik szablonu. Efekt to biały ekran, błąd 500, znikające elementy lub nieprawidłowe działanie koszyka.

Objawy konfliktu

  • Biały ekran po instalacji nowego modułu
  • Błędy JavaScript w konsoli przeglądarki
  • Zdublowane elementy na stronie (np. dwa przyciski "Dodaj do koszyka")
  • Moduł działa na stronie głównej, ale nie na karcie produktu
  • Błędy tylko dla zalogowanych użytkowników

Diagnostyka – metoda eliminacji

Krok 1 – zidentyfikuj winowajcę

Wyłączaj moduły jeden po drugim (od ostatnio zainstalowanego) aż problem zniknie. Możesz to zrobić przez panel admina lub przez FTP – zmieniając nazwę folderu modułu.

Krok 2 – sprawdź hooki

W panelu admina przejdź do: Wygląd → Pozycje. Sprawdź czy dwa moduły nie są podpięte do tego samego hooka w tej samej kolejności.

Krok 3 – sprawdź overrides

Moduły często używają overrideów klas PHP. Jeśli dwa moduły nadpisują tę samą klasę, tylko jeden może wygrać. Sprawdź katalog override/classes/.

Najczęstsze konflikty

  • Moduły płatności – konflikty w hooku displayPayment
  • Moduły SEO – konflikty w meta tagach i canonical URL
  • Moduły koszyka – konflikty w ActionCartSave
  • Moduły wysyłki – konflikty w kalkulacji kosztów

Rozwiązanie

W zależności od przyczyny konfliktu rozwiązania są różne:

  • Zmiana kolejności modułów w hooku
  • Modyfikacja override jednego z modułów
  • Zastąpienie jednego modułu innym
  • Napisanie własnego override który łączy funkcje obu modułów
Konflikty modułów to nasza specjalność. Diagnozujemy i naprawiamy konflikty niezależnie od producenta modułu.

Potrzebujesz pomocy z PrestaShop?

Opisz problem – naprawiamy szybko i skutecznie.

Zgłoś problem →