Skip to content

[D2C-38] 체크아웃·쿠폰 적용·주문/결제 시뮬레이션 흐름 main 통합#14

Merged
jjunier merged 4 commits into
mainfrom
develop
May 15, 2026
Merged

[D2C-38] 체크아웃·쿠폰 적용·주문/결제 시뮬레이션 흐름 main 통합#14
jjunier merged 4 commits into
mainfrom
develop

Conversation

@jjunier
Copy link
Copy Markdown
Member

@jjunier jjunier commented May 15, 2026

개요

본 PR은 develop 브랜치에 병합된 D2C-38 체크아웃·쿠폰 적용·주문/결제 시뮬레이션 흐름 구현 결과를 main 브랜치에 반영하기 위한 PR입니다.

D2C-38에서는 사용자가 장바구니에서 체크아웃으로 진입한 뒤 쿠폰을 적용하고, 주문을 생성하며, 결제 성공/실패 시뮬레이션을 수행할 수 있도록 구매 핵심 흐름을 구현했습니다.

본 PR에서는 develop에서 검증된 체크아웃, 쿠폰 적용, 주문 생성, 결제 시뮬레이션, 장바구니 생명주기 조정, 쿠폰 재사용 차단, 상품 수량 제한 정책을 main에 병합하여 Sprint 2 구매 흐름의 배포 기준을 정리합니다.


포함 범위

체크아웃 화면 및 구매 흐름

  • 체크아웃 페이지 UI 구성
  • 장바구니 기반 체크아웃 정보 조회
  • 주문 상품 목록 표시
  • 결제 요약 표시
  • 상품 금액, 쿠폰 할인, 최종 결제 금액 표시
  • 비로그인 상태 및 유효하지 않은 장바구니 상태 처리

쿠폰 적용 흐름

  • 쿠폰 코드 입력 및 적용 API 연동
  • 쿠폰 적용 후 입력값 초기화
  • 적용된 쿠폰명 표시
  • 쿠폰 할인 금액 및 최종 결제 금액 반영
  • 빈 쿠폰 입력 및 동일 쿠폰 재적용 메시지 처리
  • 결제 성공 이력이 있는 쿠폰 재사용 차단
  • 쿠폰 적용 API와 주문 생성 API 양쪽에서 쿠폰 재사용 방어 로직 추가

주문 생성 및 결제 시뮬레이션

  • 주문 생성 API 연동
  • 주문 생성 후 주문 ID 표시
  • 결제 성공/실패 시뮬레이션 API 연동
  • 결제 성공/실패 결과를 체크아웃 화면 내 임시 피드백으로 표시
  • 결제 성공 시 초록 계열 피드백 표시
  • 결제 실패 시 빨간 계열 피드백 표시
  • 결제 시뮬레이션 완료 후 결제 버튼 재클릭 방지
  • 주문 내역 화면 이동 CTA 제공

장바구니 생명주기 정책 조정

  • 주문 생성 시점에는 장바구니를 active 상태로 유지
  • 결제 성공 시점에만 장바구니를 checked_out 상태로 전환
  • 결제 실패 시에는 장바구니를 active 상태로 유지
  • 프론트엔드 d2c_cart_id는 결제 성공 시에만 제거
  • 결제 전 또는 결제 실패 후 장바구니로 돌아갈 수 있도록 흐름 조정

수량 제한 정책 보완

  • 상품별 최대 장바구니 수량을 99개로 통일
  • 장바구니 상품 추가 요청과 수량 수정 요청을 1~99개로 제한
  • 기존 장바구니 수량과 추가 수량의 합계가 99개를 초과하지 않도록 백엔드 검증 추가
  • 장바구니 수량 입력 UI의 최대값을 99개로 조정

테스트 보완

  • 체크아웃 API 테스트 경로를 현재 API contract에 맞게 수정
  • 쿠폰 적용 API 테스트 경로를 현재 API contract에 맞게 수정
  • 백엔드 전체 테스트 통과 확인

검증 결과

develop 브랜치 기준으로 백엔드 테스트를 실행하여 정상 통과를 확인했습니다.

cd apps/api
python -m pytest ./tests -v

프론트엔드 타입 체크를 실행하여 정상 통과를 확인했습니다.

cd apps/web
npm run typecheck

프론트엔드 빌드를 실행하여 정상 통과를 확인했습니다.

cd apps/web
npm run build

수동 확인 항목:

  • /cart에서 /checkout으로 이동 확인
  • 체크아웃 화면 렌더링 확인
  • 장바구니 상품 목록 및 결제 요약 표시 확인
  • 쿠폰 적용 및 할인 금액 반영 확인
  • 쿠폰 적용 후 입력값 초기화 확인
  • 적용된 쿠폰명 표시 확인
  • 빈 쿠폰 입력 시 안내 메시지 확인
  • 동일 쿠폰 재적용 시 경고 메시지 확인
  • 주문 생성 후 주문 ID 표시 확인
  • 결제 성공 시뮬레이션 결과 표시 확인
  • 결제 실패 시뮬레이션 결과 표시 확인
  • 결제 시뮬레이션 완료 후 결제 버튼 비활성화 확인
  • 결제 성공 후 장바구니 종료 확인
  • 결제 실패 후 장바구니 유지 확인
  • 결제 성공한 쿠폰 재사용 차단 확인
  • 상품별 최대 수량 99개 제한 확인
  • 주문 내역 화면 이동 CTA 표시 및 /orders 이동 확인

브랜치 통합 방식

이번 PR의 통합 흐름은 아래와 같습니다.

feature/D2C-38-checkout-order-payment-flow
→ develop
→ main

main 병합 후에는 체크아웃·쿠폰 적용·주문 생성·결제 시뮬레이션 흐름이 배포 기준 브랜치에 반영됩니다.


향후 브랜치 운영 원칙

Sprint 2에서는 아래 브랜치 운영 원칙을 유지합니다.

  • Jira 이슈키별 독립 feature 브랜치 생성
  • 각 feature 브랜치는 develop에서 분기
  • 작업 완료 후 develop으로 개별 PR 생성
  • PR 단위로 CI 검증 후 병합
  • 의미 있는 사용자 흐름 단위가 완료되면 developmain에 병합
  • main은 배포 기준 브랜치로 유지
  • 기능 작업이 누적된 장기 브랜치는 지양

체크리스트

  • D2C-38 브랜치를 develop에 병합
  • 체크아웃 화면 구현 사항 포함
  • 쿠폰 적용 흐름 포함
  • 쿠폰 재사용 차단 로직 포함
  • 주문 생성 API 연동 포함
  • 결제 성공/실패 시뮬레이션 API 연동 포함
  • 장바구니 생명주기 정책 조정 포함
  • 상품별 최대 수량 99개 제한 포함
  • 체크아웃/쿠폰 테스트 경로 수정 포함
  • develop 기준 Backend CI 통과 확인
  • develop 기준 Frontend CI 통과 확인
  • main 병합 완료
  • main 기준 최종 확인

jjunier added 4 commits May 13, 2026 00:32
- implement cart page with cart item list, order summary, and checkout entry
- add cart item removal and quantity update flow from the cart page
- add backend PATCH API for updating cart item quantity
- include product brand name in cart detail response
- add quick add-to-cart action from product catalog cards
- fix repeated cart fetch issue by stabilizing cart page effect dependencies
…r-entry-flow

[D2C-37] 장바구니 화면 및 상품 제거/주문 진입 흐름 구현
- implement checkout page with cart item summary and payment overview
- add coupon apply flow with discount calculation and duplicate-use prevention
- connect order creation and payment success/failure simulation APIs
- update cart lifecycle to keep carts active until successful payment
- clear cart state only after successful payment simulation
- enforce max cart item quantity limit of 99 across frontend and backend
- improve checkout feedback messages and payment result display
…order-payment-flow

[D2C-38] 체크아웃·쿠폰 적용·주문/결제 시뮬레이션 흐름 구현
@jjunier jjunier merged commit 0eb5a71 into main May 15, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant