장바구니
장바구니 화면을 소개합니다
Last updated
장바구니 화면을 소개합니다
Last updated
장바구니 목록 정보를 조회하여, 해당 금액을 합산해 화면에 노출합니다. 장바구니에 담긴 상품의 정보는 장바구니에 추가된 시점이 아닌 현재 시점 기준으로 출력됩니다.
로그인 여부에 따라 회원과 비회원 장바구니 목록을 조회하는 API가 상이하나, 응답 값 (Responses)형식은 동일합니다.
► 장바구니 목록 조회하기 로그인 회원의 장바구니 목록을 조회합니다.
회원의 장바구니 목록 내 상품 정보와 합배송 상품의 합산 금액 정보를 조회합니다.
deliveryGroups
실제 구매 가능한 장바구니 목록입니다.
장바구니 관련 아래 소개 드릴 API에서 파라미터로 자주 활용되는 cartNo (장바구니 번호)의 경우, 스키마 내 orderProductOptions에서 상품 옵션 별로 확인 가능합니다.
동일 배송지별 합배송을 하기 위해서, 배송지 그룹 deliveryGroups > 주문 상품 orderProducts > 주문 상품 옵션 orderProductOptions 기준으로 매핑되어 3depth 배열로 응답 값이 나열됩니다.
'옵션'과 '텍스트 옵션'이 모두 동일한 상품일 경우, orderProductOptions 에서 optionNo와 optionInputs값을 비교하여 '중복 상품' 이라는 안내 라벨을 화면에 노출합니다.
price
장바구니 가격 정보입니다.
실제 구매 가능한 장바구니 리스트 deliveryGroups 를 모두 합산한 가격을 노출합니다. (총 합계금액 = 총 상품금액 - 총 할인금애 + 총 배송비)
배송비
만약 합배송이라서 동일한 배송비가 묶여서 적용되는 경우 열을 병합하여 배송비를 표기합니다.
묶음 기준은 어드민의 배송비 템플릿 '묶음 배송 불가' 상품입니다.
예상 적립금
accumulationAmtWhenBuyConfirm 을 호출하여 노출할 수 있으며, '(판매가 - 즉시할인금액 ± 옵션가)x수량' 으로 계산됩니다.
단, 어드민에서 '구매 적립금 기준 금액'에 따라 선택되지 않은 금액은 계산 시 제외됩니다.
invalidProducts
장바구니에 추가한 상품 중, 구매 불가능한 장바구니 리스트입니다.
구매 불가능 상품 invalidProducts > 주문 상품 옵션 orderProductOptions 기준으로 매핑(mapping)되어 2depth 배열로 응답 데이터가 나타납니다.
invalidProducts인 경우 '구매 제한 상품' 처리하여 화면에 노출하며 합산 가격에서는 해당 가격을 제외합니다.
► 비회원 장바구니 목록 조회하기 로그인 하지 않은 비회원의 장바구니 목록을 조회합니다.
로그인 하지 않은 비회원의 장바구니 금액 및 합배송 상품을 계산하여 장바구니 목록을 조회합니다.
비회원의 경우, 장바구니 데이터를 샵바이 DB 서버에 따로 저장하지 않고, localStorage에 저장하므로
아래 문서의 ㉡ 장바구니 옵션/수량 변경, ㉢ 장바구니 삭제, 🅑 금액 정보에 대한 API가 별도로 존재하지 않고
모두 해당 POST/ guest/cart를 호출하여 조회/수정/계산 합니다.
장바구니 화면 내에서 상품의 옵션 및 수량 변경이 가능합니다.
상품 이미지 하단에 [옵션/수량 변경] 버튼이 출력되며, 클릭 시 옵션 별로 옵션 및 수량 정보를 수정할 수 있습니다. 구매 불가 상품의 경우 해당 버튼이 노출되지 않습니다.
상품을 구매하는 기준은 '상품 단위'가 아닌 '옵션 단위' 입니다.
상품 상세화면에서 소개한 GET /products/{productNo}/options 을 호출하여 해당 상품의 모든 옵션 정보를 불러와 select-box 구현합니다.
GET /product/{productNo}/options
► 상품 옵션 조회하기 해당 상품번호(productNo)에 대한 옵션 정보를 조회합니다.
장바구니에서 상품의 '옵션을 변경' 한다는 것은 기존 항목을 삭제하고 새로운 항목을 추가하는 프로세스 입니다. 따라서, (step 2-1) 옵션 변경이 포함된 경우와 (step 2-2) 옵션을 변경하지 않고 수량만 변경하는 경우에 각각 호출하는 API가 상이합니다.
'변경 완료' 버튼 클릭 시 아래 2가지 API를 호출하여 DELETE /cart 로 기존 장바구니 옵션을 삭제하고, POST /cart 로 새로운 장바구니 옵션을 등록합니다.
► 장바구니 삭제하기 로그인 회원의 장바구니를 삭제합니다.
► 장바구니 등록하기 로그인 회원의 장바구니 구매 수량과 옵션을 등록합니다.
Request Body OptionInputs 을 통해 텍스트 옵션도 수정 가능합니다.
PUT /cart ► 장바구니 수정하기 로그인 회원의 장바구니 구매 수량을 수정합니다.
㉠ 장바구니 리스트를 다시 호출하여 화면에 노출합니다.
장바구니 리스트에서 특정 상품만 선택하여 삭제할 수 있습니다.
► 장바구니 삭제하기 로그인 회원의 장바구니를 삭제합니다.
장바구니 리스트에서 체크박스에 '체크 된 항목이 변경될 때마다' 실시간으로 금액 정보를 계산합니다.
주문 금액을 계산하는 로직은 아래 GET /cart/calculate 단일 API만 사용하시길 바랍니다.
► 장바구니에서 선택된 상품금액 계산하기 장바구니에서 선택된 상품(cartNo) 금액을 게산합니다.
선택된 상품의 가격정보를 포함하여 예상 적립금도 함께 계산하여 노출됩니다. cartNo은 GET /cart API 내 상품 옵션 별로 orderProductOptions 에서 확인 가능합니다.
PC
상품 체크 박스 선택 후 [선택 상품 주문] 버튼 클릭 시 선택한 상품 옵션에 대한 주문서를 생성합니다.
[전체 상품 주문] 버튼 클릭 시, 장바구니 리스트 전체 상품 옵션에 대한 주문서를 생성합니다.
모바일
상품 체크박스 선택 후 [주문하기] 버튼 클릭 시, 선택한 상품 옵션에 대한 주문서를 생성합니다.
► 주문서 생성 요청하기 선택한 상품의 옵션에 대한 주문서를 생성합니다.
주문서를 생성하는 API로 주문서 화면으로 이동하기 전 단계에서 호출해야 합니다. 해당 API에서 응답 값으로 획득한 주문서 번호 orderSheetsNo 를 주문서 화면으로 전달합니다.
비회원 주문인 경우 accessToken을 null로 보냅니다.