장바구니와 결제 시작
장바구니는 게스트와 로그인 사용자를 분리해서 처리합니다. 결제는 PG별 내부 경로가 아니라 /payments/initialize로 시작합니다.
게스트 장바구니
섹션 제목: “게스트 장바구니”| 메서드 | 경로 | 설명 | 사용자 토큰 |
|---|---|---|---|
| GET | /guest-cart | 게스트 장바구니 조회 | 필요 없음 |
| POST | /guest-cart | 게스트 장바구니 추가 | 필요 없음 |
| PUT | /guest-cart/quantity | 게스트 장바구니 수량 변경 | 필요 없음 |
| DELETE | /guest-cart/{itemId} | 게스트 장바구니 항목 삭제 | 필요 없음 |
| DELETE | /guest-cart | 게스트 장바구니 비우기 | 필요 없음 |
로그인 장바구니
섹션 제목: “로그인 장바구니”| 메서드 | 경로 | 설명 | 사용자 토큰 |
|---|---|---|---|
| GET | /cart | 로그인 장바구니 조회 | 필수 |
| POST | /cart | 로그인 장바구니 추가 | 필수 |
| PUT | /cart/quantity | 로그인 장바구니 수량 변경 | 필수 |
| DELETE | /cart/{itemId} | 로그인 장바구니 항목 삭제 | 필수 |
| DELETE | /cart | 로그인 장바구니 비우기 | 필수 |
| POST | /cart/merge-guest | 게스트 장바구니를 로그인 장바구니로 병합 | 필수 |
주문과 결제
섹션 제목: “주문과 결제”| 메서드 | 경로 | 설명 | 사용자 토큰 |
|---|---|---|---|
| GET | /checkout/metadata | 결제 화면 메타데이터 조회 | 필요 없음 |
| POST | /orders | 주문 생성 | 필수 |
| DELETE | /orders/{orderId} | 주문 삭제 | 필수 |
| GET | /orders/check | 주문 상태 확인 | 필수 |
| GET | /orders/paid-products | 결제된 상품 조회 | 필수 |
| POST | /orders/validate-pcc-number | 개인통관고유부호 검증 | 필수 |
| POST | /payments/initialize | 결제 초기화 | 주문 흐름에 따라 필요 |
결제 초기화 예시
섹션 제목: “결제 초기화 예시”const payment = await fetch(`${API_BASE}/payments/initialize`, { method: 'POST', headers: { 'X-Runmoa-Site-Key': STOREFRONT_KEY, Authorization: `Bearer ${token}`, 'Content-Type': 'application/json', Accept: 'application/json', }, body: JSON.stringify({ order_id: 12837, redirect_url: `${window.location.origin}/payment-result`, }),}).then((response) => response.json());| 메서드 | 경로 | 설명 | 사용자 토큰 |
|---|---|---|---|
| GET | /coupons/claimable | 받을 수 있는 쿠폰 조회 | 필수 |
| GET | /coupons/my | 내 쿠폰 조회 | 필수 |
| POST | /coupons/{campaign}/claim | 쿠폰 받기 | 필수 |
| POST | /coupons/validate | 쿠폰 적용 가능 여부 검증 | 필수 |