일기 slecs

비회원 파트너 링크 결제 흐름과 쿠폰 발급 유틸 분리

목차

비회원이 파트너 링크로 들어왔을 때

이커머스에서 회원 가입 → 로그인 → 구매가 정석이지만, 파트너가 외부 SNS에 링크를 뿌리는 시나리오에선 비회원도 그냥 결제까지 끝내고 싶음. 가입 강제하면 이탈률이 확 올라감.

이번 WIP는 그 흐름을 통째로 새로 깐 작업. 일단 절반 정도 됨.

진입점에서 막힌 것들

상품 상세 진입부터 손봤음. 기존엔 세션에 회원 식별값이 박혀 있다는 전제가 도처에 깔려 있어서, 비회원이 들어오면 NPE는 안 떠도 추천 가격/할인이 0원으로 찍히는 사일런트 버그가 있었음.

  • 파트너 링크 파라미터 → 쿠키에 보존 (결제까지 따라다녀야 함)
  • 회원/비회원 분기에서 "비회원이면 그냥 통과" 로직 추가
  • 추천인 식별은 세션 대신 링크 토큰 기준으로 재조회
구간 회원 흐름 비회원 흐름
상품 진입 세션 ID 기준 가격 링크 토큰 기준 가격
장바구니 DB 영속화 쿠키/임시 보관
결제 회원 정보 자동 채움 입력폼 수동 채움
쿠폰 보유분 + 링크 발급분 링크 발급분만

쿠폰 발급 유틸 분리

기존 쿠폰 발급 로직이 회원 영역 안에 박혀 있었음. 비회원 흐름에서도 똑같이 발급해야 해서 공용 유틸로 떼냄. 떼내고 보니 회원 쪽도 중복 코드가 두 군데 있었음 — 이건 덤으로 정리.

파트너 링크 진입
  → 토큰 검증
  → 비회원 식별자 발급 (UUID + 쿠키)
  → 쿠폰 조건 매칭 → 임시 발급
  → 결제 확정 시 정식 발급으로 전환

"임시 발급 → 정식 전환" 단계를 둔 이유는 결제 미완료 상태로 쿠폰을 영구 발급해버리면 어뷰징 여지가 생김. 결제대행사 콜백에서 한 번 더 확정하는 구조로 만듦.

남은 것 (WIP인 이유)

  • 결제대행사 콜백에서 비회원 주문건을 회원 주문건과 같은 큐로 흘릴지 분리할지 결정 못 함
  • 비회원 주문 내역 조회를 주문번호+휴대폰으로 할지, 매직링크 메일로 할지
  • 파트너 정산 집계에 비회원 매출이 잡히는지 검증 안 됨

특히 마지막 항목이 제일 무서움. 정산 누락은 곧바로 파트너 컴플레인으로 이어지는데, 비회원 주문이 파트너 식별값 없이 떨어지면 통째로 정산에서 빠짐. 다음 작업 1순위로 잡음.

회고

WIP로 자르고 커밋한 이유는, 회원/주문/상품/쿠폰 네 영역을 한 번에 건드리니 변경 범위가 너무 커져서 리뷰가 안 통과될 것 같았음. "비회원 진입 + 쿠폰 유틸 분리"까지만 1차로 끊고, 결제/정산 연결은 후속 PR로 분리하는 게 맞다고 판단.

"한 번에 다 끝내자" 는 본능을 누르고 끊어 친 게 이번 회고의 메인.

다음

댓글 0

첫 댓글 달아줘.