DataFirefly Price Alert — Documentación
Instalación, configuración, modos de alerta, cron, seguimiento de conversiones y solución de problemas del módulo de alerta de bajada de precio para PrestaShop 8 y 9.
Presentación
DataFirefly Price Alert añade una alerta de bajada de precio a tu tienda PrestaShop 8 o 9. Los visitantes se suscriben desde la ficha de producto (con o sin cuenta de cliente), eligen entre dos modos — cualquier bajada o precio objetivo — y reciben un email en cuanto el precio baja. Cada pedido realizado por un suscriptor notificado se atribuye automáticamente como conversión, con los ingresos recuperados visibles en el dashboard de administración.
Instalación
- En el back-office, ve a Módulos → Gestor de módulos → Subir un módulo.
- Sube el archivo
dfpricealert-x.x.x.zip. - Haz clic en Instalar. El módulo crea dos tablas (
df_pricealert_subscriberydf_pricealert_event), registra sus hooks y añade la pestaña Price Alerts bajo Catálogo.
No requiere dependencias Composer: el módulo incluye un autoloader PSR-4 autónomo. PHP 8.0 mínimo.
Configuración
Ve a Módulos → DataFirefly Price Alert → Configurar. Ajustes disponibles:
- Doble opt-in (RGPD) — activado por defecto. El suscriptor recibe un email de confirmación y la alerta solo se activa tras su clic. Muy recomendado para el cumplimiento del RGPD.
- Modo de alerta por defecto — el modo preseleccionado en el formulario: cualquier bajada o precio objetivo. El cliente siempre puede cambiarlo.
- Posición del formulario —
displayProductActions(bajo el botón de compra) odisplayProductAdditionalInfo(zona de información adicional). - Porcentaje de bajada mínimo — en modo cualquier bajada, ignorar bajadas inferiores al N %. 0 = cualquier bajada dispara.
- Umbral de alerta al comerciante — recibe un email cuando un producto alcanza N suscriptores activos. 0 desactiva.
- Email del comerciante — destinatario de la alerta anterior (por defecto: email de la tienda).
- Retención (días) — auto-purga de suscriptores cancelados/notificados más antiguos que N días. 180 por defecto, 0 desactiva.
Funcionamiento del lado del cliente
Suscripción
El formulario está siempre visible en la ficha de producto. El cliente introduce su email y elige:
- Cualquier bajada — será avisado en la primera reducción bajo el precio mostrado en el momento de suscribirse (sujeto al umbral mínimo configurado).
- Cuando alcance — introduce un precio objetivo, obligatoriamente inferior al precio actual. La alerta solo se envía cuando el precio baja a ese nivel o por debajo.
Si el producto tiene declinaciones, la combinación seleccionada se captura automáticamente — y se actualiza si el cliente cambia de declinación antes de validar.
Confirmación (doble opt-in)
Con el doble opt-in activo, el suscriptor recibe un email de confirmación. La alerta permanece en estado pending hasta el clic, y luego pasa a active. Sin doble opt-in, la alerta se activa inmediatamente.
Notificación
Cuando se detecta una bajada elegible, el suscriptor recibe un email con el precio antiguo tachado, el nuevo precio, el porcentaje de descuento, el ahorro y un enlace directo al producto. Su estado pasa a notified — no recibirá otro email para la misma suscripción.
Detección de bajadas: los tres triggers
El módulo detecta las bajadas de precio por tres canales complementarios:
- Hook
actionObjectProductUpdateAfter— se dispara en cada guardado de producto en el back-office. Cubre las modificaciones manuales de precio con latencia cero. - Hook
actionUpdateProductAttribute— se dispara al modificar una declinación. Cubre los cambios de precio por combinación. - Comando CLI
bin/scan-prices.php— para conectar a un cron. Imprescindible para los precios específicos programados, que se activan en una fecha sin disparar ningún hook.
Configuración del cron
*/30 * * * * php /ruta/a/tu/tienda/modules/dfpricealert/bin/scan-prices.php --shop=1 >> /var/log/dfpricealert.log 2>&1
El parámetro --shop es opcional (tienda por defecto si se omite). El comando muestra el número de alertas enviadas y el tiempo de ejecución.
Configuración recomendada: mantén los hooks activos (latencia cero en modificaciones manuales) y añade el cron cada 30 minutos para cubrir las promociones programadas.
Seguimiento de conversiones
En el hook actionOrderStatusPostUpdate, el módulo recorre cada línea del pedido y busca un suscriptor en estado notified que coincida con el triple (email del cliente, id de producto, id de declinación). Si hay coincidencia, el suscriptor pasa a purchased y se registra el id_order.
La coincidencia acepta tanto la declinación exacta como una suscripción genérica (declinación 0) — los productos sin declinaciones y las suscripciones al «producto principal» se atribuyen correctamente. El seguimiento también funciona en guest checkout, ya que la coincidencia se hace por email.
Dashboard de administración
La pestaña Catálogo → Price Alerts muestra:
- 6 KPI — suscriptores activos, notificados, convertidos, tasa de conversión, bajada media aceptada, ingresos recuperados.
- Productos populares — top 10 de productos por número de suscriptores activos, con precio medio de suscripción. Es tu lista de candidatos prioritarios para una promoción dirigida.
- Lista de suscriptores — filtrable por estado, email y producto, paginada a 25 filas.
- Acciones — escanear todos los productos inmediatamente, purgar entradas antiguas, exportar la lista completa en CSV.
Ciclo de vida de un suscriptor
Cada suscripción pasa por los siguientes estados:
pending— suscrito, esperando confirmación (doble opt-in).active— alerta activa, vigilada por los escaneos.notified— email de bajada enviado. Estado terminal salvo compra.purchased— pedido detectado tras la notificación, conversión atribuida.unsubscribed— baja mediante el enlace presente en cada email.
Cada transición se registra en la tabla df_pricealert_event (registro de auditoría completo).
Emails
Tres plantillas, cada una incluida en FR/EN/ES/DE en formato HTML + texto:
- confirm — confirmación de doble opt-in con botón de activación.
- alert — notificación de bajada: precio antiguo tachado, nuevo precio destacado, ahorro en euros y porcentaje, botón hacia el producto.
- merchant — notificación al comerciante cuando un producto supera el umbral de suscriptores activos.
El email se envía en el idioma del suscriptor (el de la página en el momento de suscribirse), con reserva automática al inglés si el idioma no está disponible. Las plantillas son personalizables en modules/dfpricealert/mails/<iso>/.
RGPD
- Doble opt-in por email antes de la activación (activado por defecto).
- Tokens criptográficos de 32 bytes (
random_bytes) únicos por suscriptor para la confirmación y la baja. - Enlace de baja en un clic en cada email.
- Auto-purga configurable de los datos antiguos (minimización de datos).
- Ningún dato se envía a servicios de terceros — todo permanece en tu servidor.
Solución de problemas
Las alertas no se envían
- Verifica que el suscriptor está en estado
active(nopending— el doble opt-in exige la confirmación). - Verifica el umbral de bajada mínimo: una bajada del 3 % con un umbral del 5 % no dispara.
- En modo precio objetivo, el precio debe alcanzar o bajar del objetivo — no solo bajar.
- Para los precios específicos programados, verifica que el cron está funcionando (consulta el log).
- Prueba el envío de email de PrestaShop en general (Parámetros avanzados → E-mail → Test).
Errores durante la suscripción
El módulo registra todos los errores en Parámetros avanzados → Logs con el prefijo [dfpricealert]. El formulario muestra además los errores del servidor con detalle directamente bajo el botón (estado HTTP y extracto de la respuesta), lo que acelera el diagnóstico.
El formulario no aparece
- Verifica la posición configurada: algunos temas no implementan
displayProductAdditionalInfo— cambia adisplayProductActions. - Vacía la caché de PrestaShop (Parámetros avanzados → Rendimiento).
Desinstalación
La desinstalación elimina las dos tablas del módulo (suscriptores y eventos incluidos), los hooks, la pestaña de administración y todas las claves de configuración. Exporta el CSV antes si deseas conservar el histórico.