MSA-6. 주문 기능 기획
해당 프로젝트는 MSA를 접목한 예약구매 서비스이고, 이 프로젝트의 도메인은 e-commerce이다. 따라서 사용자는 특정 상품을 구매하기로 결정한다면, 결제 시작 → 결제 중 → 결제 완료 → 주문서 작성 → 주문 완료 → 배송 시작 → 배송 중 → 배송 완료(구매 확정) 이라는 단계를 거치게 된다. 이 중 주문서 작성 ~ 배송 완료 단계를 기획하였다.
- 사용자는 노출된 상품에 한하여 주문 및 WishList에 등록
- 현재는 재고 부족으로 인한 주문 불가는 없다고 가정 → 추후 구현 예정
- 마이페이지
- WishList에 등록한 상품 리스트
- 주문한 상품의 상태 조회
- 주문 상품
- 주문 상품에 대한 상태 조회
- 주문 후 D+1에 배송중, D+2일에 배송완료 → 주문 일자 +1 엔 dilivery status를 배송중으로, +2엔 배송완료로 변경
- 주문 상품에 대한 취소
- 주문 상태가 배송중 전까지만 취소 가능
- 취소 후에는 상품의 재고를 복구
- 주문 취소 후 상태는 취소 완료로 변경 → dilivery status가 배송중일 시 취소 불가하다는 응답 발신
- 취소가 가능하면 취소하고 기존 stock+(주문수량), delivery status를 canceled로 변경
- 반품
- 배송 완료 후 D+1일까지만 반품이 가능 그 이후엔 불가
- 배송 완료가 된 상품에 대해서만 반품이 가능
- 반품한 상품은 반품 신청 후 D+1에 재고에 반영
- 재고에 반영된 후 상태는 반품완료로 변경
- 주문 상품에 대한 상태 조회
- orders
- 주문 번호
- 주문자
- 주문 일자
- 주문 상태
- 상태값
- order_create: 주문 완료
- on_delivery: 배송 중
- delivery_comlete: 배송 완료
- order_complete: 주문 확정
- return_create: 반품 접수
- return_complete: 반품 확정
- order_detail
- 주문 상세 번호
- 주문 번호 (FK) ← 얘로 주문상세를 묶기
- 주문 제품 번호(FK / ProductID)
- 주문 금액
- 주문 수량
위와 같이 테이블 구조와 상태 변경에 따른 플로우를 기획하였다.
Comments