상품 배지
상품명 앞에 붙는 배지(NEW · HOT)를 만들고 고치고 지웁니다. 상품의 badge_ids 에 넣는 키입니다.
업데이트됨 10.14 — 배지 이미지는 가로 160 을 넘으면 줄여 저장합니다무엇인가요
상품명 앞에 붙는 작은 표식("NEW" · "HOT")입니다. 쇼핑몰 관리자의 상품 등록 · 수정 > 전시 설정 > 배지에서 만드는 것과 같습니다. 배지를 만들어 두고 상품의 badge_ids(상품 등록, 5개까지)에 키를 넣습니다.
- 두 방식의 값을 모두 들고 있습니다 — 이미지 첨부로 바꿔도 색 · 도형이 남고, 어느 쪽이 손님에게 나가는지는 design 이 정합니다.
- 고치거나 지우면 손님 화면에 바로 반영됩니다.
- 이미지는 file_id 만 믿습니다 — 경로 · 주소는 이 쇼핑몰의 파일 기록에서 채웁니다. 다른 쇼핑몰 · 지운 파일이면 400.
목록
GET
https://api.mallstory.kr/v1/shop/{shop_unique}/badges권한 products:read
지우지 않은 배지를 이름순으로 모두 줍니다(관리자 고르기 목록과 같은 차례).
bash요청
curl 'https://api.mallstory.kr/v1/shop/6a9515bdcb3ab5179ba767ad/badges' \
-H 'Authorization: Bearer msat_8Hk2wQ7...'json200 OK
{
"items": [
{
"badge_unique": "6acdf41f4555cab633c38cbb",
"name": "NEW",
"design": "IMAGE",
"shape": "TYPE2",
"text_color": "#FFFFFF",
"background_color": "#1E88E5",
"border_color": null,
"created": "2026-10-13T09:04:31.205Z",
"updated": "2026-10-13T09:04:33.106Z",
"image": {
"file_id": "6acdf4216ba8ebc3a773ab1b",
"url": "https://cdn.story.store/storages/2026/10/13/3ce010ea-2a44-48fc-80e6-66f20c42d717.png",
"width": 64,
"height": 24
}
}
]
}응답 필드
| 필드 | 형식 | 설명 |
|---|---|---|
badge_unique | string | 배지 키. 상품의 badge_ids 에 넣는 값 |
name | string | 배지명(20자까지, 이모지도 한 글자). 손님에게 보이는 글자. 같은 이름도 됨 |
design | string | 간편제작 · 이미지 첨부 코드값 |
shape | string | 간편제작 도형. 비우면 TYPE1 코드값 |
text_color · background_color | string | 간편제작이면 필수. #RRGGBB |
border_color | string | 테두리 색. #RRGGBB, 비우면 없음 |
image | object | null | file_id · url · width · height. 이미지를 올린 적이 없으면 null |
created · updated | ISO | 만든 · 고친 시각 |
오류
| 상태 | code | 언제 |
|---|---|---|
| 401 | MissingLoginSession | Authorization 헤더에 Bearer 토큰이 없음 |
| 401 | InvalidAccessToken | 토큰이 틀리거나 만료 · 폐기됨 |
| 403 | InsufficientScope | 토큰에 products:read 가 없음 |
상세
GET
https://api.mallstory.kr/v1/shop/{shop_unique}/badges/{badge_unique}권한 products:read
목록 한 줄과 같은 모양입니다.
bash요청
curl 'https://api.mallstory.kr/v1/shop/6a9515bdcb3ab5179ba767ad/badges/6acdf41f4555cab633c38cbb' \
-H 'Authorization: Bearer msat_8Hk2wQ7...'json200 OK
{
"badge_unique": "6acdf41f4555cab633c38cbb",
"name": "NEW",
"design": "SIMPLE",
"shape": "TYPE2",
"text_color": "#FFFFFF",
"background_color": "#E53935",
"border_color": null,
"created": "2026-10-13T09:04:31.205Z",
"updated": "2026-10-13T09:04:31.205Z",
"image": null
}오류
| 상태 | code | 언제 |
|---|---|---|
| 404 | BadgeNotExist | 없는 키이거나 지운 배지 |
| 401 | MissingLoginSession | Authorization 헤더에 Bearer 토큰이 없음 |
| 401 | InvalidAccessToken | 토큰이 틀리거나 만료 · 폐기됨 |
| 403 | InsufficientScope | 토큰에 products:read 가 없음 |
생성
POST
https://api.mallstory.kr/v1/shop/{shop_unique}/badges권한 products:write
요청 본문
| 필드 | 형식 | 설명 |
|---|---|---|
name필수 | string | 배지명(20자까지, 이모지도 한 글자). 손님에게 보이는 글자. 같은 이름도 됨 |
design필수 | string | 간편제작 · 이미지 첨부 코드값 |
shape | string | 간편제작 도형. 비우면 TYPE1 코드값 |
text_color · background_color | string | 간편제작이면 필수. #RRGGBB |
border_color | string | 테두리 색. #RRGGBB, 비우면 없음 |
image | file_id | 이미지 첨부면 필수. 이미지 업로드(?usage=product.decoration)로 받은 file_id — 문자열 또는 {"file_id": "…"} |
bash요청
curl -X POST 'https://api.mallstory.kr/v1/shop/6a9515bdcb3ab5179ba767ad/badges' \
-H 'Authorization: Bearer msat_8Hk2wQ7...' \
-H 'Content-Type: application/json' \
-d '{"name":"NEW","design":"SIMPLE","shape":"TYPE2","text_color":"#FFFFFF","background_color":"#E53935"}'json201 Created
{
"badge_unique": "6acdf41f4555cab633c38cbb",
"name": "NEW",
"design": "SIMPLE",
"shape": "TYPE2",
"text_color": "#FFFFFF",
"background_color": "#E53935",
"border_color": null,
"created": "2026-10-13T09:04:31.205Z",
"updated": "2026-10-13T09:04:31.205Z",
"image": null
}json400 — 색상코드가 아님
{
"code": "InvalidParameterValue",
"message": "글자 색상의 색상코드가 잘못되었습니다.",
"request_id": "req_b7507260cb11462ea513c39f3af140cc"
}오류
| 상태 | code | 언제 |
|---|---|---|
| 400 | InvalidParameterValue | 이름 없음 · 20자 넘음 · 목록에 없는 design · 색상코드 · 이미지 없음 · 이 쇼핑몰 파일이 아님 |
| 401 | MissingLoginSession | Authorization 헤더에 Bearer 토큰이 없음 |
| 401 | InvalidAccessToken | 토큰이 틀리거나 만료 · 폐기됨 |
| 403 | InsufficientScope | 토큰에 products:write 가 없음 |
수정
PATCH
https://api.mallstory.kr/v1/shop/{shop_unique}/badges/{badge_unique}권한 products:write
보낸 필드만 바뀝니다. 필드는 생성과 같습니다. 이미지를 바꿔 끼우면 옛 이미지 파일은 지워집니다.
bash요청
curl -X PATCH 'https://api.mallstory.kr/v1/shop/6a9515bdcb3ab5179ba767ad/badges/6acdf41f4555cab633c38cbb' \
-H 'Authorization: Bearer msat_8Hk2wQ7...' \
-H 'Content-Type: application/json' \
-d '{"background_color":"#1E88E5"}'json200 OK
{
"badge_unique": "6acdf41f4555cab633c38cbb",
"name": "NEW",
"design": "SIMPLE",
"shape": "TYPE2",
"text_color": "#FFFFFF",
"background_color": "#1E88E5",
"border_color": null,
"created": "2026-10-13T09:04:31.205Z",
"updated": "2026-10-13T09:04:31.969Z",
"image": null
}json요청 — 이미지 첨부로 바꾸기
{
"design": "IMAGE",
"image": "6acdf4216ba8ebc3a773ab1b"
}json200 OK
{
"badge_unique": "6acdf41f4555cab633c38cbb",
"name": "NEW",
"design": "IMAGE",
"shape": "TYPE2",
"text_color": "#FFFFFF",
"background_color": "#1E88E5",
"border_color": null,
"created": "2026-10-13T09:04:31.205Z",
"updated": "2026-10-13T09:04:33.106Z",
"image": {
"file_id": "6acdf4216ba8ebc3a773ab1b",
"url": "https://cdn.story.store/storages/2026/10/13/3ce010ea-2a44-48fc-80e6-66f20c42d717.png",
"width": 64,
"height": 24
}
}json400 — 이 쇼핑몰에 올린 이미지가 아님(보낸 path 는 버림)
{
"code": "InvalidParameterValue",
"message": "배지 이미지: 이 쇼핑몰에 올린 이미지가 아니거나 지워진 이미지입니다(6acdf41f0021241bbb288be9). 이미지를 다시 올려 받은 file_id 를 넣으세요.",
"request_id": "req_c7a56efa8d384565a0bc9cd25dc077d0"
}오류
| 상태 | code | 언제 |
|---|---|---|
| 400 | InvalidParameterValue | 생성과 같음 |
| 404 | BadgeNotExist | 없는 키이거나 지운 배지 |
| 401 | MissingLoginSession | Authorization 헤더에 Bearer 토큰이 없음 |
| 401 | InvalidAccessToken | 토큰이 틀리거나 만료 · 폐기됨 |
| 403 | InsufficientScope | 토큰에 products:write 가 없음 |
삭제
DELETE
https://api.mallstory.kr/v1/shop/{shop_unique}/badges/{badge_unique}권한 products:write
배지를 지우고, 쓰던 상품의 badge_ids 에서도 뺍니다(상품의 updated 는 그대로). affected 는 뺀 상품 수입니다. 이미지 파일도 지워집니다.
bash요청
curl -X DELETE 'https://api.mallstory.kr/v1/shop/6a9515bdcb3ab5179ba767ad/badges/6acdf41f4555cab633c38cbb' \
-H 'Authorization: Bearer msat_8Hk2wQ7...'json200 OK
{
"deleted": true,
"badge_unique": "6acdf41f4555cab633c38cbb",
"affected": 0
}오류
| 상태 | code | 언제 |
|---|---|---|
| 404 | BadgeNotExist | 없는 키이거나 이미 지운 배지 |
| 401 | MissingLoginSession | Authorization 헤더에 Bearer 토큰이 없음 |
| 401 | InvalidAccessToken | 토큰이 틀리거나 만료 · 폐기됨 |
| 403 | InsufficientScope | 토큰에 products:write 가 없음 |