파트너 매출 관리 시스템은 MLM(다단계 마케팅) 네트워크에서 각 파트너의 매출 성과를 관리하고 추적하는 핵심 모듈입니다. 매출 등록부터 커미션 분배까지 전 과정을 자동화하여 투명하고 효율적인 매출 관리를 제공합니다.
- ✅ 다양한 매출 유형 지원: 서비스, 제품, 컨설팅, 교육 등
- ✅ 매출 상태 관리: 대기(pending) → 확정(confirmed) → 완료 워크플로우
- ✅ 자동 주문번호 생성:
PS-YYYYMMDD-0001형식 - ✅ 매출 승인 프로세스: 관리자 승인 필요 시 별도 워크플로우
- 📊 개인 매출 통계:
monthly_sales,total_sales실시간 동기화 - 📊 팀 매출 관리:
team_sales로 하위 파트너 매출 합산 추적 - 📊 성과 분석: 카테고리별, 기간별, 채널별 매출 분석
- 📊 동기화 검증: 실제 매출 데이터와 파트너 정보 일치성 확인
- 🧮 직접 커미션: 매출을 올린 파트너 본인 커미션 (등급별 차등)
- 🧮 간접 커미션: 상위 파트너들 관리 보너스 (계층별 차등)
- 🧮 자동 분배: 매출 확정 시 관련 파트너들에게 즉시 분배
- 🧮 역계산 지원: 매출 취소 시 커미션 자동 회수
- 🔄 매출 등록 시: 파트너
monthly_sales,total_sales자동 증가 - 🔄 팀 매출 업데이트: 상위 파트너들
team_sales자동 증가 - 🔄 매출 취소 시: 모든 관련 수치 자동 차감 (역동기화)
- 🔄 트랜잭션 보호: 데이터 무결성 보장
| 필드명 | 타입 | 설명 | 예시 |
|---|---|---|---|
partner_id |
integer | 매출을 올린 파트너 ID | 3 |
partner_name |
string | 파트너 이름 (동기화) | "김영업" |
partner_email |
string | 파트너 이메일 (동기화) | "sales@company.com" |
title |
string | 매출 제목 | "웹사이트 개발 프로젝트" |
amount |
decimal(15,2) | 매출 금액 | 1000000.00 |
currency |
string | 통화 | "KRW" |
sales_date |
date | 매출 발생일 | "2025-11-05" |
order_number |
string | 주문번호 (자동생성) | "PS-20251105-0001" |
category |
string | 매출 카테고리 | "service", "product" |
product_type |
string | 제품/서비스 타입 | "consulting", "development" |
sales_channel |
string | 매출 채널 | "online", "offline", "referral" |
status |
enum | 매출 상태 | "pending", "confirmed", "cancelled" |
commission_calculated |
boolean | 커미션 계산 여부 | true/false |
total_commission_amount |
decimal(15,2) | 총 커미션 금액 | 50000.00 |
commission_recipients_count |
integer | 커미션 수령자 수 | 3 |
commission_distribution |
json | 커미션 분배 상세 | 계층별 분배 내역 |
tree_snapshot |
json | 트리 구조 스냅샷 | 매출 당시 조직도 |
| 상태 | 설명 | 파트너 매출 반영 | 커미션 계산 |
|---|---|---|---|
| pending | 대기중 (승인 필요) | ❌ 반영 안됨 | ❌ 계산 안됨 |
| confirmed | 확정됨 | ✅ 즉시 반영 | ✅ 자동 계산 |
| cancelled | 취소됨 | ⚡ 자동 차감 | ⚡ 자동 회수 |
| refunded | 환불됨 | ⚡ 자동 차감 | ⚡ 자동 회수 |
http://localhost:8000/admin/partner/sales?partner_id=3
┌─────────────────────────────────────────────────────────────┐
│ 📊 파트너 매출 관리 - 김영업님 │
├─────────────────────────────────────────────────────────────┤
│ 이름: 김영업 | 이메일: sales@company.com │
│ 등급: 골드 | 타입: 영업 파트너 | 레벨: 2 │
│ 상위: 이부장 | 하위: 3명 | 경로: /1/2/3 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────┬─────────────────┬─────────────────┬─────────────────┐
│ 이번 달 매출 │ 총 누적 매출 │ 팀 매출 │ 커미션 수입 │
│ 1,500,000원 │ 15,000,000원 │ 5,000,000원 │ 300,000원 │
│ 3건 │ 45건 │ 12건 │ 2.5% │
└─────────────────┴─────────────────┴─────────────────┴─────────────────┘
- 총 매출액 및 건수
- 확정 매출 vs 대기 매출
- 평균 매출액
- 커미션 계산 현황
- 첫 매출일 / 최근 매출일
- 최고 월 매출 기록
- 카테고리별 매출 분포
- 매출 채널별 분석
monthly_salesvs 실제 계산값total_salesvs 실제 계산값- 데이터 동기화 상태 표시
- 대상: 매출을 올린 파트너 본인
- 비율: 파트너 등급별 차등 (브론즈 3% ~ 다이아몬드 8%)
- 계산:
매출액 × 개인 커미션율
- 대상: 상위 파트너들 (최대 4단계)
- 비율: 계층별 차등 적용
- 1단계 상위: 3%
- 2단계 상위: 2%
- 3단계 상위: 1%
- 4단계 상위: 0.5%
- 분배: 하위 파트너 수에 따라 나눔
graph TD
A[매출 확정] --> B[트리 구조 스냅샷 생성]
B --> C[상위 파트너들 조회]
C --> D[직접 커미션 계산]
D --> E[간접 커미션 계산]
E --> F[커미션 레코드 생성]
F --> G[파트너 매출 실적 업데이트]
G --> H[완료]
// 1. 매출을 올린 파트너 업데이트
$partner->increment('monthly_sales', $amount);
$partner->increment('total_sales', $amount);
// 2. 상위 파트너들 team_sales 업데이트
foreach ($ancestors as $ancestor) {
$ancestor->increment('team_sales', $amount);
}
// 3. 커미션 자동 계산 및 분배
$commissionService->calculateAndDistribute($sales);// 1. 커미션 역계산
$sales->reverseCommissionCalculation();
// 2. 파트너 매출 차감
$partner->decrement('monthly_sales', $amount);
$partner->decrement('total_sales', $amount);
// 3. 상위 파트너들 team_sales 차감
foreach ($ancestors as $ancestor) {
$ancestor->decrement('team_sales', $amount);
}POST /admin/partner/sales
{
"partner_id": 3,
"title": "웹사이트 개발 프로젝트",
"amount": 1000000,
"currency": "KRW",
"sales_date": "2025-11-05",
"category": "service",
"product_type": "development",
"status": "confirmed",
"auto_calculate_commission": true
}PUT /admin/partner/sales/{id}
{
"title": "수정된 프로젝트명",
"amount": 1500000,
"status": "confirmed"
}POST /admin/partner/sales/{id}/status/cancel
{
"reason": "고객 요청에 의한 취소"
}DELETE /admin/partner/sales/{id}- 소프트 삭제로 기록 보존
- 커미션 계산된 경우 자동 역계산 수행
- 복원 기능 지원
- 개인 성과: 월별/연도별 매출 추이
- 팀 성과: 하위 파트너 기여도 분석
- 카테고리 분석: 어떤 서비스/제품이 잘 팔리는지
- 채널 분석: 온라인/오프라인/추천 등 채널별 성과
- 일별 매출: 최근 30일간 매출 추이
- 월별 매출: 월별 성과 비교
- 분기별 매출: 계절성 분석
- 연도별 매출: 장기 성장 추이
- 평균 매출: 건당 평균 매출액
- 매출 빈도: 월평균 매출 건수
- 성장률: 전월/전년 대비 성장률
- 목표 달성률: 설정된 목표 대비 달성 정도
- 모든 매출/커미션 처리가 DB 트랜잭션으로 보호
- 실패 시 자동 롤백으로 일관성 보장
- 동시성 제어로 중복 처리 방지
- 모든 매출 변경 이력 기록
- 누가, 언제, 무엇을, 왜 변경했는지 추적
- 커미션 계산 과정 상세 로그
- Admin 미들웨어: 관리자만 접근 가능
- 파트너별 권한: 본인 매출만 조회 가능
- 역할 기반 제어: 매출 등록/수정/삭제 권한 분리
- 날짜 함수 동적 처리 (
strftimevsYEAR/MONTH) - DB 드라이버별 쿼리 최적화
- 크로스 플랫폼 지원
- 인덱싱: partner_id, sales_date, status 복합 인덱스
- 페이징: 대용량 데이터 효율적 처리
- 캐싱: 통계 데이터 임시 저장
- 비동기 처리: 커미션 계산 큐 시스템
- 모듈화: 독립적인 매출 관리 모듈
- 이벤트 기반: 매출 변경 시 자동 알림
- API 지원: 외부 시스템 연동 가능
- 다국화: 다양한 통화 및 언어 지원
- 관리자가 파트너 매출 페이지 접속
- "매출 등록" 버튼 클릭
- 매출 정보 입력 (파트너, 금액, 카테고리 등)
- "확정" 상태로 저장
- 자동 실행:
- 파트너
monthly_sales,total_sales증가 - 상위 파트너들
team_sales증가 - 커미션 자동 계산 및 분배
- 파트너
- 기존 매출 상세 페이지 접속
- "취소" 버튼 클릭
- 취소 사유 입력
- 자동 실행:
- 커미션 역계산 (기존 커미션 회수)
- 파트너 매출 수치 차감
- 상위 파트너들 team_sales 차감
- 상태를 'cancelled'로 변경
?partner_id=3파라미터로 특정 파트너 페이지 접속- 파트너 정보 및 매출 통계 자동 표시
- 필터 적용 (기간, 카테고리, 상태별)
- 실시간 통계 업데이트
- 엑셀 내보내기로 리포트 생성
- 정기적 검증: 주간 단위로 파트너 매출 동기화 상태 확인
- 투명한 공개: 커미션 계산 과정을 파트너들에게 공개
- 신속한 처리: 매출 확정 후 24시간 이내 커미션 분배
- 정확한 기록: 모든 변경 사항에 대한 상세 사유 기록
- 목표 설정: 파트너별 월간/분기별 매출 목표 설정
- 정기 리뷰: 월말 성과 분석 및 피드백 제공
- 트렌드 분석: 계절성, 시장 상황 등을 고려한 전략 수립
- 인센티브 설계: 우수 성과자에 대한 추가 보상 체계
A: 매출 상태가 'confirmed'인지 확인하세요. 'pending' 상태에서는 파트너 정보에 반영되지 않습니다.
A: 매출이 'confirmed' 상태로 변경될 때 자동으로 계산됩니다. "자동 커미션 계산" 옵션을 활성화하면 즉시 분배됩니다.
A: 자동으로 역계산되어 모든 관련 파트너의 커미션이 차감됩니다.
A: 해당 파트너의 monthly_sales + 모든 하위 파트너들의 monthly_sales 합계입니다.
A: 파트너 상세 페이지에서 "동기화 상태" 섹션을 확인하고, 차이가 발견되면 관리자에게 문의하세요.
📌 이 문서는 파트너 매출 관리 시스템의 핵심 기능과 사용법을 담고 있습니다. 정기적인 업데이트를 통해 최신 정보를 유지하겠습니다. 🚀