요구사항 명세 - f-lab-edu/jshop GitHub Wiki
회원가입
- 회원은 일반회원, 판매회원으로 나뉨
- 일반회원가입에는 이메일, 이름, 비밀번호가 필요함
- 판매회원의 회원가입도 동일함
- 중복 이메일은 가입 불가
- 이메일 검증 로직은 고려중
로그인
- 회원은 자신의 이메일과 비밀번호를 사용해 로그인할 수 있다.
- jwt를 사용해 사용자 인가
- refresh token은 고려중
일반회원
- 회원은 자신의 정보를 변경할 수 있음
- 회원은 각자 잔고를 갖는다.
- 회원은 잔고에 돈을 넣고 뺄 수 있다.
- 회원은 자신의 장바구니를 확인할 수 있다.
- 회원은 자신의 주문을 조회할 수 있다.
판매회원
- 판매회원은 삼품을 등록할 수 있다.
- 판매자는 자신의 상품을 등록취소할 수 있다.
- 판매자는 자신의 상품정보를 변경할 수 있다.
장바구니
- 장바구니의 상품을 선택해 장바구니에서 제거할 수 있다.
- 장바구니의 상품을 선택해 주문할 수 있다.
- 주문한 상품은 장바구니에서 제거된다.
상품검색
- 모든 사용자는 (회원이 아니더라도) 상품을 검색할 수 있다.
- 검색한 상품은 카테고리별로 필터링할 수 있다.
- 검색한 상품은 속성별로 필터링할 수 있다.
- 검색한 상품은 정렬을 수행할 수 있다.
상품
- 상품은 이름, 가격등 정보를 갖는다.
- 상품은 속성을 갖는다.
- 상품은 하나 이상의 상세상품으로 이루어진다.
- 상세상품은 상품에서 속성정보가 선택된 상태를 말한다 (ex 검은색, 42인치 정보등을 선택한 실제 상품단위)
주문
- 장바구니나, 상품 상세페이지에서 주문을 할 수 있다.
- 가격이 잔고보다 크면 주문이 불가능하다.
- 주문 수량이 재고수량보다 적어야 주문이 가능하다.
- 회원은 자신의 주문을 조회할 수 있다.
- 회원은 자신의 주문을 취소할 수 있다.
배송
카테고리
- 상품은 하나의 카테고리를 갖는다.
- 카테고리는 여러 depth로 구성되어 있으며, 하나의 카테고리 아래에 여러개의 카테고리가 있을 수 있음
- 카테고리를 통해 조회가 가능하다.
상품문의, 상품평
- 회원은 상품 문의를 남길 수 있다
- 회원은 상품 평을 남길 수 있다.