상품의 상태 정보만 빠르게 변경할 수 있는 API예요. 전시 상태, 판매 여부, 재고 수량, 타임 세일 등 상태 정보만 선택적으로 갱신할 수 있어 효율적이에요.
API 엔드포인트
PUT
https://api.bootapi.com/v1/products/:product_id/statusBasic Auth기존의 상품 정보 변경 API는 스냅샷을 생성하기 때문에 무겁고 전체 수정에 적합해요. 반면, 이 API는 상태 정보만 선택적으로 갱신하여 불필요한 리소스 소비 없이 사용할 수 있어요.
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
product_id |
String | 필수 | 상품 고유 번호 (URL 파라미터) |
status_display |
Boolean | 선택 | 쇼핑몰 전시 여부 |
status_sale |
Boolean | 선택 | 판매 상태 |
status_frozen |
Boolean | 선택 | 판매금지 상태 |
status_review |
Boolean | 선택 | 심사 후 판매 유무 |
use_display_period |
Boolean | 선택 | 전시 기간 사용 여부 |
display_start_at |
String | 선택 | 전시 시작일 |
display_end_at |
String | 선택 | 전시 종료일 |
use_sale_period |
Boolean | 선택 | 판매 기간 사용 여부 |
sale_start_at |
String | 선택 | 판매 시작일 |
sale_end_at |
String | 선택 | 판매 종료일 |
use_discount_period |
Boolean | 선택 | 할인 기간 사용 여부 |
discount_start_at |
String | 선택 | 할인 시작일 |
discount_end_at |
String | 선택 | 할인 종료일 |
status_time_sale |
Boolean | 선택 | 타임 세일 사용 여부 |
time_sale_start_at |
String | 선택 | 타임 세일 시작일 |
time_sale_end_at |
String | 선택 | 타임 세일 종료일 |
time_sale_discount_percent |
Float | 선택 | 타임 세일 할인율 |
use_stock |
Boolean | 선택 | 재고 관리 여부 |
stock |
Integer | 선택 | 남은 재고 수량 |
stock_safe |
Integer | 선택 | 안전 재고 임계값 |
use_stock_safe |
Boolean | 선택 | 안전 재고 관리 여부 |
use_option_stock |
Boolean | 선택 | 옵션별 재고 관리 여부 |
코드 예제
const { BootpayCommerce } = require('@bootpay/backend-js');
const commerce = new BootpayCommerce({
client_key: '{client_key}',
secret_key: '{secret_key}'
});
const response = await commerce.product.status('67e4b4425ec892162491d0ec', {
status_display: true,
status_sale: true,
use_stock: true,
stock: 50
});
console.log(response);javascriptfrom bootpay_backend.commerce import BootpayCommerce
commerce = BootpayCommerce('{client_key}', '{secret_key}')
response = commerce.product.status('67e4b4425ec892162491d0ec', {
'status_display': True,
'status_sale': True,
'use_stock': True,
'stock': 50
})
print(response)pythonuse Bootpay\ServerPhp\BootpayCommerceApi;
$commerce = new BootpayCommerceApi("{client_key}", "{secret_key}");
$response = $commerce->product->status("67e4b4425ec892162491d0ec", [
'status_display' => true,
'status_sale' => true,
'use_stock' => true,
'stock' => 50
]);
print_r($response);phpimport kr.co.bootpay.store.BootpayStore;
import kr.co.bootpay.store.model.request.TokenPayload;
import kr.co.bootpay.store.model.pojo.SProductStatus;
TokenPayload tokenPayload = new TokenPayload("{client_key}", "{secret_key}");
BootpayStore bootpay = new BootpayStore(tokenPayload);
SProductStatus status = new SProductStatus();
status.statusDisplay = true;
status.statusSale = true;
status.useStock = true;
status.stock = 50;
String productId = "67e4b4425ec892162491d0ec";
var response = bootpay.product.status(productId, status);
System.out.println(response.getData());javacommerce = BootpayStore::Api.new('{client_key}', '{secret_key}')
response = commerce.product.status('67e4b4425ec892162491d0ec', {
status_display: true,
status_sale: true,
use_stock: true,
stock: 50
})
puts responserubycommerce := bootpay.NewCommerceApi("{client_key}", "{secret_key}")
response, err := commerce.Product.Status("67e4b4425ec892162491d0ec", map[string]interface{}{
"status_display": true,
"status_sale": true,
"use_stock": true,
"stock": 50,
})
fmt.Println(response)gousing Bootpay.Commerce;
var commerce = new BootpayCommerceApi("{client_key}", "{secret_key}");
var response = await commerce.Product.Status("67e4b4425ec892162491d0ec", new {
status_display = true,
status_sale = true,
use_stock = true,
stock = 50
});
Console.WriteLine(response);csharp응답
성공 응답
{
"http_status": 200
}json에러 응답
{
"status": 400,
"code": 1560,
"message": "존재하지 않는 상품입니다.",
"data": null
}json에러 코드
공통 에러
인증·권한 관련 에러는 에러 코드표를 참고해요.
| 코드 | 메시지 | 대처 방법 |
|---|---|---|
PRODUCT_NOT_FOUND |
존재하지 않는 상품이에요 | product_id를 확인해요 |
PRODUCT_FROZEN |
판매금지된 상품은 편집/저장 안돼요. 관리자에게 문의해요 | 관리자에게 문의해요 |
