Advanced Search Pro

Panoramica

Advanced Search Pro è un modulo moderno di navigazione a faccette (filtri avanzati) pensato come sostituto completo del modulo nativo ps_facetedsearch. L’obiettivo è semplice: aiutare i clienti a trovare più velocemente i prodotti giusti, senza ricaricare l’intera pagina, con un’esperienza fluida sia su desktop che su mobile.

A differenza di soluzioni legacy, Advanced Search Pro si basa su un’architettura orientata alle prestazioni: back office con controller Symfony (compatibili con PrestaShop 8 e 9), front office reattivo con Alpine.js e un flusso JSON tipo API (il front invia i criteri, il server restituisce risultati + contatori). Per mantenere tempi di risposta rapidi anche con cataloghi grandi, il modulo integra indicizzazione dedicata e cache configurabile.

Punti di forza:

  • Filtraggio istantaneo (AJAX) con contatori in tempo reale
  • Motori di filtri multipli (Filter Engines) per categoria/pagina
  • UX mobile ottimizzata (drawer + pulsante flottante)
  • Indicizzazione + cache per prestazioni elevate
  • Nessun override del core PrestaShop

Perché questo modulo?

Il modulo nativo ps_facetedsearch può diventare limitante: UI datata, comportamento con ricarichi, configurazione rigida e prestazioni che peggiorano quando il catalogo cresce. Advanced Search Pro risolve questi punti con un’esperienza più moderna e una gestione più flessibile.

Limiti del modulo nativo Vantaggi di Advanced Search Pro
UI meno reattiva e datata Interazioni fluide con Alpine.js
Ricarico pagina durante il filtraggio Richieste AJAX + risposte JSON
Un solo blocco filtri globale Engine multipli per contesto
Personalizzazione limitata Metodi di visualizzazione (slider, dropdown, colori, immagini…)
Mobile poco ottimizzato Drawer mobile + UX dedicata
Prestazioni fragili su grandi cataloghi Indicizzazione dedicata + cache TTL

Funzionalità

Filter engines (motori di filtri)

Un Filter Engine è un blocco filtri indipendente con la propria configurazione (criteri, visibilità, posizione, priorità). Puoi crearne quanti vuoi per adattare i filtri ai diversi reparti del catalogo.

Caratteristiche principali:

  • Creazione di engine multipli indipendenti
  • Posizionamento tramite hook (colonna sinistra/destra, top pagina, full width, homepage…)
  • Attivazione/disattivazione per engine, duplicazione con un clic
  • Metodo di invio: istantaneo (AJAX) o pulsante Applica
  • Opzioni: includere sottocategorie, mostrare solo prodotti disponibili

Ambito di ricerca (search mode)

Ogni engine può lavorare su un ambito diverso:

  • Contesto corrente: ricerca nella categoria visualizzata (caso più comune)
  • Categoria fissa: ricerca sempre in una categoria selezionata (utile in homepage)
  • Catalogo intero: ambito globale (utile per un engine globale)

Questo permette di mostrare filtri pertinenti per pagina, evitando criteri inutili.

Criteri di filtro e metodi di visualizzazione

Il modulo gestisce i principali criteri di PrestaShop:

  • Prezzo (slider a doppio cursore + campi min/max)
  • Attributi (taglia, colore, materiale…)
  • Caratteristiche (features)
  • Categorie (albero, thumbnail/immagini)
  • Produttori / Brand

Ogni gruppo può essere mostrato con vari metodi:

  • Checkbox, slider (range), dropdown
  • Color swatches (campioni colore)
  • Immagini (es. categorie/sottocategorie)
  • Link / tag

I contatori si aggiornano dopo ogni interazione, riducendo i casi “0 prodotti” e migliorando la navigazione.

Visibilità e priorità

La visualizzazione degli engine è molto controllabile:

  • Visualizzazione ovunque (default) o solo su pagine specifiche
  • Restrizioni possibili: categorie (con sottocategorie), produttori, fornitori, pagine CMS, pagine speciali (promozioni, novità, best-seller, risultati ricerca, homepage)
  • Sistema di priorità: nella stessa posizione si mostra un solo engine (vince il valore di priorità più basso)

Consente un setup “fallback globale + engine specializzati”.

Front office (desktop e mobile)

UX orientata alla conversione:

  • Filtri attivi come pill cliccabili (rimozione rapida)
  • Azione Clear all per azzerare tutto
  • Gruppi richiudibili (accordion)
  • Contatori in tempo reale

Mobile:

  • Drawer (pannello laterale) attivato da un pulsante flottante “Filters”
  • Breakpoint configurabile (768px di default)
  • Chiusura intuitiva (× o tap fuori dal drawer)
  • Scroll gestito (niente scroll dello sfondo dietro)

Requisiti

Componente Versione minima
PrestaShop 8.0.0
PHP 8.1
MySQL 5.7 / MariaDB 10.3

⚠️ Importante: è necessario disattivare ps_facetedsearch. I due moduli non possono coesistere perché usano gli stessi hook.

Installazione

Metodo 1 — Back office (consigliato)

  1. Vai su Moduli > Gestione moduli
  2. Clicca su Carica un modulo
  3. Seleziona wepresta_advancedsearch.zip
  4. Attendi la fine dell’installazione
  5. Clicca su Configura

Metodo 2 — FTP

  1. Estrai wepresta_advancedsearch.zip
  2. Carica wepresta_advancedsearch/ in /modules/
  3. Nel back office: Moduli > Gestione moduli
  4. Cerca “Advanced Search Pro”
  5. Clicca Installa poi Configura

Cosa fa l’installazione

  • Crea tabelle di indicizzazione (attributi, caratteristiche, categorie, prezzi, produttori)
  • Crea tabelle di configurazione (engine, criteri, visibilità)
  • Registra hook front-office e back-office
  • Aggiunge una voce menu Advanced Search Pro
  • Esegue l’indicizzazione iniziale del catalogo
  • Rileva ps_facetedsearch e propone la disattivazione

L’indicizzazione iniziale può richiedere da pochi secondi a qualche minuto, in base al catalogo.

Avvio rapido

Per attivare il primo blocco filtri in meno di 5 minuti:

  1. Installa il modulo e disattiva ps_facetedsearch
  2. Apri Advanced Search Pro dal menu
  3. Clicca Add new engine
  4. Imposta un nome interno (es. “Filtri principali”)
  5. Scegli un hook (es. Left Column) e mantieni Current page context
  6. Salva, poi aggiungi i criteri (Prezzo, Taglia, Colore, Brand…)
  7. In Tools, esegui Full reindexation
  8. Visita una pagina categoria: i filtri devono apparire e funzionare

Configurazione

Impostazioni di un engine

Le opzioni più importanti:

  • Internal name: nome interno (back office)
  • Public name: titolo in front (opzionale, multilingua)
  • Display hook: posizione (sinistra/destra/top/full width/homepage…)
  • Submission method: istantaneo (AJAX) o pulsante
  • Search mode: contesto / categoria fissa / catalogo intero
  • Opzioni: includi sottocategorie, solo disponibili, attivo

Gestione criteri

I criteri si configurano per engine:

  • Aggiungi/rimuovi gruppi (prezzo, attributi, caratteristiche, categorie, brand…)
  • Seleziona il metodo di visualizzazione (checkbox, slider, dropdown, swatches, immagini…)
  • Ordina i gruppi (ordine back office = ordine in front)
  • Reindicizza dopo aver creato nuovi attributi/caratteristiche in PrestaShop

Visibilità e priorità

Per evitare più blocchi sulla stessa pagina:

  • Usa un engine globale di fallback (priorità 10+)
  • Crea engine specializzati (priorità 1–5) per categorie
  • Verifica che l’hook sia presente nel tema (alcuni temi non mostrano colonne)

Impostazioni globali

Impostazioni comuni a tutti gli engine:

  • Cache: attivazione + TTL
  • Performance: debounce + batch size indicizzazione
  • Integrazione: selettore CSS della lista prodotti (fondamentale per l’AJAX)
  • Debug: log dettagliati (da evitare in produzione)

Strumenti e indicizzazione

Il modulo mantiene indici dedicati per accelerare il filtraggio:

  • ATTRIBUTES, FEATURES, CATEGORIES, PRICES, MANUFACTURERS

È consigliata una reindicizzazione completa:

  • Dopo l’installazione (spesso automatica)
  • Dopo import massivi
  • Dopo cambi strutturali (nuovi attributi, nuove categorie)
  • Se risultati/contatori sembrano incoerenti

Per cataloghi molto grandi (10.000+ prodotti) è preferibile pianificare l’indicizzazione via CRON per evitare timeout.

Compatibilità

PrestaShop

  • ✅ PrestaShop 8.x
  • ✅ PrestaShop 9.x

PHP

  • ✅ PHP 8.1 fino a 8.4

Database

  • ✅ MySQL 5.7+
  • ✅ MariaDB 10.3+

Temi

  • ✅ Temi PrestaShop (Classic, Hummingbird)
  • ✅ Temi custom (verificare il selettore CSS del listing)

FAQ

Il modulo sostituisce ps_facetedsearch?

Sì. È progettato come sostituto completo con UX moderna, engine multipli e filtraggio istantaneo.

Devo disattivare ps_facetedsearch?

Sì, obbligatorio. Non possono funzionare insieme (stessi hook).

Genera pagine a faccette indicizzabili SEO?

No, non in questa versione. Le pagine SEO per faccette sono previste in una versione futura.

È compatibile con un tema custom?

Nella maggior parte dei casi sì. Il punto critico è il Product list CSS selector, che deve puntare al contenitore della lista prodotti per permettere l’aggiornamento AJAX.

Può gestire grandi cataloghi?

Sì, grazie a indicizzazione e cache. Regola TTL, batch size e debounce in base al server e pianifica l’indicizzazione se necessario.

Risoluzione problemi

I filtri non compaiono

  • Verifica che l’engine sia attivo
  • Verifica che l’hook esista nel tema
  • Controlla la visibilità (restrizioni pagina/categoria)
  • Controlla la priorità (un altro engine può prevalere)
  • Verifica che ps_facetedsearch sia disattivato
  • Svuota la cache di PrestaShop

Tutti i contatori sono a 0

  • Esegui una reindicizzazione completa
  • Verifica che i prodotti abbiano attributi/caratteristiche
  • Controlla l’ambito (categoria corrente con prodotti)

La lista prodotti non si aggiorna dopo il filtro

  • Verifica il Product list CSS selector
  • Controlla la console del browser (F12) per errori JS
  • Attiva temporaneamente debug e controlla i log PrestaShop

Timeout durante indicizzazione

  • Riduci il batch size
  • Aumenta max_execution_time / memory_limit se possibile
  • Usa indicizzazione via CRON per cataloghi grandi

Changelog

Versione 1.0.0 — Marzo 2026

  • Engine multipli, visibilità per pagina, sistema di priorità
  • 3 modalità di ricerca (contesto / categoria fissa / catalogo intero)
  • Criteri: prezzo, attributi, caratteristiche, categorie, produttori
  • Filtraggio AJAX istantaneo, pill filtri attivi, clear all
  • Drawer mobile + breakpoint configurabile
  • Indicizzazione dedicata + cache TTL
  • Impostazioni: debounce, batch size, selettore CSS, debug
  • Controller Symfony, multistore, multilingua, nessun override

Licenza

Distribuito con licenza Academic Free License (AFL 3.0).

Copyright © WePresta. Tutti i diritti riservati.

Caricamento in corso ...