HandyCafe Docs
owner

Niveles de fidelidad

El sistema de niveles de fidelidad recompensa a los clientes habituales con descuentos automáticos basados en su actividad acumulada. A medida que los miembros usan el café (gastando dinero, iniciando sesión, comprando paquetes o realizando pedidos) ganan puntos de fidelidad. Cuando sus puntos totales superan el umbral de un nivel, avanzan a un nivel superior y reciben un mayor descuento en los precios de las sesiones.

Estructura de niveles

Cada nivel de fidelidad se define por cuatro campos:

Campo Descripción
code Un código corto único para el nivel (por ejemplo, silver, gold, vip). Se usa internamente para identificación y en las respuestas de la API.
name Un nombre visible legible (por ejemplo, "Miembro Plata", "Miembro Oro"). Se muestra en el perfil del miembro y en la pantalla de bloqueo del cliente.
threshold_points La cantidad mínima de puntos de fidelidad que un miembro debe acumular para calificar a este nivel.
discount_bps El descuento aplicado al precio de las sesiones, expresado en puntos base. 100 BPS equivalen al 1%. Un valor de 500 significa un descuento del 5%.

Los niveles se ordenan por su valor de threshold_points. Un miembro pertenece al nivel más alto para el cual cumple el umbral de puntos.

Descuentos en puntos base (BPS)

Los descuentos se expresan en puntos base (BPS) en lugar de porcentajes para evitar errores de redondeo de punto flotante en los cálculos financieros. Un punto base equivale al 0.01%, o una centésima de porcentaje.

Valores de descuento comunes:

Valor BPS Porcentaje Ejemplo con tarifa de 1000 unidades/hora
250 2.5% El miembro paga 975 por hora
500 5% El miembro paga 950 por hora
1000 10% El miembro paga 900 por hora
1500 15% El miembro paga 850 por hora
2000 20% El miembro paga 800 por hora

Cuando un miembro con descuento de nivel inicia una sesión, el motor de precios reduce la tarifa por hora base según el discount_bps del nivel antes de calcular los costos de los segmentos.

Eventos de fidelidad

Los miembros ganan puntos a través de eventos de fidelidad. Cada evento registra un cambio de puntos y la actividad que lo activó:

Tipo de evento Descripción Puntos típicos
spend El miembro pagó por una sesión (pospago o deducción de monedero). Los puntos son proporcionales al monto gastado. Varía según el monto
usage El miembro usó un PC o consola para una sesión, independientemente del pago. Los puntos se basan en la duración del uso. Varía según los minutos
visit El miembro inició sesión desde un PC cliente. Un bono fijo por cada visita, incentivando la asistencia regular. Fijo por visita
topup El miembro agregó fondos a su monedero. Los puntos reflejan el monto de la recarga. Varía según la recarga
order El miembro realizó un pedido de productos (comida, bebidas, etc.). Los puntos son proporcionales al total del pedido. Varía según el total
adjustment Un ajuste manual de puntos realizado por un administrador. Se usa para correcciones, promociones o recompensas especiales. Cualquier valor (positivo o negativo)

Cada registro de evento de fidelidad incluye:

  • points_delta: La cantidad de puntos ganados (positivo) o perdidos (negativo) de este evento.
  • amount_minor: El monto monetario asociado al evento (en unidades menores de moneda), si aplica.
  • minutes_delta: La cantidad de minutos asociados al evento, si aplica.
  • source_entity / source_entity_id: Una referencia a la sesión, pedido o transacción que generó el evento.
  • event_at: La marca de tiempo de cuando ocurrió el evento.

Progresión de niveles

La progresión de niveles funciona de la siguiente manera:

  1. Un miembro realiza una actividad (sesión, compra, inicio de sesión, etc.).
  2. El sistema crea un evento de fidelidad con el points_delta correspondiente.
  3. Los puntos totales del miembro se recalculan como la suma de todos los valores points_delta de sus eventos de fidelidad.
  4. El sistema verifica si el nuevo total cumple el umbral para un nivel superior.
  5. Si el miembro califica para un nuevo nivel, su campo tier se actualiza y el nuevo descuento toma efecto en su próxima sesión.

La asignación de niveles también puede establecerse manualmente por un administrador, anulando el cálculo automático.

Cómo los descuentos de nivel aplican a los precios de sesión

Cuando el motor de precios calcula el costo de un segmento de sesión para un miembro:

  1. El precio por hora base se determina por la franja de precios activa.
  2. Si el miembro tiene un nivel con valor de discount_bps, el precio base se reduce: precio_descontado = precio_base * (10000 - discount_bps) / 10000.
  3. Adicionalmente, los descuentos individuales a nivel de miembro (member_discount_bps en el registro del miembro) se aplican si están presentes.
  4. La tarifa descontada final se usa para calcular el costo del segmento.

Los descuentos de nivel y los descuentos a nivel de miembro pueden acumularse, dando al miembro el beneficio combinado de ambos.

Crear y gestionar niveles

Para crear un nuevo nivel:

  1. Navegue a Configuración y abra la sección de Precios (o el área dedicada de gestión de niveles).
  2. Haga clic en Agregar nivel.
  3. Ingrese el código (único, en minúsculas), nombre (etiqueta visible), puntos de umbral y descuento BPS.
  4. Guarde el nivel.

Para editar un nivel existente, selecciónelo de la lista y modifique cualquiera de sus campos. Los cambios en el discount_bps de un nivel toman efecto en todos los miembros actualmente asignados a ese nivel, comenzando con su próxima sesión.

Para eliminar un nivel, quítelo de la lista. Los miembros que estaban asignados al nivel eliminado retrocederán al siguiente nivel inferior para el cual califiquen basándose en sus puntos.

Ejemplo de configuración de niveles

Una configuración típica de tres niveles podría verse así:

Código Nombre Puntos de umbral Descuento BPS
bronze Bronce 0 0
silver Plata 500 500
gold Oro 2000 1000
vip VIP 5000 1500

En esta configuración, un nuevo miembro comienza en Bronce (sin descuento). Después de acumular 500 puntos por visitas, gastos y pedidos, automáticamente sube a Plata con un descuento del 5%. A los 2000 puntos alcanza Oro (10%) y a los 5000 puntos logra el estatus VIP (15%).