카탈로그

상품 수정

이미 나간 상품 정보도 식별자를 유지한 채 안전하게 고쳐요.

등록된 상품 정보를 수정해요.

API 엔드포인트

PUThttps://api.bootapi.com/v1/products/:product_idBasic Auth

요청 파라미터

파라미터 타입 필수 설명
product_id String 필수 상품 ID (URL 경로)
name String 선택 상품명
desc String 선택 상품 요약 설명
content String 선택 상품 상세 설명 (HTML 지원)
images Array 선택 상품 이미지 URL 배열
category_id String 선택 카테고리 ID (키를 보내고 값을 비우면 해제)
display_price Integer 선택 판매가
tax_free_price Integer 선택 비과세 가격
use_stock Boolean 선택 재고 관리 사용 여부
stock Integer 선택 재고 수량
use_discount Boolean 선택 할인 사용 여부
discount_price Integer 선택 할인가
use_subscription Boolean 선택 구독 상품 여부
subscription_setting_id String 선택 구독 설정 템플릿 ID (save_by: 3 필요)
status_display Boolean 선택 쇼핑몰 노출 여부
status_sale Boolean 선택 판매 상태
save_by Integer 선택 저장 방식 (1 시스템 임시저장 / 2 사용자 임시저장 / 3 사용자 저장). 구독 설정 연결·검증은 3 일 때만 동작
보낸 필드만 바뀌어요

값을 싣지 않은 필드는 기존 값이 그대로 유지돼요. 특히 category_id 는 키를 보내고 값을 비우면 '카테고리 해제' 로 처리되니, 바꿀 생각이 없으면 키 자체를 빼고 보내요.

구독 설정(subscription_setting_id)을 바꿀 때는 save_by: 3 을 함께 보내야 반영돼요.

코드 예제

const { 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.update('67c95e64d01640bb9859c629', {
    name: 'Enterprise 플랜',
    display_price: 59900,
    desc: '기업용 구독 서비스'
})
console.log(response)javascript

응답

성공 응답

{
  "product_id": "67c95e64d01640bb9859c629",
  "name": "Enterprise 플랜",
  "display_price": 59900,
  "updated_at": "2025-07-11T14:00:00Z"
}json

에러 코드

공통 에러

인증·권한 관련 에러는 에러 코드표를 참고해요.

코드 메시지 대처 방법
PRODUCT_NOT_FOUND 존재하지 않는 상품이에요 product_id를 확인해요
PRODUCT_FROZEN 판매금지된 상품은 편집/저장 안돼요. 관리자에게 문의해요 관리자에게 문의해요
PRODUCT_DENIED 상품 조회 권한이 없어요. API 인증 권한을 확인해요

수정하지 않는 필드는 요청에 포함하지 않아도 돼요. 포함된 필드만 업데이트돼요.