Skip to content

bm.do('cart:addItem')

  • 장바구니에 상품을 추가해요.
jsx
// PRODUCT 세팅을 통해 블록에 설정된 상품 카탈로그 정보
const item = bm.context.property.products.data[index];

// 바로 담기가 불가능한 경우 상세 페이지로 이동
if (!item.isQuickAddable) {
  return bm.do('modal:open', {
    message: '옵션 선택이 필요한 상품입니다.\n상품 상세 페이지로 이동하시겠어요?',
    buttons: [
      { name: '이동하기', url: `/products/${item.slug}` },
      { name: '취소' }
    ]
  });
}

try {
  // 장바구니 API 호출
  await bm.do('cart:addItem', {
    product: item.product.id,
    variant: item.variant.id,
    shippingMethod: item.shipping.methods[0].id,
    quantity: 1
  });

  bm.do('snackbar:open', { message: '상품을 장바구니에 담았어요' });

} catch (err) {
  // 에러 발생 시 메시지 출력
  bm.do('snackbar:open', { message: err.message });
}

상품 목록에서 상품을 장바구니에 바로 담는(Quick Add) 예시

jsx
await bm.do('cart:addItem', {
  product: '...',         // (필수) 상품 ID
  variant: '...',         // (필수) 세부 품목 ID
  shippingMethod: '...',  // (필수) 배송 방식 ID
  quantity: 1             // (필수) 수량
})

Sixshop Developers Portal