Todo lo que querrías saber antes de instalar.
Una mirada detallada a cómo funciona dffreegift — Regalo automático al alcanzar el umbral del carrito para PrestaShop 8 y 9, por qué lo construimos así y la lógica detrás de las características anteriores.
La palanca más medible sobre el ticket medio
En una tienda de comercio electrónico, dos variables impulsan los ingresos: el número de pedidos y el ticket medio. El coste de adquirir un nuevo pedido se ha vuelto muy alto (publicidad, SEO, retargeting). Por el contrario, aumentar el carrito de un visitante que ya está a punto de comprar cuesta casi nada — es upsell sobre tráfico ya pagado. El regalo por umbral del carrito es una de las mecánicas más eficaces para eso: el visitante añade voluntariamente unos euros más para no perderse la oferta. Siempre que la mecánica sea visible, cuantificada e instantánea. Eso es exactamente lo que hace dffreegift.
El bloque de progreso: mecánica psicológica al céntimo
En la página del carrito, el módulo muestra permanentemente un banner dedicado con la imagen del producto ofrecido, su nombre, y un mensaje que cuantifica la distancia restante al céntimo: «Añada 12,40 € para recibir su regalo». Una barra de progreso coloreada pasa progresivamente de gris-naranja a verde a medida que el umbral se acerca. Al cruzarlo, el banner cambia a verde con el mensaje «¡Regalo añadido a su carrito!» y una animación pulse confirma visualmente el éxito. Esta dramaturgia en tiempo real es lo que transforma una simple promoción condicional en una palanca de comportamiento: el visitante ve llenarse el indicador, calcula mentalmente el esfuerzo a realizar y se decide.
Bajo el capó: el mecanismo nativo PrestaShop, bien hecho
La mayoría de los módulos de regalo del mercado manipulan los precios de los productos directamente a través del hook actionProductPriceCalculation, crean líneas de carrito con un precio forzado a cero, o inyectan SpecificPrice temporales. Este enfoque rompe la compatibilidad con otros módulos de promoción más adelante, genera inconsistencias en las exportaciones contables y complica la depuración. dffreegift hace lo contrario: en la instalación, crea una CartRule estándar (visible en Catálogo → Descuentos → Reglas de carrito) con un código DFFREEGIFT_xxxxxxxx y un gift_product inicializado a cero. En cada guardado del carrito, el módulo sincroniza gift_product y gift_product_attribute con su configuración, y luego asocia o desasocia la regla del carrito mediante los métodos nativos Cart::addCartRule y Cart::removeCartRule. PrestaShop se encarga del resto: inserción de la línea de regalo (gift = 1, precio = 0), visualización del carrito, totales, conversión en pedido, snapshot histórico. Sin llamadas directas al precio, sin inyección invasiva — de ahí la compatibilidad nativa con sus otros mecanismos promocionales.
Tres triggers de sincronización, más auto-reparación
La lógica principal se ejecuta en el hook actionCartSave, que PrestaShop invoca en cada guardado del carrito — es decir, en cada añadido, modificación o eliminación de producto, pero también al inicio de sesión del cliente (fusión de carrito) y durante algunas acciones del back office. Un flag estático anti-recursión evita que la modificación del carrito por parte del módulo vuelva a disparar el hook en bucle. En paralelo, el hook actionObjectCartRuleDeleteBefore vigila la eliminación manual de nuestra CartRule desde el back office: si un administrador elimina la regla por accidente, la configuración se reinicia y la siguiente sincronización recrea una regla limpia. Por último, en cada guardado de configuración desde la pantalla Configurar, el módulo resincroniza gift_product y gift_product_attribute en la regla existente — nunca tiene que tocar manualmente la regla en la sección Descuentos.
Configuración: umbral, impuestos, envío, stock, grupos
La pantalla Módulos → DataFirefly Free Gift → Configurar concentra todo. Un switch maestro para activar o desactivar el conjunto. El ID del producto regalo (introducido a mano, con el nombre del producto mostrado como ayuda tras guardar). Un desplegable con las combinaciones del producto (auto-rellenado tras guardar primero el ID del producto, el módulo lee entonces las combinaciones disponibles). El importe del umbral de activación, con dos switches asociados: Cálculo con impuestos (si no, sin impuestos) e Incluir gastos de envío (si no, solo productos). Un switch Verificar el stock del regalo, que suspende la adición automática si el producto está agotado (respeta la estrategia out-of-stock configurada globalmente en PrestaShop). Una cuadrícula de casillas para restringir la oferta a grupos de clientes específicos — si no se marca ninguna, todos los clientes son elegibles, visitantes no identificados incluidos. Dos switches de visualización independientes para el mensaje y la barra de progreso.
Casos de uso típicos
Tienda de cosmética con margen confortable: ofrecer una muestra de perfume a partir de 40 € con IVA para empujar los carritos de 28-35 € hacia 40 €. Moda y accesorios: bolsita de marca de regalo desde 80 € con IVA, calculado sin envío, para fidelizar las primeras compras. B2B equipamiento: llavero o memoria USB a partir de 200 € sin IVA, restringido al grupo Profesionales. Marketplace alimentario: producto de degustación gratuito desde 50 € con IVA envío incluido, para absorber el coste del envío gratuito y llevarlo a la rentabilidad. En todos estos casos la mecánica es la misma: un umbral claro, un regalo deseable, una progresión visible, una adición automática. dffreegift gestiona todo eso sin intervención manual.
Compatibilidad PrestaShop 8 y 9 — probada, no prometida
El módulo solo utiliza APIs estables entre versiones: Module, Hook, Configuration, CartRule, Cart, HelperForm, Smarty. Ningún uso de las pestañas de producto Symfony de PrestaShop 9 (que introdujeron incompatibilidades en muchos módulos de terceros), ninguna inyección en el checkout de una sola página, ninguna dependencia de clases deprecated en PS 9. La pantalla de administración usa HelperForm — componente estable idéntico en PS 8 y PS 9. En el frontal, el hook displayShoppingCart está presente y funcional en ambas versiones, y el helper getCurrentLocale (usado para el formateo de precios) está disponible desde PrestaShop 1.7.6. Instale el módulo en PS 8 hoy, migre a PS 9 cuando quiera: ninguna intervención por su parte sobre el módulo.
Multi-tienda, multiidioma, código legible
El módulo funciona con la configuración multi-tienda de PrestaShop en el contexto de tienda por defecto. Los mensajes del frontal son traducibles mediante el mecanismo estándar de PrestaShop (Modules.Dffreegift.Shop para el frontal, Modules.Dffreegift.Admin para el back office), con FR, EN, ES y DE preposicionados. El código fuente se entrega abierto (PHP no ofuscado, conforme con las convenciones estándar de PrestaShop) con comentarios en francés e inglés al principio de cada método importante. La lógica principal cabe en un archivo dffreegift.php de menos de 700 líneas — legible y auditable en menos de una hora. Puede modificarlo, extenderlo mediante sus propios hooks, o forkearlo para una necesidad de negocio específica.
No hay valoraciones aún.