로열티 등급
로열티 등급 시스템은 축적된 활동에 따라 단골 고객에게 자동 할인을 제공합니다. 회원이 카페를 이용하면서(비용 지출, 로그인, 패키지 구매, 주문 등) 로열티 포인트를 적립합니다. 총 포인트가 등급 기준을 초과하면 상위 등급으로 승급하여 세션 요금에 대한 더 큰 할인을 받을 수 있습니다.
등급 구조
각 로열티 등급은 네 개의 필드로 정의됩니다.
| 필드 | 설명 |
|---|---|
code |
등급의 고유 단축 코드입니다(예: silver, gold, vip). 내부 식별 및 API 응답에 사용됩니다. |
name |
사람이 읽을 수 있는 표시 이름입니다(예: "실버 회원", "골드 회원"). 회원 프로필과 클라이언트 잠금 화면에 표시됩니다. |
threshold_points |
이 등급에 진입하기 위해 회원이 누적해야 하는 최소 로열티 포인트 수입니다. |
discount_bps |
세션 요금에 적용되는 할인으로, 베이시스 포인트로 표현됩니다. 100 BPS는 1%입니다. 500이면 5% 할인을 의미합니다. |
등급은 threshold_points 값 순서로 정렬됩니다. 회원은 포인트 기준을 충족하는 가장 높은 등급에 소속됩니다.
베이시스 포인트(BPS) 할인
할인은 금융 계산에서 부동 소수점 반올림 오류를 방지하기 위해 퍼센트가 아닌 베이시스 포인트(BPS)로 표현됩니다. 1 베이시스 포인트는 0.01%, 즉 1퍼센트의 100분의 1입니다.
일반적인 할인 값:
| BPS 값 | 퍼센트 | 시간당 1000 단위 요금 적용 예시 |
|---|---|---|
| 250 | 2.5% | 회원은 시간당 975를 지불합니다 |
| 500 | 5% | 회원은 시간당 950을 지불합니다 |
| 1000 | 10% | 회원은 시간당 900을 지불합니다 |
| 1500 | 15% | 회원은 시간당 850을 지불합니다 |
| 2000 | 20% | 회원은 시간당 800을 지불합니다 |
등급 할인이 있는 회원이 세션을 시작하면 요금 엔진이 세그먼트 비용을 계산하기 전에 해당 등급의 discount_bps만큼 기본 시간당 요금을 인하합니다.
로열티 이벤트
회원은 로열티 이벤트를 통해 포인트를 적립합니다. 각 이벤트는 포인트 변동과 이를 유발한 활동을 기록합니다.
| 이벤트 유형 | 설명 | 일반적인 포인트 |
|---|---|---|
spend |
회원이 세션 비용을 지불했습니다(후불 또는 지갑 차감). 포인트는 지출 금액에 비례합니다. | 지출 금액에 따라 다름 |
usage |
회원이 결제 여부와 관계없이 PC 또는 콘솔에서 세션을 이용했습니다. 포인트는 이용 시간에 기반합니다. | 사용 시간(분)에 따라 다름 |
visit |
회원이 클라이언트 PC에서 로그인했습니다. 정기적인 방문을 장려하기 위한 방문당 고정 보너스입니다. | 방문당 고정 |
topup |
회원이 지갑에 잔액을 충전했습니다. 포인트는 충전 금액을 반영합니다. | 충전 금액에 따라 다름 |
order |
회원이 상품 주문(음식, 음료 등)을 했습니다. 포인트는 주문 총액에 비례합니다. | 주문 총액에 따라 다름 |
adjustment |
관리자가 수동으로 포인트를 조정했습니다. 수정, 프로모션 또는 특별 보상에 사용됩니다. | 양수 또는 음수 모두 가능 |
각 로열티 이벤트 레코드에는 다음이 포함됩니다.
- points_delta: 이 이벤트로 인해 획득(양수) 또는 차감(음수)된 포인트 수
- amount_minor: 이벤트와 관련된 금액(최소 통화 단위, 해당하는 경우)
- minutes_delta: 이벤트와 관련된 시간(분, 해당하는 경우)
- source_entity / source_entity_id: 이벤트를 생성한 세션, 주문 또는 거래에 대한 참조
- event_at: 이벤트가 발생한 타임스탬프
등급 승급
등급 승급은 다음과 같이 진행됩니다.
- 회원이 활동(세션, 구매, 로그인 등)을 수행합니다.
- 시스템이 해당하는
points_delta와 함께 로열티 이벤트를 생성합니다. - 회원의 총 포인트가 모든 로열티 이벤트의
points_delta값 합계로 재계산됩니다. - 시스템이 새 총계가 상위 등급의 기준을 충족하는지 확인합니다.
- 회원이 새 등급에 해당하면
tier필드가 업데이트되고 다음 세션부터 새 할인이 적용됩니다.
등급 배정은 관리자가 수동으로 설정하여 자동 계산을 재정의할 수도 있습니다.
등급 할인이 세션 요금에 적용되는 방식
요금 엔진이 회원의 세션 세그먼트 비용을 계산할 때 다음과 같이 처리됩니다.
- 활성 요금 슬롯에 의해 기본 시간당 가격이 결정됩니다.
- 회원이
discount_bps값이 있는 등급에 소속된 경우 기본 가격이 인하됩니다:할인가 = 기본가 * (10000 - discount_bps) / 10000. - 회원 레코드의 개별 회원 수준 할인(
member_discount_bps)도 적용됩니다(설정된 경우). - 최종 할인 요금이 세그먼트 비용 계산에 사용됩니다.
등급 할인과 회원 수준 할인은 중복 적용이 가능하여 회원은 두 혜택을 함께 받을 수 있습니다.
등급 생성 및 관리
새 등급을 생성하려면 다음을 수행합니다.
- 설정으로 이동하여 요금 섹션(또는 전용 등급 관리 영역)을 엽니다.
- 등급 추가를 클릭합니다.
- 코드(고유, 소문자), 이름(표시 라벨), 기준 포인트, 할인 BPS를 입력합니다.
- 등급을 저장합니다.
기존 등급을 편집하려면 목록에서 선택하고 필드를 수정합니다. 등급의 discount_bps 변경은 현재 해당 등급에 배정된 모든 회원에게 다음 세션부터 적용됩니다.
등급을 삭제하려면 목록에서 제거합니다. 삭제된 등급에 배정되어 있던 회원은 포인트 기준에 따라 다음으로 낮은 등급으로 자동 이동합니다.
등급 설정 예시
일반적인 3단계 등급 구성은 다음과 같습니다.
| 코드 | 이름 | 기준 포인트 | 할인 BPS |
|---|---|---|---|
bronze |
브론즈 | 0 | 0 |
silver |
실버 | 500 | 500 |
gold |
골드 | 2000 | 1000 |
vip |
VIP | 5000 | 1500 |
이 설정에서 신규 회원은 브론즈(할인 없음)로 시작합니다. 방문, 지출, 주문을 통해 500포인트를 적립하면 5% 할인의 실버로 자동 승급합니다. 2000포인트에서 골드(10%)에 도달하고, 5000포인트에서 VIP(15%)를 달성합니다.