Formulario de contacto PrestaShop: enrutar cada solicitud por asunto

Un formulario de contacto por asunto en PrestaShop: campos condicionales, enrutamiento al equipo correcto, adjuntos protegidos, límites antispam, consentimiento RGPD y la licencia 2.0.1.

Formulaire de contact PrestaShop : router chaque demande par sujet

Un cliente informa de una avería, otro pide un presupuesto y un tercero quiere devolver un artículo. No deberían rellenar el mismo formulario. Dynamic Contact Form sustituye el formulario de contacto de PrestaShop por un formulario por asunto: los campos aparecen según las respuestas, la solicitud llega al departamento correcto y queda disponible en el back office. Esta guía explica cómo configurarlo, qué hace y qué no hace.

¿Para qué sirve un formulario de contacto dinámico por asunto?

Hace a cada cliente las preguntas de su motivo y envía la solicitud al departamento correspondiente, en lugar de imponer los mismos campos a todos.

El formulario nativo de PrestaShop ofrece un correo, un asunto y un mensaje, sea cual sea el motivo. Después su equipo responde para pedir el número de pedido, la cantidad o una foto. Con un formulario por asunto esas preguntas llegan en el momento adecuado y el cliente no tiene que describir dos veces su problema. Un asunto sin formulario mantiene un formulario simple: correo, mensaje y archivo adjunto.

El módulo conviene a las tiendas que reciben varios tipos de solicitud: posventa, devoluciones, presupuestos, colaboraciones, dudas sobre la entrega. También es útil cuando varias personas atienden los mensajes, o cuando una parte del formulario debe quedar reservada a un grupo de clientes.

No es necesario si la tienda tiene una sola dirección y un solo tipo de solicitud: el formulario nativo basta. No sustituye a un software de soporte completo ni a una herramienta de presupuestos. Requiere PrestaShop 1.7.8, 8.0+ o 9.0+ y PHP 7.4; las versiones 1.7.7 y anteriores no son compatibles.

La ficha del módulo detalla sus funciones: Dynamic Contact Form.

¿Cómo se crea un formulario por asunto, paso a paso?

Primero cree el asunto en Parámetros de la tienda > Contacto > Contactos, y después un formulario para ese asunto en Módulos > Gestor de módulos > Dynamic Contact Form > Configurar.

La página Configurar lleva a Gestionar los formularios y Abrir las solicitudes. Las páginas Formularios y Solicitudes tienen tres enlaces: Formularios, Solicitudes y Ajustes.

La página Configurar con una licencia activa: clave enmascarada, dominio, fecha de caducidad y días restantes, y debajo Gestionar los formularios, Abrir las solicitudes y el panel Antispam.
La página Configurar con una licencia activa: clave enmascarada, dominio, fecha de caducidad y días restantes, y debajo Gestionar los formularios, Abrir las solicitudes y el panel Antispam.
  1. En Formularios, pulse Añadir un formulario y elija su asunto de contacto.
  2. Deje Activo marcado, elija los grupos de clientes si el asunto está restringido y marque Referencia de pedido para que los clientes conectados indiquen su pedido.
  3. Active Consentimiento RGPD y escriba el texto del consentimiento si el formulario debe pedir conformidad. Después guarde: aparece el panel Campos.
  4. Pulse Añadir un campo y elija el tipo entre los nueve disponibles (texto (una línea), texto (varias líneas), lista desplegable, botones de opción, casilla, varias casillas, fecha, archivo, bloque de información). Escriba después la etiqueta, el texto indicativo y la ayuda en cada idioma, y marque Obligatorio si la respuesta es necesaria.
  5. Para una lista o casillas, añada las respuestas una a una, o péguelas una por línea con Añadir estas respuestas.
  6. Para un campo de texto, en Comprobación, elija el valor esperado: correo electrónico, dirección web, teléfono, número o expresión regular personalizada.
  7. En Condición, elija el campo del que depende este y las respuestas que deben hacerlo aparecer.

La tabla de campos escribe cada condición con palabras, por ejemplo «Se muestra si Motivo es uno de Avería, Devolución». Una condición depende de otro campo y no se combina en dos niveles: un campo que depende de otro no puede ser probado a su vez por un tercero. El navegador y el servidor aplican las mismas reglas, y un campo oculto no es obligatorio ni se guarda.

Termine con Verlo en la tienda: elija el asunto en la página de contacto y rellene el formulario como un cliente. La documentación del módulo describe cada pantalla. Para que el formulario siga siendo utilizable por todos, la auditoría de accesibilidad EAA analiza sus páginas reales, contrastes incluidos.

¿Cómo se enruta cada solicitud al departamento correcto?

Cada formulario va a la dirección de su asunto, y una ruta puede sustituir o completar ese destinatario según la respuesta a una lista.

El panel Correo a su equipo ajusta las direcciones y el asunto. Copia a y Copia oculta a añaden direcciones fijas a cada solicitud. Asunto del correo acepta variables: {firstname}, {lastname}, {email}, {order_reference}, {reference}, {subject}, {shop_name} y {field:clave} para la respuesta a un campo.

En Rutas, elija un campo de tipo lista, una o varias respuestas, después los destinatarios, y decida si la solicitud va en lugar de la dirección del asunto o además de ella. Un ejemplo habitual: cuando la respuesta a Motivo es Devolución, la solicitud va al equipo de devoluciones; cuando es Avería, soporte queda en copia.

Pruebe cada ruta antes de abrirla: envíe una solicitud por respuesta, revise la bandeja del destinatario y abra la pestaña Solicitudes, donde la solicitud debe aparecer con sus respuestas. Si un mensaje no llega, revise la dirección del asunto en Parámetros de la tienda > Contacto > Contactos y las direcciones de la ruta.

Si una solicitud de presupuesto debe convertirse después en un pedido con precio negociado, el módulo Presupuesto B2B toma el relevo; la página de contacto sigue siendo el punto de entrada.

¿Cómo se aceptan archivos adjuntos sin exponer la tienda?

Añada un campo de tipo Archivo al formulario: fija los tipos aceptados, el tamaño máximo y el número de archivos, y los archivos se guardan fuera de la carpeta pública.

El campo archivo funciona sin código. En los ajustes del campo enumera las extensiones aceptadas, por ejemplo pdf, png o jpg. En la pestaña Ajustes, el panel Solicitudes, archivos y privacidad fija el tamaño máximo de un archivo y el de los archivos adjuntos al correo de su equipo.

Los archivos se inspeccionan por su contenido cuando la extensión fileinfo de PHP está disponible; sin ella solo se controla la extensión. Se renombran al azar, se guardan fuera de la carpeta pública y se pueden descargar desde la solicitud, sin abrirse nunca en el navegador. Los archivos mayores que el límite de correo quedan en el back office; compruebe el espacio en disco del alojamiento si acepta archivos grandes.

¿Cómo frenar el spam sin espantar a los clientes?

El módulo acumula varias barreras antes del captcha: límites por hora y por dirección o correo, un tiempo mínimo de relleno, un límite de enlaces y un campo trampa invisible.

Estos ajustes están en la pestaña Ajustes, panel Antispam. Los valores por defecto son 10 solicitudes por hora y por dirección, 5 por hora y por correo, 3 segundos de relleno mínimo y 3 enlaces por mensaje. Adáptelos a su tráfico: un límite demasiado bajo rechaza a un cliente con prisa, un límite demasiado alto deja pasar a los robots.

Un token de seguridad acompaña cada envío, y un campo trampa invisible detiene a los robots más simples. Puede añadir Cloudflare Turnstile o Google reCAPTCHA con sus propias claves; el módulo pregunta entonces qué hacer si el servicio no responde: aceptar la solicitud o rechazarla.

El módulo no depende de un captcha: límites, tiempo mínimo y campo trampa se aplican incluso sin él. Un desarrollador puede usar el gancho actionWeprestaDcfSubmitBefore para aceptar o rechazar una solicitud con sus propias reglas.

¿Qué hace el módulo por el RGPD y qué no hace?

Recoge un consentimiento con su texto, guarda su fecha, deja que el módulo oficial de RGPD exporte o borre solicitudes y las elimina después del plazo que usted fija.

Cada formulario puede mostrar una casilla de consentimiento con su texto, HTML incluido, o la del módulo oficial de RGPD si está activo. La fecha del consentimiento se guarda con la solicitud. El módulo oficial de RGPD de PrestaShop puede exportar o borrar las solicitudes de un cliente, como hace con los demás datos de la tienda.

En Ajustes, el panel Solicitudes, archivos y privacidad permite conservar las solicitudes y borrarlas tras un número de días; el valor 0 las guarda hasta que las borre a mano. La exportación CSV está disponible por asunto y por fechas en la pestaña Solicitudes.

Lo que el módulo no hace: no escribe su política de privacidad, no elige la base legal de sus tratamientos y no hace que su tienda cumpla por sí solo. El consentimiento, la conservación y los avisos siguen siendo su decisión, que debe validar con su asesor jurídico. Tampoco sustituye al módulo oficial de RGPD: se conecta a él.

Las solicitudes contienen datos personales: el acceso al back office merece una protección propia. El módulo 2FA de back office añade un código de un solo uso tras la contraseña.

¿Qué cambia la versión 2.0.1 cuando la licencia deja de ser válida?

La versión 2.0.1 retira el formulario simple que seguía sin licencia. El módulo se desactiva por completo; sus formularios, solicitudes y ajustes quedan en la base de datos y sus archivos en el servidor.

En la práctica, la página de contacto muestra de nuevo el formulario nativo de PrestaShop si su tienda lo usaba antes, y las páginas Formularios y Solicitudes se cierran, incluida la descarga de archivos. La entrada de menú del módulo desaparece. La página Configurar sigue abierta. Durante ese tiempo el módulo oficial de RGPD ya no recibe las solicitudes de este módulo, y su eliminación automática queda suspendida.

La vuelta se hace desde la página Configurar: active o renueve la licencia y el módulo se reactiva con sus formularios, en lugar del formulario nativo.

Una licencia pagada no se desactiva por una respuesta pasajera. Durante los siete días siguientes a la fecha de caducidad guardada el módulo funciona sin contactar con el servidor; después comprueba como máximo una vez por hora si la suscripción se ha renovado. Un error, un límite de peticiones, un reloj desajustado o un servidor inaccesible no hacen caducar la licencia: esos incidentes se toleran durante siete días desde el primero. Una respuesta concluyente se aplica de inmediato: licencia caducada, suspendida o revocada, licencia desconocida, dominio o firma incorrectos. La visita que lanza la comprobación puede esperar hasta tres segundos; la siguiente comprobación llega al menos una hora después.

En multitienda, active la licencia desde «Todas las tiendas»: una licencia activada en una sola tienda no la ven las demás, que se desactivan en su primera petición.

Con una licencia caducada, Configurar muestra el aviso y el formulario de activación; los formularios, solicitudes y ajustes siguen en su sitio.
Con una licencia caducada, Configurar muestra el aviso y el formulario de activación; los formularios, solicitudes y ajustes siguen en su sitio.

Preguntas frecuentes

¿Cómo hago que una solicitud llegue al equipo de posventa y no a la dirección general?
Cree un formulario para el asunto Posventa y después una ruta en el panel Correo a su equipo. Elija el campo Motivo, la respuesta Avería o Devolución, la dirección del equipo y la opción «en lugar de la dirección del asunto». Pruebe con una solicitud por respuesta y revise la bandeja del equipo y la pestaña Solicitudes.
¿Se pueden aceptar archivos adjuntos sin tocar el código del tema?
Sí. Añada un campo de tipo Archivo al formulario y elija las extensiones aceptadas, el tamaño máximo y el número de archivos. Los archivos se guardan fuera de la carpeta pública y se descargan desde la solicitud. El tamaño de los adjuntos al correo del equipo se ajusta aparte en Ajustes, panel Solicitudes, archivos y privacidad.
¿Basta el módulo para frenar el spam cuando el reCAPTCHA no lo bloquea todo?
El módulo no depende solo del captcha. Los límites de solicitudes por hora y por dirección o correo, el tiempo mínimo de relleno, el límite de enlaces y el campo trampa se aplican incluso sin captcha. Cloudflare Turnstile o Google reCAPTCHA son opcionales, con sus claves, y usted decide si se acepta o se rechaza una solicitud cuando el servicio no responde.
¿Qué pasa con mis formularios y solicitudes si caduca la licencia?
Se conservan. Sin licencia válida el módulo se desactiva: la página de contacto vuelve al formulario nativo de PrestaShop si su tienda lo usaba antes, y las páginas Formularios y Solicitudes se cierran. Sus formularios, solicitudes y ajustes siguen en la base de datos, sus archivos en el servidor. Tras la renovación, abra Configurar: el módulo se reactiva con sus formularios.
¿Puede aparecer un campo solo para ciertos motivos?
Sí. En el editor de campo, la sección Condición permite elegir otro campo y las respuestas que deben hacer aparecer este. Por ejemplo, el número de pedido aparece solo si Motivo es uno de Avería, Devolución. El navegador y el servidor aplican la misma regla, y un campo oculto no es obligatorio ni se guarda.
¿Cuánto tiempo se conservan las solicitudes?
Usted decide. En Ajustes, el panel Solicitudes, archivos y privacidad fija un número de días tras el cual se borran las solicitudes; el valor 0 las guarda hasta que las borre a mano. La exportación CSV sigue disponible por asunto y por fechas, y el módulo oficial de RGPD puede exportar o borrar las solicitudes de un cliente.

Productos de este artículo

Encuentre el módulo que su tienda necesita

Ver los módulos