STYNA의 주문 흐름은 사용자가 주문서에서 보는 예상 금액과 서버가 저장하는 최종 금액을 분리했습니다. 장바구니와 주문서에서는 결제 전 확인을 위해 금액을 미리 보여주고, 실제 주문 생성과 취소는 Firebase Functions에서 다시 검증합니다.

기준: 2026.09 개발 기록

전체 흐름

  1. 사용자가 상품 상세 또는 장바구니에서 옵션과 수량을 선택합니다.
  2. 장바구니 화면에서 주문할 상품을 선택합니다.
  3. 주문서 화면에서 배송지, 결제수단, 쿠폰, 포인트를 입력합니다.
  4. 클라이언트는 예상 결제금액을 보여줍니다.
  5. OrderService.createOrder()가 /api/order/로 최소 주문 정보를 전송합니다.
  6. Firebase Functions의 order 핸들러가 상품, 쿠폰, 포인트, 배송비를 다시 검증합니다.
  7. Firestore transaction 안에서 주문 생성, 재고 차감, 쿠폰 사용 처리, 포인트 차감, 장바구니 정리를 함께 처리합니다.
  8. 주문 완료 화면과 마이페이지 주문 내역은 서버에 저장된 주문 데이터를 기준으로 보여줍니다.

클라이언트가 보내는 값

주문 요청은 최종 금액을 신뢰값으로 보내지 않습니다. 서버 검증에 필요한 입력만 전달합니다.

서버에서 다시 계산하는 값