다양한 카테고리의 상품들을 구매 및 판매하는 커머스 서비스입니다.
- 회원가입
- 구매자/판매자 나누어서 회원가입한다. 구매자는 CUSTOMER 권한을, 판매자는 SELLER 권한을 지닌다.
- 회원가입시 이메일과 패스워드를 입력받으며, 아이디는 unique 해야한다.
- 로그인
- 로그인시 JWT 토큰을 발급한다.
- 로그인시 회원가입 때 사용한 이메일과 비밀번호가 일치해야 한다.
- 상품 등록하기
- SELLER 권한을 가진 판매자는 판매할 상품을 등록할 수 있다.
- 상품 이름, 카테고리, 가격, 설명, 수량을 등록해야 한다.
- 상품 조회하기
- 로그인하지 않은 사용자를 포함한 모든 사용자는 상품을 최신순, 가격순으로 조회할 수 있다.
- 페이징 처리를 해서 20개씩 상품을 조회한다.
- 상품 검색하기
- 로그인하지 않은 사용자를 포함한 모든 사용자는 상품 키워드로 검색하면 관련 상품들을 조회할 수 있다.
- 페이징 처리를 해서 20개씩 상품을 조회한다.
- 상품 상세 정보 불러오기
- 로그인하지 않은 사용자를 포함한 모든 사용자는 특정 상품의 상세 정보를 볼 수 있다.
- 해당 상품의 이름, 카테고리, 가격, 설명, 남은 수량을 볼 수 있다.
- 장바구니 담기/수정/삭제하기
- CUSTOMER 권한을 가진 구매자는 장바구니에 사고 싶은 상품을 담을 수 있다. 장바구니는 상품 정보와 수량 정보를 갖는다.
- 장바구니에 담긴 상품의 수량 변경 및 상품 삭제를 할 수 있다.
- 주문하기
- 장바구니 내용을 가져와서 transaction 정보를 저장한다.(구매 일자, 결제 금액, 고객 정보, 판매자 정보, 상품 정보)
- 장바구니를 초기화한다.
- 주문 정보 보기
- 구매자는 자신의 주문 정보를 조회할 수 있다.
- 리뷰쓰기
- 구매자는 자신이 주문 완료한 상품에 한해서 상품 리뷰 작성 가능하다.
- 평점과 리뷰 내용을 등록할 수 있다.
- 리뷰 최신순 조회하기
- 상품에 대한 구매자들의 리뷰들을 최신순으로 조회할 수 있다.
- 페이징 처리를 해서 20개씩 리뷰를 조회한다.
- 판매자가 리뷰에 댓글 달기
- 판매자는 자신의 상품에 구매자가 리뷰를 작성하면 해당 리뷰에 댓글을 작성할 수 있다.
- 적립금 시스템
- 적립금은 구매자가 상품 구매시 함께 사용할 수 있으며 구매 금액에서 차감할 수 있다.
- 구매자는 상품 구매시 구매 금액의 1%를 적립할 수 있다.
- 최근 본 상품과 관련 인기 상품 불러오기
- 접속한 IP에서 최근 본 상품과 해당 상품 카테고리의 인기 상품들을 조회할 수 있다.
- 상품 문의
- 구매자는 상품에 대한 문의를 작성할 수 있다.
- 판매자는 구매자가 작성한 문의에 답변을 할 수 있다.
![스크린샷 2023-06-01 오전 12 21 30](https://private-user-images.githubusercontent.com/100079037/242326276-3e7946ba-1ddb-4909-8855-a573d54042e8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxMjUzNTgsIm5iZiI6MTcyNjEyNTA1OCwicGF0aCI6Ii8xMDAwNzkwMzcvMjQyMzI2Mjc2LTNlNzk0NmJhLTFkZGItNDkwOS04ODU1LWE1NzNkNTQwNDJlOC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkxMlQwNzEwNThaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yZjQ2MzA3ZWEwMTFkYzQ2MzQ4ZDg1MjQ3NWY1NmM1NmMyMjUzZTE5OTc2ZDJlNmY1NDJmMTY0NTRhZGFkYzg2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.DJDAgS2uwdkGDUQmoUrvLSg-Nn8KUeXZPQZMpYNiwqM)