비회원 파트너 링크 결제 흐름과 쿠폰 발급 유틸 분리
목차
비회원이 파트너 링크로 들어왔을 때
이커머스에서 회원 가입 → 로그인 → 구매가 정석이지만, 파트너가 외부 SNS에 링크를 뿌리는 시나리오에선 비회원도 그냥 결제까지 끝내고 싶음. 가입 강제하면 이탈률이 확 올라감.
이번 WIP는 그 흐름을 통째로 새로 깐 작업. 일단 절반 정도 됨.
진입점에서 막힌 것들
상품 상세 진입부터 손봤음. 기존엔 세션에 회원 식별값이 박혀 있다는 전제가 도처에 깔려 있어서, 비회원이 들어오면 NPE는 안 떠도 추천 가격/할인이 0원으로 찍히는 사일런트 버그가 있었음.
- 파트너 링크 파라미터 → 쿠키에 보존 (결제까지 따라다녀야 함)
- 회원/비회원 분기에서 "비회원이면 그냥 통과" 로직 추가
- 추천인 식별은 세션 대신 링크 토큰 기준으로 재조회
| 구간 | 회원 흐름 | 비회원 흐름 |
|---|---|---|
| 상품 진입 | 세션 ID 기준 가격 | 링크 토큰 기준 가격 |
| 장바구니 | DB 영속화 | 쿠키/임시 보관 |
| 결제 | 회원 정보 자동 채움 | 입력폼 수동 채움 |
| 쿠폰 | 보유분 + 링크 발급분 | 링크 발급분만 |
쿠폰 발급 유틸 분리
기존 쿠폰 발급 로직이 회원 영역 안에 박혀 있었음. 비회원 흐름에서도 똑같이 발급해야 해서 공용 유틸로 떼냄. 떼내고 보니 회원 쪽도 중복 코드가 두 군데 있었음 — 이건 덤으로 정리.
파트너 링크 진입
→ 토큰 검증
→ 비회원 식별자 발급 (UUID + 쿠키)
→ 쿠폰 조건 매칭 → 임시 발급
→ 결제 확정 시 정식 발급으로 전환
"임시 발급 → 정식 전환" 단계를 둔 이유는 결제 미완료 상태로 쿠폰을 영구 발급해버리면 어뷰징 여지가 생김. 결제대행사 콜백에서 한 번 더 확정하는 구조로 만듦.
남은 것 (WIP인 이유)
- 결제대행사 콜백에서 비회원 주문건을 회원 주문건과 같은 큐로 흘릴지 분리할지 결정 못 함
- 비회원 주문 내역 조회를 주문번호+휴대폰으로 할지, 매직링크 메일로 할지
- 파트너 정산 집계에 비회원 매출이 잡히는지 검증 안 됨
특히 마지막 항목이 제일 무서움. 정산 누락은 곧바로 파트너 컴플레인으로 이어지는데, 비회원 주문이 파트너 식별값 없이 떨어지면 통째로 정산에서 빠짐. 다음 작업 1순위로 잡음.
회고
WIP로 자르고 커밋한 이유는, 회원/주문/상품/쿠폰 네 영역을 한 번에 건드리니 변경 범위가 너무 커져서 리뷰가 안 통과될 것 같았음. "비회원 진입 + 쿠폰 유틸 분리"까지만 1차로 끊고, 결제/정산 연결은 후속 PR로 분리하는 게 맞다고 판단.
"한 번에 다 끝내자" 는 본능을 누르고 끊어 친 게 이번 회고의 메인.
다음
댓글 0
첫 댓글 달아줘.