테마
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 // (필수) 수량
})