Sistema de descuentos por fidelidad: configuración y ayuda
Inicio rápido
- Instala el ZIP en Módulos > "Module Manager", haz clic en "Configure" y selecciona una tienda.
- En Niveles, abre Configuración y revisa "Discount source", los pedidos contabilizados, "Evaluation window" y las reglas de cambio de nivel.
- Añade niveles con Nombre del nivel, Color, Icono y Activo, y ordénalos del rango más bajo al más alto.
- Añade "Qualification Rules" y Beneficios, incluidos el importe, la política de promociones y la selección de productos para cada Descuento.
- Usa "Price preview" y "Rebuild prices"; espera a "Prices ready".
- Abre Clientes y ejecuta "Start silent recount", continuando hasta que finalice.
- Programa una llamada a la URL de Configuración > Configuración > "Scheduled maintenance" cada minuto, salvo que la suite gestione la programación.
- Inicia sesión como cliente de prueba y verifica el nivel, el progreso en la cuenta, los precios de los productos, el carrito y cualquier beneficio de envío.
Requiere PrestaShop 1.6.1 o posterior y PHP 7.1 o posterior.
Manual de configuración
Instalar y elegir una tienda
Sube el ZIP en Módulos > "Module Manager" > "Upload a module". Instálalo y haz clic en "Configure" para abrir Configuración de niveles.
Abre "Loyalty Discounts" para acceder a Niveles, Clientes, "Dashboard" y Configuración > Configuración. Selecciona una tienda antes de editar. La página de niveles exige al empleado permiso de visualización para leer, de edición para hacer cambios y de eliminación para borrar. Recarga la página si caduca su token de seguridad.
Requiere PrestaShop 1.6.1 o posterior y PHP 7.1 o posterior.
El módulo utiliza un programa de fidelización B2C para cada tienda. La cualificación se configura mediante reglas. No introduces un único campo Gasto mínimo ni vinculas manualmente cada nivel a un grupo de clientes existente.
Configurar los ajustes del programa
En Niveles, haz clic en Configuración. Este diálogo contiene los ajustes de cualificación, precios, notificaciones y envío. La página independiente Configuración > Configuración contiene las integraciones y la URL de mantenimiento.
Elegir la fuente del descuento
"Discount source" tiene como valor predeterminado "Module tier benefits". Esta opción utiliza beneficios de descuento con ajustes de importe, impuestos, política de promociones y selección de productos.
Elige "PrestaShop group reduction" cuando necesites el comportamiento nativo de las reducciones de grupo. El modo de grupo utiliza el primer descuento activo cuando es porcentual; los grupos vinculados conservan su propia reducción. El módulo crea o gestiona grupos de niveles según sea necesario. No supongas que un porcentaje mostrado es solo informativo.
Usa "Rebuild prices" después de revisar los cambios y espera a "Prices ready". Según tu versión de PrestaShop, el cálculo de precios del módulo utiliza hooks nativos de precios o precios específicos compilados. Comprueba los resultados de compatibilidad indicados y cualquier informe "Original customer group prices" antes de utilizar el resultado.
Definir qué se contabiliza como facturación
| Ajuste | Valor predeterminado | Cómo configurarlo |
|---|---|---|
| "Counted order states" | Vacío | Si está vacío, contabiliza todos los pedidos válidos. Selecciona estados para restringir el historial contabilizado. |
| "Deduct refunds" | Sí | Resta los importes reembolsados de la facturación. Desactívalo solo si tu programa contabiliza deliberadamente los gastos reembolsados. |
| "Include tax" | Sí | Contabiliza el gasto con impuestos incluidos. |
| "Include shipping" | No | Añade los gastos de entrega a la base del gasto cuando está activado. |
Las métricas almacenadas usan la moneda predeterminada de la tienda. No compares un umbral con un total sin convertir de otra moneda.
Seleccionar el periodo de evaluación
| Ajuste | Valor predeterminado | Cómo configurarlo |
|---|---|---|
| "Evaluation window" | De por vida | Elige De por vida, "Rolling days", "Rolling months" o "Calendar year". |
| "Rolling window days" | 365 | Se utiliza para "Rolling days". |
| "Rolling window months" | 12 | Se utiliza para "Rolling months". |
| "Minimum months for averages" | 3 | Divisor mínimo para los promedios mensuales de facturación y pedidos. |
Usa el periodo que corresponda a tu política de cualificación. Un periodo móvil puede hacer que baje el nivel de un cliente cuando los pedidos antiguos salen de él.
Controlar los cambios de nivel
| Ajuste | Valor predeterminado | Cómo configurarlo |
|---|---|---|
| "Evaluation frequency" | "On order" | Elige "On order", "Daily" o "Weekly". El trabajo programado necesita llamadas de mantenimiento. |
| "Immediate upgrade" | Sí | Permite que un pedido active un nivel superior de inmediato. |
| "Initial tier" | "No initial tier" | Elige un nivel alternativo cuando no se cumpla ninguna regla de cualificación. |
| "Protection months" | 0 | Conserva un nivel recién obtenido durante el periodo configurado. Cero no ofrece protección. |
| "Grace days" | 0 | Concede tiempo para volver a cumplir los requisitos antes de bajar de nivel. Cero no concede tiempo adicional. |
| "Automatic downgrade" | Sí | Permite pasar a un nivel inferior cuando se pierde la cualificación. |
El orden de los niveles determina su rango. El nivel que cumple los requisitos y aparece más adelante en la lista ordenada es el candidato superior. Ordena los niveles del más bajo al más alto.
Configurar las notificaciones y la visualización
| Ajuste | Valor predeterminado | Cómo configurarlo |
|---|---|---|
| "Notify on upgrade" | Sí | Envía una notificación de cambio de nivel para eventos aptos que no sean silenciosos. |
| "Notify on downgrade" | No | Actívalo si los clientes deben recibir notificaciones al bajar de nivel. |
| "Notify before downgrade" | No | Activa los avisos antes de que termine un periodo de gracia. |
| "Warning days" | 7 | Antelación del aviso cuando los avisos están activados. |
| "Show progress" | Sí | Muestra información de fidelización en el área de la cuenta del cliente que ha iniciado sesión. |
Configurar el envío
"Carriers priced by loyalty" empieza vacío. Selecciona los transportistas nativos aptos si usas beneficios de envío gratuito o reducido. El módulo pasa a calcular los precios de los transportistas adoptados en las versiones que utilizan esta integración. No se pueden adoptar transportistas que ya gestione otro módulo de transportista. Al liberar un transportista, se restauran sus ajustes originales registrados.
Lee el resultado de la adopción después de guardar. Algunos núcleos proporcionan directamente el hook de envío; la interfaz se adapta a esa capacidad. No supongas que un beneficio de envío se aplica a un transportista no seleccionado o no compatible.
Crear niveles y reglas de cualificación
Haz clic en Añadir nivel. Introduce el Nombre del nivel multilingüe. Es obligatorio un nombre en el idioma predeterminado de la tienda. Color tiene como valor predeterminado #6c757d, Icono empieza vacío y Activo empieza activado. Guarda el nivel y después colócalo en el rango previsto.
En "Qualification Rules", haz clic en Añadir regla. Elige Tipo de regla, Operador y Valor. Las reglas dentro de un mismo Grupo de reglas utilizan AND. Añadir grupo O crea otro grupo alternativo.
Los tipos de reglas B2C incluyen "Total turnover", "Monthly average turnover", "Total orders", "Average order value", "Order frequency", "Account age", "Return rate", "Late payments", "Consecutive months with orders", "Days since last order", "Categories purchased" y "Products purchased". Algunos datos dependen de la información o las integraciones disponibles. No se debe suponer que una métrica no disponible cumple una regla.
Para las métricas monetarias, usa la moneda predeterminada de la tienda. La frecuencia de pedidos indica pedidos al mes. Los valores de antigüedad e inactividad se expresan en días. Las reglas de listas de categorías y productos aceptan ID positivos separados por comas con "Contains all".
Para un nivel Gold basado en el gasto, crea:
Tier Name: Gold
Qualification Rules:
Rule Type: Total turnover
Operator: At least
Value: 500
Esto sustituye al antiguo campo de umbral único. En su lugar, puedes cualificar por número de pedidos o combinar varios requisitos.
Configurar los beneficios de los niveles
En Beneficios, haz clic en Añadir beneficio. Elige Tipo de beneficio y rellena los valores obligatorios. Etiqueta personalizada es opcional y multilingüe. No existe ningún beneficio hasta que guardes uno.
| Tipo de beneficio | Campos que configurar | Significado operativo |
|---|---|---|
| Descuento | "Discount type", Importe, "Tax basis", "Currency" para un importe fijo, "Promotion policy", "Product selection" | Aplica un descuento porcentual o fijo mediante la fuente de precios seleccionada. |
| "Free shipping" | "Minimum shipment amount (0 = no minimum)", "Tax basis", "Currency", "Product selection" | Envío gratuito con los transportistas compatibles cuando la expedición física cumple los requisitos. |
| "Reduced shipping" | "Percentage", "Product selection" | Reduce los gastos de envío compatibles. |
| "Payment terms" | "Days" | Publica el beneficio configurado; no supongas que esto crea una pasarela de pago independiente. |
| "Credit limit" | Importe, "Coverage ratio (%)", "Payment days" | Almacena datos del beneficio de crédito para las integraciones que los utilizan. |
| "Extended returns" | "Days" | Describe el plazo de devolución del nivel. |
| "Dedicated representative" | "Representative" | Asocia al empleado seleccionado. |
| "Early sale access" | "Hours" | Almacena el beneficio de acceso anticipado. |
| "Exclusive products" | "Product selection" | Almacena el ámbito de productos pertinente. |
| "Volume rebates" | "Percentage", "Period" | Almacena condiciones de bonificación "Monthly", "Quarterly" o "Yearly". |
| "Free samples" | "Samples per month" | Almacena la asignación mensual. |
| "Priority support", "Priority handling", "Free refunds" | Beneficio activo y etiqueta opcional | Registra el derecho indicado. |
El módulo independiente aplica automáticamente el cálculo de descuentos y las reducciones de envío compatibles. Los demás tipos de beneficios se guardan con el nivel, pero el módulo no los ejecuta: prestación, reembolsos, control de acceso, pago de bonificaciones y condiciones de pago necesitan tu propio proceso u otra integración. Prepáralos antes de prometer estos beneficios a los clientes.
Para los descuentos, en el formulario de nuevo beneficio "Discount type" empieza en "Percentage", "Tax basis" en "Tax excluded" y "Promotion policy" en "Use the better price". Introduce el importe explícitamente. Los importes fijos requieren una moneda. Otras políticas de promociones son "Only products without promotions" y "Stack with promotions".
"Product selection" ofrece "All products" o "Selected products". Revisa el selector antes de guardar. Para los beneficios de envío, todos los productos físicos de la expedición deben pertenecer a la selección apta. Los umbrales utilizan la mercancía física después de los descuentos de producto y antes de los descuentos del carrito.
Para el ejemplo Gold, añade un beneficio Descuento con "Percentage" e Importe 10. En el modo de precios del módulo, se trata de una definición de descuento operativa. No la recrees por separado como descuento nativo de grupo, salvo que hayas seleccionado esa fuente intencionadamente.
Previsualizar y publicar los precios
Usa "Price preview" de un nivel para probar un producto, una combinación y una cantidad. La vista previa de referencia utiliza la moneda y el país predeterminados de la tienda. Muestra precios unitarios sin ecotasa ni personalización. La cantidad selecciona el tramo de precio aplicable.
Comprueba la promoción nativa, la opción ganadora según la política, el precio final, la fila compilada y los resultados de compatibilidad. Las definiciones guardadas y los precios compilados pueden diferir hasta que termine la reconstrucción. Usa "Rebuild prices" y espera a "Prices ready" antes de comprobar la tienda.
Usa "Shipping preview" para un nivel con un beneficio de envío. Proporciona productos y cantidades, o un carrito existente con sus ajustes de entrega. Revisa el transportista, el contenido de la expedición, el coste nativo del transporte, el ahorro, el transporte que pagar, el umbral y el importe que falta. Una vista previa puede no estar disponible si necesita llamar a otro módulo de transportista.
Recalcular clientes y programar el mantenimiento
Abre Clientes. Usa "Start silent recount" para evaluar a los clientes existentes sin enviar mensajes iniciales de cambio de nivel. Continúa con "Continue recount" hasta que termine o deja que cron continúe.
Para los lotes de precios, usa "Start pricing reconciliation" y "Continue pricing reconciliation". Examina la lista de clientes y la instantánea actual de un cliente individual. La lista permite exportar y muestra la información de evaluación almacenada. El panel de detalles del cliente incluye información de fidelización actual y el historial reciente.
Abre Configuración > Configuración. En "Scheduled maintenance", copia la URL generada y llámala cada minuto. Contiene el ID de la tienda y un token privado. Por ejemplo:
* * * * * curl -fsS "YOUR_EXACT_SCHEDULED_MAINTENANCE_URL" >/dev/null
Usa la URL que hayas copiado realmente. El controlador exige que su id_shop coincida con la tienda de la solicitud y un token válido de 64 caracteres. El mantenimiento continúa las evaluaciones pendientes, los lotes de recálculo, la conciliación de precios y los reintentos de notificación. Si la suite está activa, su programador gestiona estas tareas y el ejecutor independiente puede omitir la ejecución.
La misma página ofrece "Enable edrone" y "edrone app ID". La integración está desactivada hasta que la actives y requiere un ID de aplicación no vacío. No la actives sin el identificador de la cuenta prevista.
Verificar la visualización del cliente y las notificaciones
Inicia sesión como cliente de prueba después del recálculo. Abre la página de la cuenta y compara el nivel actual, la base de cualificación, el siguiente nivel, los requisitos incumplidos y los beneficios con la instantánea del Back Office. Los visitantes no tienen un estado de fidelización personal.
Comprueba los precios en un listado, en una página de producto, en el carrito y en un pedido de prueba completado. Comprueba un pedido con promoción y un pedido reembolsado frente a los estados contabilizados y los ajustes de reembolso. El motor actual evalúa el historial de pedidos y las reglas de transición; no se limita a sumar para siempre el importe de cada pedido validado.
La plantilla de la cuenta se puede personalizar en:
/themes/your-theme/modules/mprloyaltydiscountssystem/views/templates/hook/customer_account.tpl
Utiliza la plantilla actual de instantánea de fidelización. Aplica estilos al contenedor de la cuenta con .mpr-loyalty-account, a la lista de métricas con .mpr-loyalty-details y a los requisitos incumplidos con .mpr-loyalty-requirements. El antiguo marcado de insignia y barra de progreso porcentual no es la interfaz de la plantilla actual.
El envío de correos de nivel utiliza mails/en/loyalty_upgrade.html y loyalty_downgrade.html, con soporte para polaco y uso del inglés como alternativa para los demás idiomas en el sistema de envío. Las variables actuales incluyen {firstname}, {lastname}, {notification}, {tier_name}, {base_tier_name}, {tier_benefits}, {total_turnover}, {window}, {basis}, {next_tier_name}, {shortfalls}, {account_url} y {shop_name}. El antiguo ejemplo {tier_discount} no es un token actual del sistema de envío.
Resolver problemas y desinstalar
Si no puedes guardar los cambios, selecciona una tienda y comprueba los permisos del empleado y la validez del token. Si los clientes no tienen nivel, comprueba las reglas activas, la lógica de grupos, los estados contabilizados, las métricas disponibles y el periodo de evaluación.
Si los precios difieren de las definiciones, comprueba el estado de reconstrucción y los resultados de compatibilidad. Si el envío no cambia, comprueba la adopción del transportista y el contenido apto de la expedición. Si no aparece el progreso, comprueba "Show progress", el estado de inicio de sesión, el hook de la cuenta y qué módulo gestiona actualmente la ejecución de la fidelización.
Usa Configuración > Integridad para las comprobaciones de infraestructura del módulo. Examina el JSON de mantenimiento y los diagnósticos del módulo para detectar lotes fallidos o problemas de entrega de correo. Evita repetir un guardado correcto de la definición solo porque una reconstrucción posterior haya fallado; usa "Rebuild prices" para reintentarlo.
Desactiva o desinstala mediante "Module Manager" cuando quieras detener el módulo. La limpieza durante la ejecución libera las filas de precios y los derechos sobre grupos que controla y transfiere o libera los transportistas adoptados según corresponda. Las tablas de fidelización compartidas se declaran persistentes y se conservan. Las entradas de menú independientes, la configuración del módulo y las preferencias de administración se eliminan al desinstalar. Conserva una copia de seguridad de la base de datos si necesitas una exportación histórica completa.
Preguntas
2
¿Loyalty Discounts System ralentiza mi tienda?
En una instalación multitienda, ¿el gasto de fidelidad se registra por tienda o combinado?
No. Los programas de fidelización y el estado de cada cliente son propios de cada tienda, y la consulta del historial solo incluye pedidos de esa tienda. Evalúa y comprueba al cliente por separado en cada tienda correspondiente.
Problemas conocidos
14
Refuerzo de la seguridad
El recálculo podía borrar la situación del cliente
Los pedidos sin pagar podían otorgar un nivel de fidelidad
Los vales y reembolsos alteraban el gasto válido
Los precios por nivel podían ser erróneos o los descuentos inactivos
La reconstrucción de precios podía alterar las promociones
Las etiquetas del menú de fidelidad eran ilegibles
Los clientes podían no recibir el nivel que les correspondía
Los mensajes de administración seguían en inglés
Aparecían traducciones incorrectas
Los recursos combinados podían alterar el aspecto de la tienda
No se conservaban los estados de pedido de fidelidad elegidos
Faltaban datos de fidelidad necesarios tras la instalación
Los filtros de las listas de administración funcionaban mal
Solicitudes de funcionalidades
12
Implementado
Descuentos de fidelidad por niveles de gasto
Niveles de fidelidad según el gasto
Actualizaciones del módulo desde el back office
Comprobaciones de instalación
Idiomas de administración adicionales
Gestión ampliada de niveles
Ventajas de envío por fidelidad
Reglas de interacción con promociones
Periodo de cálculo del gasto
Protección del nivel alcanzado
Correos de fidelidad más completos
Etiquetas de nivel de edrone
Registro de cambios
v1.1.102026-09-22
- Addedcomplete FR/DE/ES/IT/PL translations
- FixedPersist loyalty order state settings
- FixedInstall loyalty tables through schema manager
- FixedReplace Tools::displayPrice with PriceFormatter compat wrapper
Versiones anteriores
v1.0.02026-05-11
- Initialrelease: automatic customer group assignment based on cumulative spending thresholds
- InitialConfigurable tiers: set spending threshold and target customer group per level
- InitialCompatible with PrestaShop native customer group discounts for seamless pricing rules
- InitialAdmin overview showing each customer's current tier, total spend, and next threshold
v1.3.02026-04-20
- Addedadmin menu management via MenuInstaller for streamlined module setup
- Addedself-healing integrity checks for automatic diagnostics and repair
- AddedLicense management tab with key management and renewal options
- Addedcomplete FR/DE/ES/IT/PL translations
- Improvedsettings form organization with tabbed layout
- Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns
v1.2.02026-02-19
- Addedfull compatibility with PrestaShop 9.x and Hummingbird theme
- Addedspending tier preview on the My Account page showing progress to next discount level
- Improvedcumulative spend recalculation: background job processes all customers nightly via cron
- Fixedcustomer group not reverting when a qualifying order was refunded
- Addedconfigurable spending currency for multi-currency stores with exchange rate normalisation
v1.1.02025-10-07
- Addedthreshold editor with unlimited tiers, each with its own discount percentage or fixed amount
- Improvedaudit log: records each group assignment change with trigger order reference
- Fixedtier upgrade not applying immediately when order status changed to 'Payment accepted'
- Addedemail notification template for customers promoted to a new loyalty tier
Demo
Prueba el módulo completo antes de comprar
Compra la licencia más tarde y conserva tus ajustes.
- Tu demo de 30 días Pruébalo en tu propia tienda durante 30 días desde la primera instalación.
- Tienda demo lista Explora una tienda demo lista en tu navegador.
- Sin registro Sin cuenta, correo ni dominio de tienda.
Al descargar, aceptas las condiciones de la demo y la política de privacidad.
Al abrir esta demo, acepta los términos de la demo y la política de privacidad.