Ir al contenido

Acumulación, Redención y Expiración de Puntos

Los puntos de lealtad se registran a través de movimientos auditables. Cada movimiento tiene un tipo, un valor en puntos (positivo o negativo), una fecha de expiración (para acumulaciones) y una referencia a la venta o al usuario que lo originó.

Tipo Efecto en balance Cuándo ocurre
ACUMULACION Suma puntos Al registrar una venta con cliente asignado
REDENCION Resta puntos Al aplicar puntos como descuento en el POS
AJUSTE_MANUAL Suma o resta Cuando un administrador ajusta el balance manualmente
EXPIRACION Resta puntos Cron mensual cuando vence una acumulación
CANCELACION Revierte una ACUMULACION o REDENCION Al cancelar la venta origen

Los puntos se acumulan automáticamente al procesar una venta con un cliente asignado. El número de puntos ganados se calcula así:

Puntos = Monto de compra (MXN) × Tasa de acumulación del programa
× Multiplicador del nivel actual del cliente

Si el cliente no tiene nivel asignado, el multiplicador es 1. Cuando se acumulan puntos el sistema también evalúa si el cliente debe subir de nivel con base en su gasto acumulado de por vida.

  1. Agregue los productos al carrito y seleccione el cliente.

  2. La tarjeta de puntos del cliente aparece en el panel lateral con el balance disponible.

  3. Haga clic en Redimir puntos o use el botón correspondiente en el diálogo de pago.

  4. Ingrese la cantidad de puntos a redimir. El sistema calcula el monto de descuento equivalente:

    Descuento (MXN) = Puntos redimidos ÷ Tasa de redención del programa
  5. Confirme. El descuento se aplica al total de la venta y se registra un movimiento de tipo REDENCION.

En Lealtad → Clientes → [id del cliente] puede redimir puntos usando el botón Redimir puntos sin pasar por el POS (útil para correcciones administrativas con permiso lealtad.ver).

Los usuarios con permiso lealtad.ajustar_puntos pueden realizar ajustes positivos o negativos al balance de un cliente para corregir errores o aplicar compensaciones especiales.

Cómo hacer un ajuste:

  1. Navegue a Lealtad → Clientes → [id del cliente].
  2. Use la función de ajuste disponible en el perfil del cliente.
  3. Ingrese el número de puntos (positivo para sumar, negativo para restar) y una nota descriptiva obligatoria.
  4. Confirme. Se registra un movimiento de tipo AJUSTE_MANUAL con la nota y el usuario que lo realizó.

El sistema ejecuta un cron job el primer día de cada mes a las 00:00 hora de Ciudad de México que revisa todas las acumulaciones cuya fecha de expiración ya pasó y que aún no han sido expiradas.

  • Los movimientos de expiración se procesan en orden FIFO (la acumulación más antigua vence primero).
  • Por cada acumulación vencida se crea un movimiento de tipo EXPIRACION con puntos negativos y se decrementa el balance del cliente.
  • Si el cron job no pudo adquirir el lock distribuido para un tenant, el proceso se reintenta en el siguiente run mensual.

Para que los puntos expiren, la expiración en meses del programa debe ser mayor a cero (ver Configurar el programa).

En Lealtad → Clientes → [id del cliente] se muestra la tabla Historial de Movimientos con todas las entradas ordenadas cronológicamente:

Tabla de historial de movimientos de puntos del cliente

Columna Descripción
Fecha Fecha y hora del movimiento
Tipo Tipo de movimiento (ACUMULACION, REDENCION, etc.)
Puntos Valor del movimiento (verde = suma, rojo = resta)
Descripción Nota o referencia asociada al movimiento
  • Los puntos a acumular deben ser positivos (cero o menor devuelve un error).
  • No se puede redimir más de lo que hay en el balance actual.
  • Un ajuste manual requiere una nota descriptiva.
  • La tasa de acumulación y la tasa de redención son las mismas para todos los clientes del tenant; solo el multiplicador de nivel varía por cliente.

El cliente dice que le faltaron puntos después de una compra. Consulte el historial de movimientos en su perfil. Verifique que la venta está asociada al cliente y que el monto de compra es correcto. Si hay una discrepancia, realice un ajuste manual documentando el motivo.

El cliente quiere saber cuánto vale su balance en pesos. El valor equivalente es: balance de puntos ÷ tasa de redención. Por ejemplo, 500 puntos con tasa 100 = $5.00 MXN.

Los puntos no expiraron aunque ya venció la fecha. El cron corre el primer día de cada mes. Si la fecha de expiración cayó a mitad de mes, la expiración ocurrirá en el siguiente run. También verifique que el programa tiene una expiración en meses mayor a cero.