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)

  1. Przejdź do Moduły > Menedżer modułów
  2. Kliknij Prześlij moduł
  3. Wybierz wepresta_advancedsearch.zip
  4. Poczekaj na zakończenie instalacji
  5. Kliknij Konfiguruj

Metoda 2 — FTP

  1. Rozpakuj wepresta_advancedsearch.zip
  2. Wyślij wepresta_advancedsearch/ do /modules/
  3. W back office: Moduły > Menedżer modułów
  4. Wyszukaj “Advanced Search Pro”
  5. 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_facetedsearch i 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:

  1. Zainstaluj moduł i wyłącz ps_facetedsearch
  2. Otwórz Advanced Search Pro z menu
  3. Kliknij Add new engine
  4. Ustaw nazwę wewnętrzną (np. „Główne filtry”)
  5. Wybierz hook (np. Left Column) i zostaw Current page context
  6. Zapisz i dodaj kryteria (Cena, Rozmiar, Kolor, Marka…)
  7. W Tools uruchom Full reindexation
  8. 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_facetedsearch jest 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_limit jeś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.

Loading...