상점 등록
상점명, 카테고리, 판매 채널 URL, 고객 응대 정보를 등록합니다.
판매자, 인플루언서, 관리자가 같은 순서로 업무를 이해할 수 있도록 상품 등록, 선구매 증빙, 배송 확인, 리뷰 검수, 정산 지급을 분리해 정리했습니다.
상점명, 카테고리, 판매 채널 URL, 고객 응대 정보를 등록합니다.
상품명, 가격, 이미지, 상세 설명, 재고, 노출 상태와 SmartStore급 상품 메타데이터를 입력합니다.
선구매 체험단 조건, 선정 인원, 리워드, 리뷰 기준을 설정합니다.
SmartStore 상품 가져오기는 먼저 dry-run diff로 source product id, WithMall product id, 중복 상태, 이미지, 옵션, 카테고리, VAT, 배송/반품 정책, 캠페인 생성 모드를 확인합니다.
카테고리 속성, 상품정보고시, KC/인증, 제조사, 브랜드, 원산지, 옵션별 재고, 구매 제한, 판매 기간, 노출 채널, 세금/계산서, 리뷰/Q&A, 판매자 혜택, 일괄 수정/롤백 기준을 별도 구조로 관리합니다.
무료/유료/조건부/수량별/구간별/지역 추가/해외 출고/설치비/묶음 배송 템플릿, 출고지와 반품/교환 주소록, 택배 계약 매핑, 배송 지연, 반품 보류/해제/거절/철회, 교환 픽업/재발송, 부분 취소/부분 반품을 분리합니다.
상품 쿠폰, 주문 쿠폰, 복수 구매 할인, 리뷰 리워드, 인플루언서 등급 리워드, 공동구매 할인 래더, 예산 가드, ROAS 출처, 승인/롤백 상태와 판매자 KYC, 등급, 굿서비스 점수, 정책 준수, 스태프 권한을 함께 관리합니다.
| 모드 | 사용 상황 | 정산 경계 |
|---|---|---|
| normal_sale | 일반 구매자가 상품을 구매하는 일반 판매 흐름입니다. | 판매자 매출로 처리하며 인플루언서 환급을 만들지 않습니다. |
| campaign_prepurchase | 선정된 인플루언서가 자비로 먼저 구매하고 주문/영수증/리뷰 증빙을 제출하는 체험단 흐름입니다. | 구매 환급, 배송비 환급, 리뷰 리워드가 판매자 매출과 분리됩니다. |
| group_buy | 최소 참여자, 마감 시각, 할인 래더, 재고 hold/release가 있는 공동구매 흐름입니다. | threshold 성공/실패, 결제 window, 자동 취소/환불, settlement group을 일반 판매와 분리합니다. |
| semi_trial_group_buy | 공동구매 할인과 인플루언서 체험단 선구매 혜택을 함께 보여주는 반체험 공동구매 흐름입니다. | withmall_group_buy 매출과 withmall_semi_trial_group_buy 추가 혜택을 분리하고, posting/review proof 승인 전 추가 혜택 지급을 금지합니다. |
Campaign discovery card는 purchaseMode badge와 benefitMode를 함께 보여야 합니다. benefitMode는 normal_sale_discount, campaign_prepurchase_proof_locked, campaign_prepurchase_payable, group_buy_discount_ladder, semi_trial_group_buy_proof_locked, semi_trial_group_buy_payable 중 하나로 표시합니다.
팔로워, 조회수, 참여율, 카테고리 적합도, 과거 완료율, 리스크, 인증 채널을 influenceScore로 계산하고, 인플루언서에게 내 점수, 예상 혜택, 이유, next-tier requirements를 보여줍니다.
판매자는 seller manual tier benefit, seller override, seller budget cap을 설정할 수 있습니다. platform recommended benefit과 finalBenefit은 예산 cap을 넘지 않게 계산합니다.
finalBenefit은 추천 표시용입니다. 실제 지급 실행은 payableBenefit과 payableAdditionalBenefitAmount를 기준으로 하며, proof 전 추가 혜택은 lockedBenefit과 lockedAdditionalBenefitAmount에 보류합니다.
| 단계 | 해야 할 일 | 완료 기준 |
|---|---|---|
| 지원 | 캠페인 상세를 확인하고 신청합니다. | 선정 대기 또는 선정 완료 상태 표시 |
| 선구매 | 지정 상품을 구매하고 주문번호와 영수증 URL을 제출합니다. | 구매 증빙 접수 상태 표시 |
| 배송 | 운송장 번호와 수령 상태를 확인합니다. | 배송 이슈가 있으면 정산 전 보류 |
| 리뷰 | 리뷰 URL, 사진, 평점, 본문을 제출합니다. | 검수 승인 후 정산 진행 |
상점, 상품, 캠페인, 주문 증빙, 리뷰 증빙을 승인 또는 반려합니다.
미배송, 오배송, 리뷰 누락, 환불 요구, 지급 실패를 사유와 함께 처리합니다.
조정 금액, 지급 보류, 지급 완료를 원본 증빙과 분리된 이벤트로 기록합니다.
실제 주문 smoke는 GSM/Cloudflare에 Naver Commerce secret name과 실주문 입력이 준비되고 `WITHMALL_NAVER_ORDER_VERIFY_MODE=live`, `WITHMALL_NAVER_SMOKE_ALLOW_LIVE=true`가 같은 실행에서 명시될 때만 수행합니다.
택배 조회는 provider contract, schema/status mapping, HTTPS endpoint 또는 gateway, GSM-backed credential, tracking number, order reference, expected status가 모두 있을 때만 read-only lookup으로 실행합니다.
실송금 provider smoke는 provider 계약, schema confirmation, finance approval, first-transfer authorization, rollback rehearsal, production secret readiness가 통과하기 전에는 `blocked` 상태로 유지합니다.
| 항목 | 현재 상태 | 완료 증빙 |
|---|---|---|
| Naver live order evidence | BLOCKED | 실제 주문번호, 금액, 배송/취소 가능 상태를 원문 secret 없이 증빙합니다. |
| Payout provider onboarding/contracts | BLOCKED | 지급 provider 계약, live API 권한, 실패 callback 정책이 확정되어야 합니다. |
| GSM/Cloudflare secret readiness | BLOCKED | credential 원문은 저장하지 않고 secret name, binding name, readiness 로그만 남깁니다. |
| Finance/live approval | BLOCKED | 실제 비용 발생 주문과 실송금은 승인자, 승인 시각, 금액 한도 없이는 실행하지 않습니다. |
| Provider schema confirmation | BLOCKED | 주문, 배송, 지급 provider 응답 필드와 실패 이벤트 fixture가 API 계약서와 일치해야 합니다. |
| First live transfer authorization | BLOCKED | 최초 실송금은 dry-run, 수동 hold, 지급 로그, 회계 확인을 모두 통과해야 합니다. |
| Role-session evidence | BLOCKED | 판매자, 인플루언서, 관리자 실제 세션에서 같은 주문/리뷰/정산 건이 일관되게 보여야 합니다. |