Búsqueda Sin Resultados — Página de Rescate y Alertas — Documentación
Instalar, configurar y explotar el módulo dfzerosearch: página de rescate en búsquedas sin resultados, corrección ortográfica, adivinación de categoría, formulario «avísame» y panel de consultas perdidas.
Presentación
El módulo Búsqueda Sin Resultados (dfzerosearch) intercepta las búsquedas de tu tienda que no devuelven ningún resultado y las sustituye por una página de rescate: corrección ortográfica «¿querías decir…?», productos parecidos, mejores ventas de la categoría adivinada, más vendidos globales y formulario «avísame».
En el back-office, un panel de consultas perdidas agrega todas las búsquedas sin resultados y te permite asociarlas, con un clic, a un producto, una categoría o una URL — como sugerencia mostrada en la página o como redirección automática.
En resumen: detección mediante el hook actionSearch, página de rescate cargada por AJAX, corrección contra el índice nativo, formulario opt-in RGPD, alerta por email con un clic y panel de consultas perdidas. Sin dependencias, sin servicio externo.
Instalación
- En tu back-office, abre Módulos > Gestor de módulos y haz clic en Subir un módulo.
- Selecciona el archivo
dfzerosearch.zipy confirma. - Al instalarse, el módulo crea sus tres tablas SQL, su pestaña de administración (y sus tres subpestañas) y su configuración por defecto.
- El módulo está activo de inmediato. No se requiere ninguna dependencia externa (ni Composer, ni framework).
El módulo es compatible con PrestaShop 8.0 a 9.x, en tienda simple o multitienda, en los cinco idiomas del catálogo (FR, EN, ES, DE, IT).
Configuración (back-office)
Abre la página de configuración del módulo (Módulos > Gestor de módulos > dfzerosearch > Configurar). Los ajustes disponibles son:
- Activar el módulo — activa o suspende la detección y la visualización de la página de rescate.
- Corrección ortográfica — activa el bloque «¿querías decir…?».
- Bloque de categoría — activa las mejores ventas de la categoría adivinada.
- Bloque de más vendidos — activa los más vendidos globales, mostrados solo como último recurso.
- Formulario «avísame» — activa la captura de email en la página de rescate.
- Productos por bloque — número de productos mostrados en cada bloque (8 por defecto, de 1 a 24).
- Longitud mínima de consulta — por debajo de este número de caracteres, la búsqueda no se registra (2 por defecto).
- Retención (días) — tiempo de conservación de las consultas perdidas, con un botón de purga manual (180 días por defecto).
Los valores se almacenan en las variables de configuración DFZS_ENABLED, DFZS_FUZZY, DFZS_CATEGORY_BLOCK, DFZS_BESTSELLERS_BLOCK, DFZS_NOTIFY_FORM, DFZS_NB_PRODUCTS, DFZS_MIN_LENGTH y DFZS_RETENTION_DAYS. Un panel de enlaces rápidos remite a las tres pantallas de administración.
La página de rescate (lado visitante)
En la página de resultados, un script detecta que la rejilla de productos está vacía y luego carga la página de rescate por AJAX a través del controlador front rescue. Los bloques aparecen en este orden:
- Objetivo sugerido — si existe una asociación activa en modo «sugerencia» para la consulta, se destaca su objetivo (producto, categoría o URL).
- «¿Querías decir…?» — la consulta corregida y sus productos, con un enlace a la página de búsqueda corregida real.
- Mejores ventas de la categoría adivinada — a partir de las palabras de la consulta.
- Más vendidos globales — solo si ninguno de los bloques anteriores ha producido un resultado.
- Formulario «avísame» — para capturar el email del visitante para esa consulta.
Las búsquedas que dan resultados nunca se ralentizan: la página de rescate solo se carga cuando la rejilla de resultados está realmente vacía.
Corrección ortográfica y adivinación de categoría
La corrección ortográfica reescribe la consulta palabra por palabra contra el índice de búsqueda nativo de PrestaShop (tabla ps_search_word), con una distancia de Levenshtein adaptada a la longitud de la palabra. Solo se proponen palabras realmente presentes en el índice; luego se relanza la búsqueda real de PrestaShop con la consulta corregida.
La adivinación de categoría confronta las palabras de la consulta con los nombres de las categorías activas de la tienda (coincidencia de subcadena y luego Levenshtein). La categoría mejor puntuada aporta sus mejores ventas.
Toda la lógica es autoalojada: ningún dato sale de tu tienda y no se requiere ninguna clave de API externa.
Panel de consultas perdidas y asociación
La pestaña DF Zero Search reúne tres pantallas:
- Consultas perdidas — todas las búsquedas sin resultados, agregadas, contadas y ordenadas por volumen, con cuatro indicadores clave (total de búsquedas perdidas, consultas distintas, asociaciones activas, alertas en espera). Una acción «Asociar» rellena previamente el formulario de asociación.
- Asociaciones — la lista de asociaciones consulta → objetivo. Un objetivo puede ser un producto, una categoría o una URL, en modo sugerencia (mostrada en la página de rescate) o redirección (el visitante es redirigido automáticamente).
- Suscripciones «avísame» — la lista de emails capturados, con su estado (en espera / notificado).
Formulario «avísame» y alertas
En la página de rescate, un formulario opt-in desmarcado por defecto, protegido por un honeypot antibot, permite al visitante dejar su email para la consulta en curso. Desde el back-office, cuando creas una asociación activa para esa consulta, la acción «Notificar» envía el email dfzerosearch_alert a todos los suscriptores en espera, cada uno en su idioma, y luego los marca como notificados.
No se necesita ningún cron: el envío de las alertas se dispara manualmente, en el momento en que decides que una consulta ha encontrado su objetivo.
Conformidad con el RGPD
- Opt-in explícito: la captura de email se basa en una casilla desmarcada por defecto, con un texto de consentimiento claro.
- Honeypot: un campo oculto filtra los envíos automatizados sin molestar al visitante.
- Retención controlada: las consultas perdidas se purgan automáticamente más allá del número de días configurado, con purga manual disponible en cualquier momento.
- Autoalojamiento: ningún dato se transmite a terceros.
Compatibilidad y convenciones técnicas
- PrestaShop 8.0 a 9.x, multitienda, 5 idiomas.
- Hooks utilizados:
actionSearchyactionFrontControllerSetMedia. - Tablas SQL:
dfzerosearch_query,dfzerosearch_mapping,dfzerosearch_alert. - Pestaña de administración
AdminDfZeroSearchy sus tres subpestañas, bajo el menú Mejorar. - Controlador front
rescueprotegido por token, respuestas JSON. - Sin dependencias: autoloader PSR-4 manual, JS vanilla sin jQuery, sin servicio externo.
Resolución de problemas
- La página de rescate no aparece — comprueba que el módulo está activado, que la búsqueda devuelve realmente cero resultados, y vacía la caché de PrestaShop.
- No se propone ninguna corrección — la corrección solo sugiere palabras presentes en el índice nativo; reindexa la búsqueda de PrestaShop si tu catálogo ha cambiado mucho.
- No aparece ninguna consulta en el panel — asegúrate de que la longitud de las consultas supera el umbral mínimo configurado y de que el módulo está activado.
- Los emails de alerta no se envían — comprueba la configuración de email de PrestaShop y que la acción «Notificar» se haya lanzado realmente sobre una asociación activa con suscriptores en espera.