상품 하나를 등록하고, 받은
product_id로 체크아웃을 여는 데까지예요.
핵심 요약
- 실무에서는
name·0보다 큰display_price·tax_type·save_by: 3을 함께 보내요. - 응답의
product_id를 내 DB에 저장해 두고 체크아웃에 넘겨요. - 상태·재고·카테고리·진열은 판매가 늘면 더해요.
구현 순서
상품을 등록해요
- 할 일: 이름과 판매가로 상품을 만들어요. 쇼핑몰 노출과 판매도 함께 켜 둬요.
- API: 상품 등록
curl -X POST "https://api.bootapi.com/v1/products" \
-H "Authorization: Basic {base64(client_key:secret_key)}" \
-H "Content-Type: application/json" \
-d '{
"name": "Professional 플랜",
"display_price": 29900,
"tax_type": 1,
"save_by": 3,
"ex_uid": "plan-professional",
"status_visible": true,
"status_display": true,
"status_sale": true
}'bashconst { BootpayCommerce } = require('@bootpay/backend-js')
const commerce = new BootpayCommerce({
client_key: 'your-commerce-client-key',
secret_key: 'your-commerce-secret-key',
mode: 'production'
})
const response = await commerce.product.create({
name: 'Professional 플랜',
display_price: 29900,
tax_type: 1,
save_by: 3,
ex_uid: 'plan-professional',
status_visible: true,
status_display: true,
status_sale: true
})
console.log('product_id:', response.product_id)javascript알려진 문제 — 등록은 되는데 응답이 500 으로 와요
지금은 상품이 저장된 뒤에 SERVER_ERROR(HTTP 500)가 돌아와요. 등록할 때 ex_uid 를 함께 보내고, 500 을 받으면 다시 보내지 말고 상품 목록에서 ex_uid 로 product_id 를 찾아요.
관리 화면이 편하면 관리자 > 상품 관리에서 등록하고 product_id 를 받아도 돼요.
product_id 를 저장해요
- 할 일: 내 상품 DB에 부트페이
product_id를 함께 저장해요. - 팁: 반대 방향으로도 잇고 싶으면 등록할 때
ex_uid에 내 상품 ID를 넣어요. 상품 목록에서ex_uid로 찾아올 수 있어요 (쇼핑몰에 노출 중인 상품만).
체크아웃에 넘겨요
- 할 일: 주문서를 열 때
products에product_id와 수량을 넣어요. - API: 체크아웃 빠르게 붙이기
await BootpayCommerce.requestCheckout({
client_key: CLIENT_KEY,
price: 29900,
products: [{ product_id: 'your-product-id', quantity: 1 }],
// ...
})javascriptprice 는 등록된 가격으로 계산한 금액과 대조돼요. 주문 미리보기의 total_order_price 를 그대로 넘기면 금액이 맞아요.
판매가 늘면 더해요
| 필요해지면 | 문서 |
|---|---|
| 품절·숨김·판매중지를 운영 화면에서 바꿔요 | 상태 변경 |
재고를 관리해요 (use_stock·stock) |
상태 변경 |
| 가격·설명을 고쳐요 | 상품 수정 |
| 상품을 분류해요 | 카테고리 |
| 「이번 주 신상」 같은 묶음을 화면에 내보내요 | 진열 |
| 목록·상세를 화면에 그려요 | 상품 목록, 상품 상세 |
다음 단계
- 개념: 상품 개요 — 상품·상태·카테고리·진열이 각각 무엇인지
- 연결: 체크아웃 빠르게 붙이기
