- Filter engines (silniki filtrów)
- Zakres wyszukiwania (search mode)
- Kryteria filtrowania i sposoby wyświetlania
- Widoczność i priorytety
- Front office (desktop i mobile)
- Czy moduł zastępuje ps_facetedsearch?
- Czy muszę wyłączyć ps_facetedsearch?
- Czy generuje indeksowalne strony SEO dla faset?
- Czy działa z motywem custom?
- Czy poradzi sobie z dużym katalogiem?
- Filtry się nie wyświetlają
- Liczniki wszędzie pokazują 0
- Lista produktów nie odświeża się po filtrowaniu
- Timeout podczas indeksowania
Advanced Search Pro
Opis
Advanced Search Pro to nowoczesny moduł nawigacji fasetowej (zaawansowanych filtrów) zaprojektowany jako pełnoprawny zamiennik natywnego modułu ps_facetedsearch. Cel jest prosty: pomóc klientom szybciej znaleźć właściwe produkty bez przeładowywania strony, z płynnym działaniem na desktopie i urządzeniach mobilnych.
W przeciwieństwie do rozwiązań legacy, Advanced Search Pro opiera się na architekturze nastawionej na wydajność: panel administracyjny wykorzystuje kontrolery Symfony (zgodność z PrestaShop 8 i 9), front działa bardzo responsywnie dzięki Alpine.js, a komunikacja przebiega w modelu JSON (jak API) — front wysyła kryteria, a serwer zwraca wyniki + liczniki. Aby utrzymać krótkie czasy odpowiedzi nawet przy dużych katalogach, moduł zawiera dedykowane indeksowanie oraz konfigurowalny cache.
Najważniejsze zalety:
- Natychmiastowe filtrowanie (AJAX) z licznikami w czasie rzeczywistym
- Wiele silników filtrów (Filter Engines) dla różnych kategorii/stron
- UX mobile (panel typu drawer + pływający przycisk)
- Indeksowanie + cache dla lepszej wydajności
- Brak override’ów core PrestaShop
Dlaczego ten moduł?
Natywny ps_facetedsearch bywa ograniczający: przestarzały interfejs, przeładowania przy filtrowaniu, sztywna konfiguracja i spadek wydajności wraz ze wzrostem katalogu. Advanced Search Pro rozwiązuje te problemy dzięki nowocześniejszemu UX i bardziej elastycznej administracji.
| Ograniczenia modułu natywnego | Co daje Advanced Search Pro |
|---|---|
| Mniej responsywny, przestarzały UI | Płynne interakcje dzięki Alpine.js |
| Przeładowanie strony podczas filtrowania | Zapytania AJAX + odpowiedzi JSON |
| Jeden globalny blok filtrów | Wiele engine’ów per kontekst |
| Ograniczona personalizacja wyświetlania | Tryby (suwak, dropdown, kolory, obrazy…) |
| Słabsze doświadczenie na mobile | Drawer mobilny + dedykowany UX |
| Wydajność spada na dużych katalogach | Dedykowane indeksowanie + cache TTL |
Funkcje
Filter engines (silniki filtrów)
Filter Engine to niezależny blok filtrów z własną konfiguracją (kryteria, widoczność, pozycja, priorytet). Możesz utworzyć wiele engine’ów i dopasować filtry do różnych działów katalogu.
Najważniejsze możliwości:
- Tworzenie wielu niezależnych engine’ów
- Wyświetlanie przez hooki (lewa/prawa kolumna, góra strony, pełna szerokość, homepage…)
- Włączanie/wyłączanie per engine, duplikowanie jednym kliknięciem
- Metoda zastosowania: natychmiastowa (AJAX) lub przycisk Zastosuj
- Opcje: uwzględnij podkategorie, tylko produkty dostępne (in-stock)
Zakres wyszukiwania (search mode)
Każdy engine może działać w innym zakresie:
- Bieżący kontekst: filtrowanie w aktualnie przeglądanej kategorii (najczęściej)
- Stała kategoria: zawsze filtrowanie w wybranej kategorii (przydatne na homepage)
- Cały katalog: filtr globalny (przydatny jako engine globalny)
Dzięki temu filtry są trafne w danym miejscu i nie pokazują zbędnych kryteriów.
Kryteria filtrowania i sposoby wyświetlania
Moduł obsługuje kluczowe kryteria PrestaShop:
- Cena (suwak z dwoma uchwytami + pola min/max)
- Atrybuty (rozmiar, kolor, materiał…)
- Cechy (features)
- Kategorie (drzewo, miniatury/obrazy)
- Producenci / Marki
Dostępne metody prezentacji:
- Checkboxy, suwak (range), dropdown
- Próbki kolorów (swatches)
- Obrazy (np. kategorie/podkategorie)
- Linki / tagi
Liczniki aktualizują się po każdej interakcji, co ogranicza sytuacje „0 produktów” i ułatwia doprecyzowanie wyboru.
Widoczność i priorytety
Widoczność engine’ów można precyzyjnie kontrolować:
- Wyświetlanie wszędzie (domyślnie) lub tylko na wybranych stronach
- Ograniczenia: kategorie (z podkategoriami), producenci, dostawcy, strony CMS, strony specjalne (promocje, nowości, bestsellery, wyniki wyszukiwania, homepage)
- System priorytetów: w tej samej pozycji wyświetla się tylko jeden engine (wygrywa najniższa wartość priorytetu)
Ułatwia to konfigurację „engine globalny + engine’y specjalistyczne”.
Front office (desktop i mobile)
UX nastawiony na konwersję:
- Aktywne filtry jako klikalne pigułki (szybkie usuwanie)
- Akcja Clear all do resetu filtrów
- Zwijane grupy (accordion)
- Liczniki w czasie rzeczywistym
Mobile:
- Drawer (panel boczny) uruchamiany pływającym przyciskiem „Filters”
- Konfigurowalny breakpoint (domyślnie 768px)
- Intuicyjne zamykanie (× lub klik poza panelem)
- Kontrolowany scroll (bez przewijania tła)
Wymagania
| Komponent | Minimalna wersja |
|---|---|
| PrestaShop | 8.0.0 |
| PHP | 8.1 |
| MySQL | 5.7 / MariaDB 10.3 |
⚠️ Ważne: moduł wymaga wyłączenia
ps_facetedsearch. Oba nie mogą działać jednocześnie (te same hooki).
Instalacja
Metoda 1 — Back office (zalecana)
- Przejdź do Moduły > Menedżer modułów
- Kliknij Prześlij moduł
- Wybierz
wepresta_advancedsearch.zip - Poczekaj na zakończenie instalacji
- Kliknij Konfiguruj
Metoda 2 — FTP
- Rozpakuj
wepresta_advancedsearch.zip - Wyślij
wepresta_advancedsearch/do/modules/ - W back office: Moduły > Menedżer modułów
- Wyszukaj “Advanced Search Pro”
- Kliknij Zainstaluj, a następnie Konfiguruj
Co robi instalacja
- Tworzy tabele indeksowania (atrybuty, cechy, kategorie, ceny, producenci)
- Tworzy tabele konfiguracji (engine’y, kryteria, widoczność)
- Rejestruje hooki front/back office
- Dodaje pozycję menu Advanced Search Pro
- Uruchamia wstępne indeksowanie katalogu
- Wykrywa
ps_facetedsearchi proponuje jego wyłączenie
Wstępne indeksowanie może trwać od kilku sekund do kilku minut, zależnie od wielkości katalogu.
Szybki start
Uruchom pierwszy blok filtrów w mniej niż 5 minut:
- Zainstaluj moduł i wyłącz
ps_facetedsearch - Otwórz Advanced Search Pro z menu
- Kliknij Add new engine
- Ustaw nazwę wewnętrzną (np. „Główne filtry”)
- Wybierz hook (np. Left Column) i zostaw Current page context
- Zapisz i dodaj kryteria (Cena, Rozmiar, Kolor, Marka…)
- W Tools uruchom Full reindexation
- Wejdź na stronę kategorii: filtry powinny się pojawić i działać
Konfiguracja
Ustawienia engine’a
Najważniejsze ustawienia:
- Internal name: nazwa wewnętrzna (back office)
- Public name: tytuł w front (opcjonalnie, wielojęzyczny)
- Display hook: pozycja (lewa/prawa/góra/full width/homepage…)
- Submission method: natychmiast (AJAX) lub przycisk
- Search mode: kontekst / stała kategoria / cały katalog
- Opcje: podkategorie, tylko dostępne, aktywny
Zarządzanie kryteriami
Kryteria konfigurujesz dla każdego engine’a:
- Dodaj/usuń grupy (cena, atrybuty, cechy, kategorie, marki…)
- Wybierz sposób wyświetlania (checkboxy, suwak, dropdown, swatches, obrazy…)
- Ułóż kolejność (kolejność w panelu = kolejność w front)
- Po dodaniu nowych atrybutów/cech w PrestaShop wykonaj reindeksację
Widoczność i priorytety
Aby unikać konkurujących bloków w tej samej pozycji:
- Ustaw engine globalny jako fallback (priorytet 10+)
- Twórz engine’y specjalistyczne (priorytet 1–5) dla kategorii
- Sprawdź, czy temat renderuje dany hook (niektóre tematy nie pokazują kolumn)
Ustawienia globalne
Wspólne dla wszystkich engine’ów:
- Cache: włącz/wyłącz + TTL
- Wydajność: debounce + batch size indeksowania
- Integracja: selektor CSS listy produktów (krytyczne dla AJAX)
- Debug: szczegółowe logi (niezalecane na produkcji)
Narzędzia i indeksowanie
Moduł utrzymuje dedykowane indeksy dla szybkiego filtrowania:
- ATTRIBUTES, FEATURES, CATEGORIES, PRICES, MANUFACTURERS
Zalecana jest pełna reindeksacja:
- Po instalacji (często automatycznie)
- Po dużych importach
- Po zmianach strukturalnych (nowe atrybuty, nowe kategorie)
- Jeśli wyniki/liczniki wydają się niespójne
Dla bardzo dużych katalogów (10 000+ produktów) zaleca się indeksowanie przez CRON, aby uniknąć timeoutów.
Kompatybilność
PrestaShop
- ✅ PrestaShop 8.x
- ✅ PrestaShop 9.x
PHP
- ✅ PHP 8.1 do 8.4
Bazy danych
- ✅ MySQL 5.7+
- ✅ MariaDB 10.3+
Motywy
- ✅ Motywy PrestaShop (Classic, Hummingbird)
- ✅ Motywy custom (sprawdź selektor CSS listingu)
FAQ
Czy moduł zastępuje ps_facetedsearch?
Tak. To pełny zamiennik z nowoczesnym UX, wieloma engine’ami i filtrowaniem AJAX.
Czy muszę wyłączyć ps_facetedsearch?
Tak, obowiązkowo. Moduły nie mogą działać razem (te same hooki).
Czy generuje indeksowalne strony SEO dla faset?
Nie w tej wersji. Strony SEO dla faset są planowane w przyszłej wersji.
Czy działa z motywem custom?
W większości przypadków tak. Kluczowe jest ustawienie Product list CSS selector, aby moduł mógł podmieniać listę produktów przez AJAX.
Czy poradzi sobie z dużym katalogiem?
Tak, dzięki indeksowaniu i cache. Dostosuj TTL, batch size i debounce do serwera oraz zaplanuj indeksowanie, jeśli to potrzebne.
Rozwiązywanie problemów
Filtry się nie wyświetlają
- Sprawdź, czy engine jest aktywny
- Sprawdź, czy hook istnieje i jest renderowany przez motyw
- Sprawdź reguły widoczności
- Sprawdź priorytet (inny engine może wygrywać)
- Upewnij się, że
ps_facetedsearchjest wyłączony - Wyczyść cache PrestaShop
Liczniki wszędzie pokazują 0
- Uruchom pełną reindeksację
- Sprawdź, czy produkty mają przypisane atrybuty/cechy
- Sprawdź zakres (czy w kategorii są produkty)
Lista produktów nie odświeża się po filtrowaniu
- Sprawdź Product list CSS selector
- Sprawdź konsolę przeglądarki (F12) pod kątem błędów JS
- Włącz na chwilę debug i sprawdź logi PrestaShop
Timeout podczas indeksowania
- Zmniejsz batch size
- Zwiększ
max_execution_time/memory_limitjeśli to możliwe - Użyj indeksowania CRON dla dużych katalogów
Changelog
Wersja 1.0.0 — Marzec 2026
- Wiele engine’ów, widoczność per strona, system priorytetów
- 3 tryby wyszukiwania (kontekst / stała kategoria / cały katalog)
- Kryteria: cena, atrybuty, cechy, kategorie, producenci
- Natychmiastowe filtrowanie AJAX, pigułki aktywnych filtrów, clear all
- Drawer mobilny + konfigurowalny breakpoint
- Dedykowane indeksowanie + cache TTL
- Ustawienia: debounce, batch size, selektor CSS, debug
- Kontrolery Symfony, multistore, wielojęzyczność, brak override’ów
Licencja
Dystrybuowane na licencji Academic Free License (AFL 3.0).
Copyright © WePresta. Wszelkie prawa zastrzeżone.