상품 수정
보낸 필드만 고칩니다. expected_updated 로 덮어쓰기를 막습니다.
업데이트됨 10.14 — 상품 아이콘 API 와 상품의 icon_id 를 열었습니다요청
PATCH
https://api.mallstory.kr/v1/shop/{shop_unique}/products/{product_unique}- 보낸 필드만 바뀝니다. 필드는 상품 등록과 같습니다. 여러 상품에 같은 값을 넣을 때는 상품 일괄 처리를 씁니다.
expected_updated에 읽어 둔updated를 넣으면, 그 사이 관리자 · 다른 앱이 고쳤을 때409로 막습니다(덮어쓰기 방지). 넣지 않으면 막지 않습니다.options를 보내면 옵션 전체를 그것으로 바꿉니다. 옵션은 그대로 두려면 보내지 않습니다.images도 보내면 전체를 바꿉니다 — 남길 이미지까지 모두 보냅니다. 빠진 이미지 파일은 바로 지워집니다. 상세에서 읽은images를 그대로 보내도 됩니다(file_id만 씁니다).
bash요청 — 판매가 · 간략소개만
curl -X PATCH 'https://api.mallstory.kr/v1/shop/{shop_unique}/products/6accaa68c2ca90eedea62100' \
-H 'Authorization: Bearer msat_8Hk2wQ7...' \
-H 'Content-Type: application/json' \
-d '{"sale_price":35000,"promotion_text":"봄 신상 20% 할인","expected_updated":"2026-10-12T09:37:44.797Z"}'응답
json200 OK (줄임)
{
"product_unique": "6accaa68c2ca90eedea62100",
"product_no": 50,
"name": "린넨 셔츠",
"promotion_text": "봄 신상 20% 할인",
"sale_price": 35000,
"updated": "2026-10-12T09:37:45.543Z"
}고친 뒤의 상품 전체를 돌려줍니다. 다음 수정의 expected_updated 에는 여기의 updated 를 씁니다.
동시 수정(409)
같은 expected_updated 로 한 번 더 보내면, 앞의 수정으로 updated 가 바뀌어 거절됩니다. 상세를 다시 읽고 바꿀 값을 다시 정해 보냅니다.
json409 Conflict
{
"code": "ProductModified",
"message": "다른 곳에서 이 상품이 먼저 저장되었습니다. 새로고침 후 다시 시도하세요."
}오류
| 상태 | code | 언제 |
|---|---|---|
| 409 | ProductModified | expected_updated 뒤에 다른 곳에서 저장됨 |
| 400 | InvalidParameterValue | 값이 올바르지 않음 · expected_updated 가 ISO 시각이 아님 |
| 404 | ProductNotExist | 없는 키이거나 지운 상품 |
| 401 | MissingLoginSession | Authorization 헤더에 Bearer 토큰이 없음 |
| 401 | InvalidAccessToken | 토큰이 틀리거나 만료 · 폐기됨 |
| 403 | InsufficientScope | 토큰에 products:read · products:write 가 없음 |