Elasticsearch Search & Faceted Navigation. Este módulo sustituye la lenta búsqueda SQL de PrestaShop por un motor de búsqueda real, Elasticsearch, OpenSearch o Meilisearch, y añade una navegación por filtros moderna y totalmente configurable. Los clientes obtienen autocompletado instantáneo con miniaturas y precios, resultados tolerantes a errores tipográficos y una experiencia de “Filtros” clara en un moderno panel modal. Los precios son siempre los precios exactos y nativos para cada grupo de clientes y divisa. Para empezar no hace falta ningún servidor externo: en cuanto activas su interruptor principal, funciona con la búsqueda nativa de PrestaShop, y puedes conectar un motor de búsqueda cuando quieras.

Este módulo sustituye la lenta búsqueda SQL de PrestaShop por un motor de búsqueda real, Elasticsearch, OpenSearch o Meilisearch: y añade una navegación por filtros moderna y totalmente configurable. Los clientes obtienen autocompletado instantáneo con miniaturas y precios, resultados tolerantes a errores tipográficos y una experiencia de “Filtros” clara en un moderno panel modal. Los precios son siempre los precios exactos y nativos para cada grupo de clientes y divisa. Para empezar no hace falta ningún servidor externo: en cuanto activas su interruptor principal, funciona con la búsqueda nativa de PrestaShop, y puedes conectar un motor de búsqueda cuando quieras.

1. Instalación

  1. En el back office ve a Módulos → Gestor de módulos → Subir un módulo y selecciona el ZIP del módulo.
  2. Una vez instalado, haz clic en Configurar para abrir el panel del módulo.
  3. El módulo se instala por defecto con el motor “Nativo (PrestaShop)” y con el interruptor principal Activar la búsqueda en el front-office en No, de modo que nada cambia para los clientes hasta que tú lo decidas. Ponlo en Sí en la pestaña Ajustes de búsqueda y guarda: la búsqueda, los filtros y el autocompletado funcionan entonces directamente desde tu catálogo, sin servidor externo. El módulo requiere PrestaShop 1.7.7 o posterior y PHP 7.1 o posterior.
Las actualizaciones son automáticas. Las actualizaciones están incluidas. Los dominios de desarrollo (.local, .test, localhost) siempre están permitidos. Cuando hay una nueva versión disponible, se muestra directamente dentro del módulo. Si el servidor web no puede escribir en la carpeta del módulo, un aviso lo indica en la página que se abre con Configurar, para que puedas corregir los permisos antes de que falle una actualización.

Si en lugar de la confirmación lees «Upload failed», PrestaShop puede haber desactivado el módulo sin decírtelo: los ajustes y los datos se quedan donde están. Cómo actualizar un módulo, y qué hacer si dice «Upload failed».

2. Elegir un motor de búsqueda

Abre la pestaña Conexiones y elige tu Motor. Todo lo demás en el módulo se comunica con el motor a través de una única capa de abstracción, de modo que el front office se comporta igual sea cual sea el backend elegido.

Opciones de motor

  • Nativo (PrestaShop): sin motor externo y sin nada que indexar. El módulo busca y filtra directamente en la base de datos de PrestaShop. Úsalo para ponerte en marcha ya y conectar un motor más adelante; la tienda nunca se queda sin una búsqueda funcional.
  • Elasticsearch: compatible con las versiones principales 6, 7, 8 y 9 con detección automática de versión.
  • OpenSearch: se detecta automáticamente y se gestiona como un clúster moderno sin tipos, sea cual sea su versión 1.x/2.x/3.x.
  • Meilisearch: una alternativa ligera y fácil de alojar; tus campos indexables, filtros, sinónimos, palabras vacías y tolerancia a errores tipográficos se mapean a Meilisearch automáticamente.

Ajustes de conexión

  • Host: la URL completa de tu motor (puede incluir un prefijo de ruta, por ejemplo https://cluster.provider.com/my-space).
  • Ruta base: un prefijo de ruta opcional que se antepone a cada petición, para espacios de búsqueda alquilados en instancias compartidas.
  • Prefijo de índice: un espacio de nombres que aísla tus índices, de modo que varias tiendas puedan compartir un mismo motor de forma segura. Una instalación nueva recibe su propio prefijo aleatorio (ps_cll_ seguido de seis caracteres); una instalación actualizada desde una versión anterior conserva el suyo.
  • Autenticación: para Elasticsearch/OpenSearch: HTTP Basic o clave API; para Meilisearch: una clave Bearer maestra o restringida. Una vez guardadas, la contraseña o la clave API no se vuelven a mostrar en la página: deja el campo vacío para conservarlas (para el mismo servidor), escribe una nueva para sustituirlas o marca la casilla para eliminarlas.
  • Probar conexión: comprueba que el motor es accesible y muestra la versión detectada.
Connections tab
Conexiones: elige el motor (incluido “Nativo”), añade uno o varios servidores, prueba la conexión y define un prefijo de índice
Reindexa después de cambiar de motor (o tras modificar los ajustes del analizador). El back office te avisa cuando es necesaria una reindexación: tras actualizar desde una versión anterior a la 4.21.0, un motor externo necesita una reindexación completa, porque el índice registra ahora qué grupos de clientes pueden ver cada producto y cada categoría. Hasta que el nuevo motor esté indexado, el sistema de reserva automático sigue ofreciendo resultados.

3. Comportamiento de la búsqueda

Sustituir la búsqueda del sitio

Activa Sustituir la búsqueda del sitio para que cada búsqueda y listado de categoría sea servido por el motor a través del proveedor nativo de productos de PrestaShop, sin tocar la plantilla. Si el motor deja de estar disponible en algún momento, o responde a un listado con un error, el módulo vuelve automáticamente a la búsqueda nativa para que la tienda nunca muestre un error. Un motor que deja de responder se deja de lado durante 30 segundos antes de una sola comprobación rápida, de modo que un motor lento o bloqueado nunca frena las páginas de la tienda; los cambios de productos que no recibió mientras tanto los envía la siguiente llamada del cron. Si ps_facetedsearch sigue activo, la página de configuración del módulo te avisa (con un botón “No volver a mostrar este aviso” para una tienda que lo mantiene activo a propósito), ya que normalmente solo debe haber un módulo de filtros en funcionamiento.

Grupos de clientes, precios ocultos y códigos exactos

Los productos y categorías reservados a algunos grupos de clientes siguen reservados: el módulo aplica la regla de PrestaShop (un producto solo se ve cuando una de sus categorías activas está abierta a uno de los grupos del cliente) a los resultados de búsqueda, los filtros y sus recuentos, el autocompletado, los atajos por categoría, los productos destacados y la página sin resultados. Los precios también siguen a PrestaShop: una sugerencia muestra el precio, y el filtro de precio aparece, solo cuando el propio PrestaShop mostraría los precios a ese cliente. Una búsqueda que es exactamente una referencia, un EAN-13, un UPC o un MPN lista solo los productos que lo llevan.

Relevancia y ajuste fino

El panel de ajustes de búsqueda te permite dar forma a la relevancia sin tocar código:

  • Pesos de campo: cuánto cuentan el nombre, la referencia, la descripción, etc. en la puntuación.
  • Tipo de coincidencia y operador: la estrategia multi_match y si las palabras se combinan con AND u OR.
  • Tolerancia a errores y coincidencia mínima: cuán permisiva es la tolerancia a errores tipográficos y cuántas palabras deben coincidir.
  • Longitud mínima de palabra y el alcance de los campos indexables por tipo de documento. Un término más corto no se ignora: los términos de dos letras como “tv” se buscan de forma exacta, sin tolerancia a errores tipográficos.
  • Análisis de idioma: sinónimos, palabras vacías, lematizador por idioma (con exclusiones), elisión, minúsculas y coincidencia por n-gramas (infijo) para palabras parciales.
Search settings tab
Ajustes de búsqueda: interruptores principales, filtros del analizador (sinónimos, palabras vacías, lematizador) y ajuste fino de la consulta

4. Navegación por filtros

La navegación por filtros es una experiencia moderna por AJAX, sin recargas de página, con un modo de barra lateral clásica disponible como alternativa (opción Interfaz de filtros: modal o barra lateral).

El moderno panel de filtros modal

  • Encima de la cuadrícula de productos hay un botón “Filtros”, el número de resultados en vivo y chips eliminables para cada valor aplicado (“Borrar todo” los elimina todos).
  • Al hacer clic en Filtros se abre un modal de dos paneles: los nombres de los filtros a la izquierda (con una insignia cuando un filtro está en uso), los valores del filtro seleccionado a la derecha, y un botón en vivo “Mostrar N resultados” en el pie.
  • Los filtros con muchos valores se agrupan de A a Z con un cuadro de “buscar dentro de este filtro”; los colores se muestran como muestras de color; el precio muestra campos de mínimo/máximo más un control deslizante de doble extremo.
  • En móvil el modal ocupa toda la pantalla: toca el nombre de un filtro para ver sus valores, usa la flecha atrás para volver, y confirma con una barra fija inferior “Mostrar N resultados”.
  • Todo se actualiza por AJAX con URLs que se pueden compartir (los botones atrás/adelante funcionan), y existe una alternativa sin JavaScript porque cada control es un control de formulario real.

Configurar cada filtro

Para cada filtro puedes controlar: activado/desactivado, orden, etiqueta por idioma, tipo de visualización (casilla, botón de opción, desplegable, muestra de color para los grupos de color, o un control deslizante para el precio, las medidas y las características numéricas), modo AND/OR, si se muestran los recuentos, el estado plegado, un límite de valores con “ver más”, y ocultar si está vacío. Fuentes disponibles: categorías, marcas, características, atributos, precio, disponibilidad, novedad, en oferta y estado. Los filtros también pueden mostrarse en la página de resultados de búsqueda y, con un interruptor, en las páginas de marca, proveedor, novedades, ofertas y más vendidos, no solo en las categorías. En Elasticsearch y OpenSearch cada grupo de características o atributos se cuenta con las selecciones de los demás grupos aplicadas, así que elegir un color también actualiza los números junto a las tallas (en el motor nativo y en Meilisearch cada grupo se sigue contando por separado).

Facets tab
Filtros: activa, ordena, etiqueta y da estilo a cada filtro (casilla, botón de opción, desplegable, muestra de color, control deslizante) con AND/OR, recuentos y límites

Plantillas de filtros por categoría Filters Pro

Una plantilla de filtros es una configuración de filtros con nombre y reutilizable que puedes asignar a una o varias categorías, de modo que distintas categorías puedan mostrar un conjunto de filtros diferente y reordenado. En la pestaña Plantillas de filtros creas una plantilla con el mismo editor de filtros que la configuración global, además de un árbol de categorías y una opción de “aplicar también a las subcategorías”. La configuración global de Filtros es la plantilla predeterminada: la opción de reserva para cualquier categoría sin plantilla propia, y para la página de búsqueda.

Filter templates tab
Plantillas de filtros: asigna un conjunto de filtros distinto y reordenado a categorías específicas; la fila Predeterminada es la opción de reserva global

5. Autocompletado

Mientras el cliente escribe, el módulo sugiere productos, categorías, marcas y páginas CMS: cada uno etiquetado por tipo, con miniaturas de producto y el precio nativo correcto (solo cuando PrestaShop mostraría los precios a ese cliente), y con tolerancia a errores tipográficos para que los pequeños fallos sigan encontrando coincidencias. Hay dos presentaciones disponibles (Estilo de autocompletado en Salida):

  • Desplegable: un panel de sugerencias que se abre debajo de la barra de búsqueda. El estilo clásico y compacto.
  • Superposición de búsqueda a pantalla completa: una gran barra de búsqueda fija con resultados a pantalla completa, para una experiencia más audaz centrada en la búsqueda.
Output tab
Salida: opciones de resultados y listado y el estilo de Autocompletado (desplegable o superposición a pantalla completa) con sus opciones de sugerencia

6. Precios correctos

Precios correctos por grupo y divisa

El precio que ve un cliente es siempre el precio nativo de PrestaShop. Los precios se indexan por grupo de clientes × divisa, tienen en cuenta specific_price y el impuesto por país, y el valor correcto se elige en el momento de la consulta. Esto significa que el filtro de precio opcional y la ordenación por precio son precisos para cada comprador, un grupo mayorista y un grupo minorista ven y ordenan cada uno según sus propios precios.

Precios personales para B2B Avanzado

En la pestaña Avanzado puedes activar los precios personales. Para clientes B2B que tienen una lista de precios individual (un specific_price asignado al cliente), la ordenación y el filtrado por precio pueden usar su precio personal exacto en lugar del precio de grupo. Un límite configurable (fijo, o automático según el espacio en disco libre del motor) controla para cuántos clientes se precalcula esto, y puede mostrarse un aviso opcional por idioma a esos compradores.

Advanced tab
Avanzado: activa los precios personales (por cliente) para la ordenación y el filtrado B2B, con un límite configurable

7. Páginas SEO de filtros

Las combinaciones infinitas de filtros inundarían a Google, así que por defecto cada URL filtrada se sirve como noindex,follow. La pestaña Páginas SEO de filtros te permite hacer lo contrario para las combinaciones que importan: incluir en una lista blanca una selección concreta (por ejemplo categoría + marca + color) como página de destino indexable con un título meta, descripción meta, H1 y texto introductorio personalizados por idioma.

  • Una página coincidente se fuerza a index y recibe un canonical autorreferenciado hacia la URL filtrada, de modo que realmente puede posicionarse.
  • Tu H1 y tu introducción personalizados se muestran encima del listado de productos; el campo H1 tiene el aspecto del título de la página pero se genera como encabezado de segundo nivel, porque el tema ya imprime el H1 propio de la página.
  • El resto de combinaciones filtradas permanecen como noindex,follow.
  • El listado del back office muestra la URL en vivo de cada página, lista para enviar o enlazar.
SEO filter pages tab
Páginas SEO de filtros: incluye en lista blanca una combinación de filtros como página de destino indexable con título, descripción, H1 e introducción personalizados
Si otro módulo SEO también emite un canonical en las URLs filtradas, pueden aparecer ambos. Desactiva el canonical de ese módulo para los listados filtrados, de modo que solo quede el nuestro (la URL propia correcta).

8. Analítica de búsqueda

La pestaña Analítica de búsqueda muestra lo que los clientes buscan realmente, registrado a partir de páginas de resultados reales, nunca de las pulsaciones del autocompletado, y almacenando solo el texto de la consulta (sin datos personales). Elige un rango de fechas (últimos 7 / 30 / 90 días) y consulta los KPI (búsquedas totales, consultas únicas, número y porcentaje de resultados vacíos), una tabla de Búsquedas más frecuentes y, sobre todo, una tabla de Búsquedas sin resultados: las búsquedas que no encontraron nada, es decir, ventas perdidas. Cada fila sin resultados tiene un atajo de un clic “Añadir sinónimo” para poder solucionarlo al instante. El registro se puede desactivar y las filas antiguas se eliminan automáticamente tras un periodo de retención configurable. Un término cuenta una sola vez por visitante y por día, y un visitante registra como máximo 30 búsquedas al día, de modo que un solo visitante no puede inflar las cifras.

Search analytics tab
Analítica de búsqueda: KPI, Búsquedas más frecuentes y la tabla de Búsquedas sin resultados con un atajo de un clic “Añadir sinónimo”

9. Reindexación y cron

El motor necesita un índice de tu catálogo. El módulo indexa productos, categorías, marcas y páginas CMS, cada uno en su propio índice, y los mantiene actualizados en tiempo real a medida que guardas, añades o eliminas productos y cambia el stock.

  • Asistente de reindexación: una reindexación guiada, por lotes y reanudable, con barra de progreso. Ejecútala tras la primera conexión al motor, tras cambiar de motor, tras modificar los ajustes del analizador o tras cambiar los grupos de clientes que pueden ver una categoría. Solo se reconstruye un índice a la vez, así que el cron y el botón nunca deshacen el trabajo del otro.
  • URL de cron: una URL protegida por token que puedes invocar desde una tarea programada (o CLI) para mantener el índice actualizado automáticamente; también envía los cambios de productos que quedaron en cola mientras el motor no respondía y elimina las filas de analítica antiguas.
  • Eliminar datos indexados: borra los índices del motor cuando quieras una reconstrucción limpia.
Documents tab
Documentos: elige qué tipos de documento se indexan (productos, categorías, marcas, CMS) y los campos indexables por tipo

10. Multitienda y hosting compartido

Multitienda

Los ajustes de conexión y de motor son por tienda. En un contexto “todas las tiendas” se guardan de forma global; en un contexto de una sola tienda se guardan para esa tienda, con una opción de reserva global. Esto significa que tiendas distintas pueden apuntar a motores o clústeres diferentes, mientras que una instalación de tienda única se comporta exactamente igual que antes.

Hosting compartido / espacio de búsqueda alquilado

No necesitas tu propio clúster dedicado. Apunta el Host a un endpoint compartido con un prefijo de ruta, configura la Ruta base y un Prefijo de índice (espacio de nombres), y añade la clave API del proveedor. Cada petición queda restringida a tu prefijo, de modo que tus datos permanecen aislados en una instancia compartida, y funciona igual en Elasticsearch, OpenSearch y Meilisearch.

11. Preguntas frecuentes

¿Necesito Elasticsearch para empezar?

No. El módulo se instala con el motor “Nativo (PrestaShop)”: pon “Activar la búsqueda en el front-office” en Sí y la búsqueda, los filtros y el autocompletado funcionan directamente desde tu catálogo, sin servidor externo. Conecta Elasticsearch, OpenSearch o Meilisearch cuando estés listo.

¿Qué ocurre si mi motor de búsqueda se cae?

El módulo vuelve automáticamente a la búsqueda nativa, de modo que los clientes siempre pueden buscar: la tienda nunca muestra un error. Un servidor que deja de responder se deja de lado durante 30 segundos antes de una sola comprobación rápida, así que no frena las páginas, y los cambios de productos que no recibió los envía la siguiente llamada del cron.

¿Son correctos los precios que ven los clientes?

Sí. El precio mostrado es siempre el precio nativo de PrestaShop. El motor solo se utiliza para filtrar y ordenar, usando precios indexados por grupo de clientes y divisa (y, opcionalmente, el precio personal de cada cliente B2B).

¿Entrará en conflicto con ps_facetedsearch?

Normalmente solo debe haber un módulo de filtros activo. La página de configuración del módulo te avisa si ps_facetedsearch sigue activado, con un botón Desactivar; si lo mantienes activo a propósito, “No volver a mostrar este aviso” oculta el recordatorio.

¿Pueden mostrar filtros distintos categorías diferentes?

Sí. Crea plantillas de filtros y asígnalas a categorías (incluyendo opcionalmente las subcategorías). Las categorías sin plantilla usan la predeterminada global.

¿Qué motor debería elegir?

El motor nativo no necesita servidor y es con el que empieza cada instalación. Elasticsearch es la opción más habitual para catálogos grandes; OpenSearch es un equivalente directo. Meilisearch es el más ligero de alojar y encaja muy bien en hosting compartido o catálogos más pequeños.

Cargando...
Volver arriba