테마
$cart
- 장바구니에 정보를 제공합니다.
- 장바구니나 담은 품목에 문제가 있는 경우
status,errors필드를 통해 확인할 수 있어요.
jsx
{
"status": "ok", // 장바구니 상태 (예: "ok", "error")
"errors": [ // 장바구니 에러 목록
{
"code": "item-error", // 에러 코드
"items": ["..."] // 에러와 관련된 품목 ID 목록
}
],
"count": 5, // 담은 상품 수
"total": {
"amount": 111000, // 장바구니 총액
"items": {
"price": {
"original": 120000, // 담은 상품 할인 전 총액
"sale": 108000 // 담은 상품 할인 후 총액
},
"discounted": 12000 // 담은 상품 할인 총액
},
"shipping": {
"fee": {
"original": 3000, // 배송비 할인 전 총액
"sale": 3000 // 배송비 할인 후 총액
},
"discounted": 0 // 배송비 할인 총액
},
"selected": { // 장바구니 내 선택 품목 기준의 총액 정보
"amount": 111000,
"items": {
"price": {
"original": 120000,
"sale": 108000
},
"discounted": 12000
},
"shipping": {
"fee": {
"original": 3000,
"sale": 3000
},
"discounted": 0
}
}
},
"groups": [ // 배송 기준으로 묶인 품목 그룹 목록
{
"items": [
{
"id": "...", // 장바구니 품목 ID
"selected": true, // 품목 선택 여부
"status": "error", // 품목 상태 (예: "ok", "error")
"errors": [ // 품목 에러 목록 (없으면 빈 배열)
{ "code": "sold-out-stock" } // 에러 코드
],
"quantity": 10, // 수량
"price": {
"original": 120000, // 할인 전 총액 (단가 × 수량)
"sale": 108000 // 할인 후 총액 (단가 × 수량)
},
"discounted": 12000, // 할인 총액
"discounts": [ // 적용된 할인 목록
{
"type": "percentage", // 할인 타입 (예: "percentage", "fixed")
"value": 10, // 할인값 (예: 10% 또는 12000원)
"discounted": 12000, // 할인 금액
"before": 120000, // 할인 적용 전 금액
"after": 108000 // 할인 적용 후 금액
}
],
"product": { // 상품 정보
"id": "...", // 상품 ID
"slug": "...", // 상품 슬러그 (상품 URL에 사용)
"name": "상품 이름", // 상품 이름
"isOutOfStock": false, // 품절 여부
"images": [ ... ], // 상품 이미지 목록
"purchaseRule": { // 구매 규칙
"quantityLimit": null | { // 구매 수량 제한 (미설정 시 null)
"scope": "product", // 수량 제한 범위 ("product", "variant")
"min": 0 | null, // 최소 구매 수량 (미설정 시 null)
"max": 0 | null // 최대 구매 수량 (미설정 시 null)
}
}
},
"variant": { // 세부 품목 정보
"id": "...", // 세부 품목 ID
"images": [ ... ], // 세부 품목 이미지 목록
"price": {
"original": 12000, // 세부 품목 단가 (정가)
"sale": 10800 // 세부 품목 단가 (판매가)
},
"types": [ // 선택된 옵션 조합
{
"option": {
"id": "...", // 옵션 ID (옵션: 사이즈, 색상 등)
"name": "사이즈" // 옵션 이름
},
"variation": {
"id": "...", // 옵션 선택지 ID
"value": "XL" // 옵션 선택지 값
}
}
]
},
"stock": null | { // 재고 정보 (재고 미관리 시 null)
"id": "...", // 재고 ID
"quantity": 100, // 재고 수량
"sku": "..." // SKU
},
"shippingMethod": null | { // 선택된 배송 방식 ('비배송 상품' 또는 '배송 불가 상태'인 경우 null)
"id": "...", // 배송 방식 ID
"name": "택배" // 배송 방식 이름
},
"customValues": [ // 커스텀 옵션 입력 값 목록
// 입력 값이 하나인 경우
{
"id": "...", // 커스텀 옵션 ID
"name": "자수 문구", // 커스텀 옵션 이름
"value": "HAPPY BIRTHDAY", // 커스텀 옵션 값
"priceValue": 2000, // 커스텀 옵션 가격 조정액 (N = 추가 금액, -N = 차감 금액)
"isVisible": true // 디스플레이 여부
},
// 입력 값이 여러 개인 경우
{
"id": "...",
"name": "포장 방법",
"value": [
{ "value": "선물 포장", "priceValue": 1000 }
],
"isVisible": true // 디스플레이 여부
}
]
}
],
"shipping": null | { // 그룹에 적용된 배송 정보 ('비배송 상품 그룹' 또는 '구매 불가 상품 그룹'인 경우 null)
"calculation": {
"type": "bundled" // 배송비 계산 방식 (예: "separated", "bundled")
},
"method": { // 그룹에 적용된 배송 방식
"id": "...", // 배송 방식 ID
"name": "택배" // 배송 방식 이름
},
"policy": { // 배송 방식에 적용된 배송 정책
"country": "KR", // 국가 코드
"rules": [ // 기본 배송 규칙
{
"fee": 3000, // 배송비
"free": {
"priceOver": null // 무료 배송 조건 금액 (null이면 무료 배송 없음)
}
}
],
"regions": [ // 지역별 추가 배송 규칙 목록
{
"name": "제주 지역",
"rules": [ ... ]
}
]
}
},
"total": { // 그룹 합계 정보
"items": {
"price": {
"sale": 108000 // 그룹 내 상품 할인 후 총액
}
},
"shipping": {
"fee": {
"sale": 3000 // 그룹 배송비
}
},
"selected": { // 그룹 내 선택 품목 기준의 합계 정보
"items": {
"price": {
"sale": 108000
}
},
"shipping": {
"fee": {
"sale": 3000
}
}
}
}
}
]
}