PS PrestaShop Intermedio

DataFirefly Guía de tallas — Documentación

Guía de tallas modulable, calculadora interactiva, página SEO dedicada y feedback post-compra para PrestaShop 8 y 9.

Actualizado Versión del módulo 1.0.2

Descripción general

DataFirefly Guía de tallas añade a su tienda PrestaShop un sistema completo de guías de tallas modulables por categoría, fabricante o producto, con tablas de equivalencia EU/US/UK/FR/JP, calculadora interactiva de recomendación de talla, página SEO indexable dedicada por categoría, y widget de feedback post-compra con puntuación de sesgo agregada.

El módulo se dirige a tiendas de textil y calzado donde más del 20% de las devoluciones se deben a problemas de talla. Transforma esta fricción en un recorrido de compra tranquilizador: el cliente ve la tabla correcta automáticamente, puede introducir sus medidas para obtener una recomendación personalizada, y usted recoge feedback cualificado que permite detectar productos mal escalados.

Compatibilidad

  • PrestaShop 8.0.x, 8.1.x, 8.2.x, 9.0.x
  • PHP 8.1, 8.2, 8.3
  • Multi-tienda (todas las asignaciones están acotadas por id_shop)
  • Polylang FR/EN/ES/DE listo para usar
  • Temas classic, hummingbird y temas custom (7 posiciones diferentes disponibles)

Instalación

  1. Suba el ZIP dfsizeguide.zip desde Módulos → Module Manager → Subir un módulo.
  2. Haga clic en Instalar. Las 4 tablas preset (textil mujer, textil hombre, calzado mujer, calzado hombre) se crean automáticamente en 4 idiomas, y se crea una asignación por defecto sobre la tabla textil mujer.
  3. Al terminar la instalación, la pestaña «Guía de tallas» aparece en todas sus fichas de producto sin configuración adicional.
  4. Vaya a Módulos → DataFirefly Guía de tallas → Configurar para ajustar las posiciones, la unidad por defecto y las funciones activadas.

Conceptos clave

El resolutor de tablas de 4 niveles

Cuando un cliente llega a una ficha de producto, el módulo busca qué tabla mostrar siguiendo una prioridad estricta:

  1. Producto — si ha asignado explícitamente una tabla a este producto concreto, gana.
  2. Fabricante — si no, la tabla asignada a la marca del producto.
  3. Categoría — si no, la primera categoría del producto que tiene una tabla, empezando por la más profunda (la especificidad gana).
  4. Por defecto — si no, la tabla marcada como fallback global.

Esta jerarquía permite mantener una sola tabla por marca o por sección sin tocar las fichas de producto individuales, conservando la posibilidad de override quirúrgico.

Tipos de columnas

Cada tabla está compuesta de columnas tipadas:

  • Columna «talla» — un solo valor de texto por fila (S, M, 38, XL). Utilizada para las equivalencias internacionales (EU, US, UK, FR, JP).
  • Columna «medida» — un rango numérico min/max por fila (ej. contorno de pecho 88–92 cm). Utilizada para indicar las medidas corporales que corresponden a cada talla.

La calculadora interactiva se apoya exclusivamente en las columnas «medida» para determinar la talla recomendada.

Configuración

Posiciones en la ficha de producto

El módulo expone 7 posiciones activables individualmente en Configurar → Posiciones ficha producto:

  • Pestaña de producto (activada por defecto, recomendada) — hook displayProductExtraContent, añade una pestaña limpia junto a «Descripción» y «Detalles». Funciona en la práctica totalidad de temas PS 1.7+.
  • Bajo el precio — hook displayProductPriceBlock (tipo after_price), renderiza un enlace compacto justo debajo del precio.
  • Cerca del botón «Añadir al carrito» — hook displayProductActions, renderiza un botón compacto.
  • Bajo la información del producto — hook displayProductAdditionalInfo, renderiza un botón prominente.
  • En el bloque de garantías — hook displayReassurance, se integra visualmente con sus otros argumentos (envío, devoluciones).
  • Después de las imágenes del producto — hook displayAfterProductThumbs, renderiza un botón compacto justo bajo la galería.
  • Al pie de la página de producto — hook displayFooterProduct, renderiza un botón prominente al pie de página.

Puede activar varias posiciones en paralelo: la modal de la guía se instancia una sola vez en el DOM (anti-duplicado), y los botones adicionales abren la misma modal.

La pestaña de producto es la única posición que renderiza la tabla inline. Las otras 6 posiciones renderizan un botón que abre la modal.

Parámetros generales

  • Unidad por defecto — cm o pulgadas. El cliente puede cambiar al vuelo, la preferencia se conserva en el cálculo.
  • Calculadora interactiva — activa la introducción de medidas y la recomendación de talla (activada por defecto).
  • Feedback de cliente post-compra — activa el widget que pregunta al cliente si la talla era adecuada (activado por defecto).
  • Datos estructurados JSON-LD — activa la inyección del marcado Schema.org para mejorar el SEO (activado por defecto).
  • Slug página SEO — prefijo de la URL de las páginas de guías dedicadas (por defecto size-guide).

Crear y editar una tabla

Menú Módulos → Guías de tallas → Tablas. Haga clic en «Añadir» para crear una tabla nueva, o en el icono del lápiz para editar una tabla existente.

Campos de la tabla

  • Código interno — identificador técnico único (ej. mujer-vestidos-2026). Utilizado en las URL SEO y en los logs.
  • Tipo — textil superior, textil inferior, vestido, calzado, o custom.
  • Nombre — etiqueta multilingüe mostrada a los clientes (título de la pestaña, título de la modal, h1 de la página SEO).
  • Introducción (HTML) — contenido multilingüe mostrado encima de la tabla.
  • Instrucciones de medida (HTML) — sección plegable que explica cómo tomar cada medida.
  • Pie (HTML) — contenido multilingüe mostrado bajo la tabla (aviso, enlace a política de devoluciones, etc.).
  • Meta title / Meta description — para la página SEO dedicada.
  • Activo — interruptor on/off. Una tabla inactiva nunca se sirve aunque esté asignada.

Editar la tabla

Bajo el formulario de la tabla, un editor visual permite construir el tabla:

  1. Haga clic en Columna talla para añadir una columna textual. Rellene el código (ej. eu, intl) y la etiqueta multilingüe.
  2. Haga clic en Columna medida para añadir una columna numérica. Rellene el código (ej. chest_cm) y la unidad (cm, pulgadas, mm).
  3. Haga clic en Fila para añadir una fila. Rellene las celdas: texto simple para las columnas «talla», valores min/max para las columnas «medida».
  4. Haga clic en Guardar. El guardado se realiza en una transacción SQL atómica — o se guarda todo, o no se guarda nada.

Asignar una tabla

Menú Módulos → Guías de tallas → Asignaciones.

  1. Elija la tabla a asignar en la lista.
  2. Elija el tipo de destino: Por defecto (fallback global), Categoría, Fabricante o Producto.
  3. Según el tipo, aparece un segundo campo para elegir la categoría (en un árbol indentado), la marca (desplegable) o el ID del producto (entrada directa).
  4. Haga clic en Añadir / Actualizar. Si ya existe una asignación para este destino, se sobrescribe (upsert).

Todas las asignaciones están acotadas por tienda en multi-tienda. Puede tener una tabla diferente para la misma categoría en dos tiendas del mismo grupo.

La calculadora de tallas

La calculadora aparece bajo la tabla, únicamente si la tabla tiene al menos una columna «medida».

Algoritmo de puntuación

El cliente introduce sus medidas en los campos (un campo por columna «medida»). Al enviar:

  1. Los valores se normalizan a centímetros (conversión automática si el usuario ha elegido pulgadas: ×2.54).
  2. Para cada fila de la tabla, el módulo calcula una puntuación: +2 puntos si la medida del cliente cae exactamente en el rango min/max de la celda, +1 punto si está cerca (a ±5% del rango), 0 puntos en otro caso.
  3. La fila con la mejor puntuación gana.
  4. Los empates se resuelven escogiendo la fila cuyos rangos están más centrados en los valores del cliente.
  5. La talla recomendada se extrae prioritariamente de la columna eu, luego fr, intl, uk, us, jp.

Retorno usuario

La calculadora muestra la talla recomendada con una puntuación de confianza en porcentaje, el top 3 de candidatas posibles cada una con su puntuación, un resaltado de la fila recomendada en la tabla superior, y la lista de medidas que no coinciden con ninguna fila (con aviso).

Feedback de cliente post-compra

Un widget «¿La talla era adecuada?» aparece al pie de la ficha de producto con 5 opciones: muy pequeño, algo pequeño, perfecto, algo grande, muy grande. Solo se renderiza en las siguientes condiciones:

  • El cliente está autenticado (sesión activa).
  • El cliente ha comprado efectivamente este producto (join con orders y order_detail, estado válido).
  • El cliente no ha dado ya su opinión sobre este producto.

El gating es íntegramente del lado servidor, sin riesgo de bypass.

Panel de feedback

Menú Módulos → Guías de tallas → Feedback cliente. Una síntesis sobre la tabla muestra el número de respuestas en cada categoría de los 5 niveles. Debajo, la lista completa del feedback por producto con el ID del cliente, la talla comprada y la fecha.

Puntuación de sesgo

Para cada producto con al menos 3 feedbacks, se calcula una puntuación de sesgo:

puntuación = ((too_large × 2 + slightly_large) − (too_small × 2 + slightly_small)) / total

Una puntuación positiva indica que el producto talla sistemáticamente grande (a bajar un escalón). Una puntuación negativa indica que talla pequeño (a subir un escalón). Una puntuación cercana a cero indica un buen escalado.

Página SEO dedicada

El módulo expone una ruta pública por categoría: /{slug}/{category-link-rewrite}, donde {slug} es el prefijo configurado (por defecto size-guide).

Ejemplo: https://sutienda.com/size-guide/vestidos-mujer

La página contiene un breadcrumb, el título h1 de la tabla, la introducción, las instrucciones de medida y la tabla completa, la calculadora (si está activada), el pie HTML de la tabla, y un marcado JSON-LD WebPage Schema.org que ayuda a Google a entender que la página es una guía práctica.

Las etiquetas meta title y meta description vienen de los campos SEO de la tabla. Configúrelas correctamente para captar búsquedas long tail tipo «guía tallas vestidos mujer».

Multi-idioma y multi-tienda

El módulo es multilingüe a nivel de tablas (nombre, intro, instrucciones, pie, meta), a nivel de etiquetas de columnas, y a nivel de etiquetas Polylang para las URL.

En multi-tienda, cada asignación (guía → destino) está acotada por id_shop. Puede así mostrar la tabla A para la categoría «Calzado» en la tienda francesa, y la tabla B para la misma categoría en la tienda alemana.

Estructura técnica

Base de datos

7 tablas con prefijo dfsg_: dfsg_guide, dfsg_guide_lang, dfsg_column, dfsg_column_lang, dfsg_row, dfsg_cell, dfsg_assignment, dfsg_feedback. Todas las tablas se eliminan limpiamente en la desinstalación.

Hooks utilizados

  • actionFrontControllerSetMedia — inyección CSS/JS front
  • displayBackOfficeHeader — inyección CSS/JS admin
  • displayProductExtraContent — pestaña ficha producto (recomendado)
  • displayProductPriceBlock, displayProductActions, displayProductAdditionalInfo, displayReassurance, displayAfterProductThumbs, displayFooterProduct — posiciones alternativas
  • displayHeader — inyección JSON-LD en las fichas de producto
  • actionValidateOrder — trigger para futuros recordatorios (v2)
  • moduleRoutes — página SEO dedicada

FAQ

La guía no se muestra en mi ficha de producto, ¿qué hago?

Compruebe primero en Configurar → Posiciones ficha producto que al menos una posición está activada (Pestaña de producto por defecto). Si su tema custom no renderiza los hooks nativos de PrestaShop, active varias posiciones en paralelo: al menos una de las 7 debería funcionar. Compruebe también que existe al menos una tabla activa y una asignación por defecto en Guías de tallas → Asignaciones.

¿Puedo importar tablas desde CSV?

No en la versión 1.0. El editor visual permite construir las tablas al vuelo. La importación CSV está prevista para la versión 1.1.

¿Funciona la calculadora sin JavaScript?

No, la calculadora es interactiva y necesita JavaScript para hacer la llamada AJAX al servidor. Sin embargo, la tabla estática se muestra perfectamente sin JS, lo que preserva la accesibilidad y el SEO.

¿Hay riesgo de marcado JSON-LD duplicado?

No. El hook displayHeader emite un solo script JSON-LD por página de producto, y la página SEO dedicada tiene su propio marcado WebPage distinto. El validador Schema.org de Google no señala ningún duplicado.

¿Compatible con la migración PrestaShop 8 a 9?

Sí. El módulo declara ps_versions_compliancy de 8.0.0 a 9.99.99, usa las clases ObjectModel y HelperForm que siguen soportadas en PS 9, y no usa ninguna API obsoleta.

¿Cómo purgar todos los datos del módulo?

La desinstalación vía Module Manager elimina todas las tablas dfsg_* y todas las configuraciones DFSG_*. No queda ningún rastro en la base de datos.

Soporte

Email: support@datafirefly.com. Respuesta en 5 días laborables en francés o inglés.

¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte