sayren Docs
상품

상품 옵션 전체 교체

PUT
/v1/products/{productId}/options

Authorization

accessToken
headerAuthorizationBearer <token>

Sayren 계정 토큰(로그인 토큰 또는 개인 액세스 토큰, RFC 9068 JWT)

Path Parameters

productId*string

Header Parameters

X-Store-Id*string

대상 상점 id. 토큰의 상점 범위 밖이면 403 STORE_NOT_GRANTED, 없으면 400 STORE_ID_REQUIRED다

Request Body

application/json
  1. body
optionGroups?array<>
Itemsitems <= 3
Default[]
variants*array<>
Items1 <= items <= 500
addonGroups?array<>

추가 선택 옵션명 전체(이슈 #59). 주면 통째로 바꾸고, 생략하면 등록은 없음·수정은 현재 값을 그대로 둔다. 끄려면 빈 배열을 보낸다. 기능이 열리기 전에는 비어 있지 않은 값이 409 OPTION_ADDONS_UNAVAILABLE이다

Itemsitems <= 5
customInputs?array<>

직접 입력 항목 전체(이슈 #59). 배열 순서가 표시 순서다. 주면 통째로 바꾸고, 생략하면 등록은 없음·수정은 현재 값을 그대로 둔다. 항목명에 개인정보성 단어(CUSTOM_INPUT_FORBIDDEN_WORDS)가 있으면 400 CUSTOM_INPUT_LABEL_FORBIDDEN, 기능이 열리기 전에는 비어 있지 않은 값이 409 OPTION_ADDONS_UNAVAILABLE이다

Itemsitems <= 5
optionSort?string

옵션 값 정렬 순서(이슈 #59). 서버가 이 순서로 값의 sortOrder를 다시 매긴다. 생략하면 등록은 REGISTERED, 수정은 현재 값이다

Value in"REGISTERED""NAME""PRICE_ASC""PRICE_DESC"

Response Body

성공

application/json
  1. response
meta*
data*
error*|null
curl -X PUT 'https://api.sayren.io/v1/products/string/options' \  -H 'X-Store-Id: string' \  -H 'Content-Type: application/json' \  -d '{  "variants": [    {}  ]}'
{  "meta": {    "status": 200,    "code": "OK",    "message": "OK",    "isSuccess": true  },  "data": {    "optionGroups": [      {        "groupId": "string",        "name": "string",        "sortOrder": 0,        "values": [          {            "valueId": "string",            "name": "string",            "sortOrder": 0          }        ]      }    ],    "variants": [      {        "variantId": "string",        "variantNo": null,        "valueIds": [          "string"        ],        "name": "string",        "additionalPrice": 0,        "stockQuantity": 0,        "sku": "string",        "barcode": "string",        "costPrice": 0,        "weightGram": 0,        "sellerCode": "string",        "usable": true,        "attributes": {          "property1": "string",          "property2": "string"        },        "hasOrders": true      }    ],    "addonGroups": [],    "customInputs": [],    "optionSort": "REGISTERED"  },  "error": null}