Advanced Search Pro

Presentación

Advanced Search Pro es un módulo moderno de navegación por facetas (filtros avanzados) diseñado como sustituto completo del módulo nativo ps_facetedsearch. El objetivo es claro: ayudar a tus clientes a encontrar productos más rápido, sin recargar la página, con una experiencia fluida en escritorio y móvil.

A diferencia de soluciones antiguas, Advanced Search Pro se basa en una arquitectura orientada al rendimiento: back office con controladores Symfony (compatible con PrestaShop 8 y 9), front office reactivo con Alpine.js y un flujo JSON tipo API (el front envía criterios y el servidor devuelve resultados + contadores). Para mantener tiempos de respuesta rápidos incluso con catálogos grandes, el módulo integra indexación dedicada y caché configurable.

Puntos fuertes:

  • Filtrado instantáneo (AJAX) con contadores en tiempo real
  • Múltiples motores de filtros (Filter Engines) por categoría/página
  • UX móvil optimizada (panel lateral + botón flotante)
  • Indexación + caché para mayor rendimiento
  • Sin overrides del core de PrestaShop

¿Por qué este módulo?

El módulo nativo ps_facetedsearch puede quedarse corto: interfaz anticuada, recargas durante el filtrado, configuración rígida y rendimiento que empeora cuando el catálogo crece. Advanced Search Pro mejora estos puntos con una experiencia más moderna y una administración más flexible.

Limitaciones del módulo nativo Ventajas de Advanced Search Pro
Interfaz menos reactiva y antigua Interacciones fluidas con Alpine.js
Recarga completa al filtrar Peticiones AJAX + respuestas JSON
Un único bloque global de filtros Varios engines por contexto
Personalización limitada Modos de visualización (slider, desplegable, colores, imágenes…)
Móvil poco optimizado Panel móvil (drawer) + UX dedicada
Rendimiento frágil en catálogos grandes Indexación dedicada + caché TTL

Funcionalidades

Filter engines (motores de filtros)

Un Filter Engine es un bloque de filtros independiente con su propia configuración (criterios, visibilidad, posición, prioridad). Puedes crear tantos como necesites para adaptar los filtros a cada universo de productos.

Características clave:

  • Crear múltiples engines independientes
  • Posicionamiento mediante hooks (columna izquierda/derecha, parte superior, ancho completo, homepage…)
  • Activar/desactivar por engine, duplicar con un clic
  • Método de envío: instantáneo (AJAX) o botón Aplicar
  • Opciones: incluir subcategorías, mostrar solo productos en stock

Alcance de búsqueda (search mode)

Cada engine puede trabajar con un alcance distinto:

  • Contexto actual: filtra dentro de la categoría visitada (lo más habitual)
  • Categoría fija: siempre filtra dentro de una categoría seleccionada (útil en homepage)
  • Catálogo completo: alcance global (útil para un engine global)

Esto permite mostrar filtros relevantes en cada página sin “ensuciar” la UX con criterios innecesarios.

Criterios de filtrado y métodos de visualización

El módulo soporta los principales criterios de PrestaShop:

  • Precio (slider de doble control + campos min/max)
  • Atributos (talla, color, material…)
  • Características (features)
  • Categorías (árbol, miniaturas/imágenes)
  • Fabricantes / Marcas

Cada grupo puede mostrarse con distintos métodos:

  • Checkboxes, slider (rango), desplegable
  • Muestras de color (swatches)
  • Imágenes (p. ej. categorías/subcategorías)
  • Enlaces / etiquetas

Los contadores se actualizan tras cada interacción, reduciendo los callejones sin salida (“0 productos”) y mejorando la exploración.

Visibilidad y prioridad

La visualización de los engines es muy configurable:

  • Mostrar en todas las páginas (por defecto) o solo en páginas concretas
  • Restricciones: categorías (incluidas subcategorías), fabricantes, proveedores, páginas CMS, páginas especiales (promociones, novedades, más vendidos, resultados de búsqueda, homepage)
  • Sistema de prioridad: en una misma posición solo se muestra un engine (gana el valor de prioridad más bajo)

Esto facilita un setup “engine global + engines especializados”.

Experiencia en front office (desktop y móvil)

UX pensada para convertir:

  • Filtros activos como píldoras clicables (eliminación rápida)
  • Acción Clear all para reiniciar todo
  • Grupos plegables (acordeón)
  • Contadores en tiempo real

En móvil:

  • Drawer (panel lateral) activado por un botón flotante “Filters”
  • Breakpoint configurable (768px por defecto)
  • Cierre intuitivo (× o tap fuera del panel)
  • Scroll controlado (sin scroll del fondo)

Requisitos

Componente Versión mínima
PrestaShop 8.0.0
PHP 8.1
MySQL 5.7 / MariaDB 10.3

⚠️ Importante: es obligatorio desactivar ps_facetedsearch. Ambos módulos no pueden coexistir porque usan los mismos hooks.

Instalación

Método 1 — Back office (recomendado)

  1. Ve a Módulos > Gestor de módulos
  2. Haz clic en Subir un módulo
  3. Selecciona wepresta_advancedsearch.zip
  4. Espera a que finalice la instalación
  5. Haz clic en Configurar

Método 2 — FTP

  1. Descomprime wepresta_advancedsearch.zip
  2. Sube wepresta_advancedsearch/ a /modules/
  3. En el back office: Módulos > Gestor de módulos
  4. Busca “Advanced Search Pro”
  5. Haz clic en Instalar y luego Configurar

Qué hace la instalación

  • Crea tablas de indexación (atributos, características, categorías, precios, fabricantes)
  • Crea tablas de configuración (engines, criterios, visibilidad)
  • Registra hooks de front office y back office
  • Añade un menú Advanced Search Pro
  • Ejecuta la indexación inicial del catálogo
  • Detecta ps_facetedsearch y propone desactivarlo

La indexación inicial puede tardar de segundos a minutos según el tamaño del catálogo.

Inicio rápido

Activa tu primer bloque de filtros en menos de 5 minutos:

  1. Instala el módulo y desactiva ps_facetedsearch
  2. Abre Advanced Search Pro desde el menú
  3. Haz clic en Add new engine
  4. Define un nombre interno (p. ej. “Filtros principales”)
  5. Elige un hook (p. ej. Left Column) y deja Current page context
  6. Guarda y añade criterios (Precio, Talla, Color, Marca…)
  7. En Tools, ejecuta Full reindexation
  8. Visita una categoría: los filtros deben mostrarse y funcionar

Configuración

Parámetros de un engine

Opciones principales:

  • Internal name: nombre interno (back office)
  • Public name: título en el front (opcional, multiidioma)
  • Display hook: posición (izquierda/derecha/top/ancho completo/homepage…)
  • Submission method: instantáneo (AJAX) o botón
  • Search mode: contexto / categoría fija / catálogo completo
  • Opciones: incluir subcategorías, solo en stock, activo

Gestión de criterios

Los criterios se configuran por engine:

  • Añade/elimina grupos (precio, atributos, características, categorías, marcas…)
  • Elige el método de visualización (checkboxes, slider, desplegable, swatches, imágenes…)
  • Ordena los grupos (orden en back office = orden en el front)
  • Reindexa si creas nuevos atributos/características en PrestaShop

Visibilidad y prioridades

Para evitar varios bloques en la misma página:

  • Usa un engine global como fallback (prioridad 10+)
  • Crea engines especializados (prioridad 1–5) por categorías
  • Asegúrate de que el hook exista en tu tema (algunos temas no renderizan columnas)

Ajustes globales

Ajustes comunes a todos los engines:

  • Caché: activar + TTL
  • Rendimiento: debounce + batch size de indexación
  • Integración: selector CSS del listado de productos (crítico para el reemplazo AJAX)
  • Debug: logs detallados (evitar en producción)

Herramientas e indexación

El módulo mantiene índices dedicados para acelerar el filtrado:

  • ATTRIBUTES, FEATURES, CATEGORIES, PRICES, MANUFACTURERS

Se recomienda una reindexación completa:

  • Tras la instalación (a menudo automática)
  • Tras importaciones masivas
  • Tras cambios estructurales (nuevos atributos, nuevas categorías)
  • Si los resultados/contadores parecen incoherentes

En catálogos muy grandes (10.000+ productos), es mejor programar la indexación vía CRON para evitar timeouts.

Compatibilidad

PrestaShop

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

PHP

  • ✅ PHP 8.1 a 8.4

Bases de datos

  • ✅ MySQL 5.7+
  • ✅ MariaDB 10.3+

Temas

  • ✅ Temas PrestaShop (Classic, Hummingbird)
  • ✅ Temas personalizados (verificar el selector CSS del listado)

FAQ

¿El módulo sustituye ps_facetedsearch?

Sí. Está diseñado como reemplazo completo con UX moderna, engines múltiples y filtrado instantáneo.

¿Debo desactivar ps_facetedsearch?

Sí, es obligatorio. No pueden funcionar juntos (mismos hooks).

¿Genera páginas por facetas indexables para SEO?

No, no en esta versión. Las páginas SEO por facetas están previstas para una versión futura.

¿Es compatible con un tema personalizado?

En la mayoría de casos sí. El punto crítico es el Product list CSS selector, que debe apuntar al contenedor del listado para permitir el reemplazo AJAX.

¿Puede manejar catálogos grandes?

Sí, gracias a la indexación y la caché. Ajusta TTL, batch size y debounce según tu servidor y programa la indexación si lo necesitas.

Solución de problemas

No se muestra el bloque de filtros

  • Comprueba que el engine esté activo
  • Verifica que el hook exista en el tema
  • Revisa la visibilidad (restricciones por página/categoría)
  • Revisa la prioridad (otro engine puede prevalecer)
  • Asegúrate de que ps_facetedsearch esté desactivado
  • Vacía la caché de PrestaShop

Todos los contadores muestran 0

  • Ejecuta una reindexación completa
  • Verifica que los productos tengan atributos/características asignados
  • Revisa el alcance (categoría actual con productos)

El listado no se actualiza al filtrar

  • Verifica el Product list CSS selector
  • Revisa la consola del navegador (F12) por errores JS
  • Activa temporalmente debug y revisa los logs de PrestaShop

Timeout durante la indexación

  • Reduce el batch size
  • Aumenta max_execution_time / memory_limit si es posible
  • Usa indexación vía CRON para catálogos grandes

Changelog

Versión 1.0.0 — Marzo 2026

  • Engines múltiples, visibilidad por página y sistema de prioridades
  • 3 modos de búsqueda (contexto / categoría fija / catálogo completo)
  • Criterios: precio, atributos, características, categorías, fabricantes
  • Filtrado AJAX instantáneo, píldoras de filtros activos, clear all
  • Drawer móvil + breakpoint configurable
  • Indexación dedicada + caché TTL
  • Ajustes: debounce, batch size, selector CSS, debug
  • Controladores Symfony, multitienda, multiidioma, sin overrides

Licencia

Distribuido bajo la Academic Free License (AFL 3.0).

Copyright © WePresta. Todos los derechos reservados.

Cargando...