PS PrestaShop Principiante

Prueba Social — Notificaciones de compra y Visitantes — Guía completa

Instalar, configurar y explotar la prueba social ética: notificaciones de compras reales anonimizadas (3 niveles), contador de visitantes en vivo sin cookies, tiempos redondeados, umbral mínimo de visualización y conformidad RGPD para PrestaShop 8 y 9.

Actualizado Versión del módulo 1.0.0

Presentación

El módulo Prueba Social — Notificaciones de compra y Visitantes en vivo añade dos mecanismos de confianza a tus fichas de producto: notificaciones discretas de compras recientes («María L. compró este producto hace 2 h») y una insignia de visitantes en vivo («12 personas están viendo este producto»).

Su rasgo distintivo es su enfoque ético y RGPD desde el diseño: solo muestra pedidos realmente realizados en tu tienda y visitantes realmente presentes. Nunca inventa nada. La anonimización se aplica en el servidor antes de enviar nada al navegador, los tiempos se redondean, ningún dato bruto de cliente queda expuesto y el módulo no instala ninguna cookie.

Compatible con PrestaShop 8.0 a 9.x, multitienda y multilingüe (FR/EN/ES/DE/IT incluidos), sin Composer ni jQuery. Si no hay pedidos recientes o suficientes visitantes, el módulo simplemente no muestra nada.

Instalación

  1. En el back-office, abre Módulos > Gestor de módulos.
  2. Haz clic en Subir un módulo y selecciona el archivo dfsocialproof.zip.
  3. La instalación crea automáticamente la tabla de visitantes y registra los valores de configuración por defecto.
  4. El módulo queda activo inmediatamente en las fichas de producto con ajustes prudentes y funcionales.

No hace falta ningún ajuste para empezar. Por defecto: notificaciones de los pedidos de los últimos 7 días, anonimización «nombre + inicial», contador visible a partir de 3 visitantes simultáneos.

Configuración

La página Configurar se organiza en tres paneles, más un recuadro «Privacy by design» que resume las garantías del módulo.

Notificaciones de compra

  • Activar las notificaciones de compra: interruptor del primer mecanismo.
  • Ventana temporal (horas): solo se muestran los pedidos reales realizados dentro de esta ventana (168 h por defecto, es decir, 7 días). Si no hay ninguno, no se muestra nada.
  • Número máximo de notificaciones: tope por carga de página (5 por defecto).
  • Nivel de anonimización: tres modos detallados en la sección siguiente.
  • Estados de pedido tenidos en cuenta: lista de selección múltiple (Ctrl/Cmd para elegir varios). Solo los pedidos en estos estados generan notificaciones; por defecto, los estados «validados» de tu tienda.

Contador de visitantes

  • Activar el contador de visitantes: interruptor del segundo mecanismo.
  • Ventana de conteo (minutos): un visitante se cuenta mientras está activo dentro de esta ventana (15 min por defecto). Los registros se purgan automáticamente después.
  • Mínimo de visitantes para mostrar: por debajo de este umbral (3 por defecto), la insignia permanece oculta para no señalar nunca a un visitante aislado.

Visualización

  • Posición: esquina donde aparecen las notificaciones (abajo izquierda o abajo derecha).
  • Retardo inicial (segundos): tiempo antes de la primera notificación (4 s por defecto).
  • Intervalo entre notificaciones (segundos): separación entre dos toasts (9 s por defecto).
  • Duración de visualización (segundos): tiempo de visibilidad de cada toast (6 s por defecto).

Las notificaciones se muestran una sola vez por carga de página: sin bucles infinitos que acaban molestando. El visitante puede cerrar los toasts, y esa elección se memoriza durante toda su sesión de navegación.

Los tres niveles de anonimización

El nivel elegido se aplica a todas las notificaciones, y la transformación se realiza en el servidor: el navegador solo recibe el texto final, nunca los datos originales.

  • Nombre + inicial: «María L. compró este producto». El más atractivo, sin dejar de ser no identificativo.
  • Solo ciudad: «Un cliente de Niza compró este producto». La ciudad proviene de la dirección de entrega del pedido.
  • Anonimato completo: «Alguien compró este producto». El más prudente, adecuado para catálogos sensibles.

Tiempos relativos redondeados

Las marcas de tiempo mostradas («hace 2 h», «hace 25 min») están deliberadamente redondeadas — los minutos, a los 5 minutos más cercanos. El objetivo: impedir reidentificar a un cliente cruzando la hora exacta de un pedido con otra información. Es una elección de privacidad desde el diseño, no una aproximación técnica.

Funcionamiento del contador de visitantes

Cada visitante de una ficha de producto se cuenta mediante una huella SHA-256 con sal derivada de la clave secreta de tu tienda (_COOKIE_KEY_). Esta huella nunca se muestra, nunca se expone al navegador y solo sirve para deduplicar las visitas.

  • Sin cookies: el módulo no instala ninguna cookie ni almacenamiento local para contar.
  • Purga automática: los registros caducados se eliminan de la base de datos de forma oportunista, sin tarea cron que configurar.
  • Umbral de dignidad: por debajo del mínimo configurado, la insignia desaparece — un visitante solo nunca es señalado como «1 persona está viendo este producto».
  • Actualización: el contador se actualiza cada 60 segundos mediante una petición AJAX ligera.

Privacy by design y RGPD

  • Solo pedidos reales: ningún dato inventado, nunca. La credibilidad de tu tienda queda preservada y te mantienes en el lado correcto del derecho del consumo (prácticas comerciales engañosas).
  • Anonimización en el servidor: los textos llegan al navegador ya anonimizados y formateados. Ningún dato bruto de cliente (nombre completo, email, dirección) viaja al front-office.
  • Respuestas AJAX sin caché: las cabeceras impiden cualquier almacenamiento intermedio de los textos.
  • Huellas purgadas: la tabla de visitantes se limpia sola, la retención se limita al mínimo estricto.
  • Cero cookies, cero recursos externos: nada que añadir a tu banner de consentimiento por este módulo.

Un panel «Privacy by design» en el back-office resume estas garantías: puedes presentarlo tal cual a tu DPO o anexarlo a tu registro de actividades de tratamiento.

Accesibilidad y rendimiento

  • Toasts anunciados con aria-live polite para los lectores de pantalla.
  • Respeto de prefers-reduced-motion: las animaciones se desactivan si el visitante lo solicita.
  • Modo oscuro soportado automáticamente.
  • JavaScript vanilla sin jQuery, recursos cargados solo en la página de producto: impacto insignificante en la velocidad.

Compatibilidad técnica

  • PrestaShop: 8.0 a 9.x.
  • PHP: 7.4 a 8.x.
  • Hooks: actionFrontControllerSetMedia (recursos y configuración front, solo página de producto) y displayProductAdditionalInfo (insignia de visitantes).
  • Multitienda y multilingüe soportados (traducciones FR/EN/ES/DE/IT incluidas).
  • Sin dependencias Composer, sin jQuery.

FAQ

¿El módulo inventa compras o visitantes?

No, nunca. Las notificaciones provienen únicamente de pedidos realmente registrados, y el contador solo cuenta visitantes realmente presentes. Sin datos, el módulo no muestra nada.

¿Qué pasa si mi tienda tiene pocos pedidos?

Amplía la ventana temporal (por ejemplo, 336 h para 14 días): las notificaciones siguen siendo verdaderas, solo la marca de tiempo relativa es más antigua. El módulo nunca llenará un vacío con datos falsos.

No. Se basa en una huella SHA-256 con sal calculada en el servidor, nunca expuesta y purgada automáticamente. Ningún consentimiento adicional que recabar.

¿Es compatible con PrestaShop 9 y multitienda?

Sí, de PrestaShop 8.0 a 9.x, con soporte nativo de multitienda.

Solución de problemas

  • No se muestra ninguna notificación: comprueba que existen pedidos dentro de la ventana temporal con uno de los estados seleccionados. Es el comportamiento normal del módulo cuando no hay datos reales.
  • El contador de visitantes no aparece: el número de visitantes activos probablemente está por debajo del umbral mínimo. Baja el umbral o prueba con varios navegadores/dispositivos a la vez.
  • Las notificaciones no reaparecen: si el visitante cerró un toast, esa elección se memoriza para la sesión. Abre una ventana de navegación privada para probar de nuevo.
  • La insignia no se actualiza: la actualización se realiza cada 60 segundos; comprueba también que ninguna caché agresiva bloquea las peticiones AJAX del controlador front.
¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte