sayren Docs
상품

상품 일부 수정

본문에 준 필드만 바꾼다. `images`는 이미지 목록을 통째로 바꾸고 첫 장이 대표 이미지(썸네일)다. 재고는 variant 재고 API로 바꾼다

PATCH
/v1/products/{productId}

본문에 준 필드만 바꾼다. images는 이미지 목록을 통째로 바꾸고 첫 장이 대표 이미지(썸네일)다. 재고는 variant 재고 API로 바꾼다

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
name?string
Lengthlength <= 100
salePrice?integer
Multiple Of10
status?string
Value in"SALE""SUSPENDED""OUT_OF_STOCK""CLOSED"
flowId?|

주문 흐름(이슈 #115) — 게시한 흐름 id, null이면 카테고리의 흐름(없으면 기본 흐름). 생략하면 바꾸지 않는다

images?array<>

상품 이미지 주소 목록. 주면 통째로 바꾼다(현재 목록과 병합하지 않는다). 첫 장이 대표 이미지(썸네일)다. 생략하면 바꾸지 않는다

Items1 <= items <= 10
fulfillment?|

상품 이행. 생략하면 바꾸지 않는다. 주면 유형 안 필드를 모두 담아 통째로 바꾼다(현재 값과 병합하지 않는다). 판매 이력이 있으면 유형을 바꿀 수 없다(409 FULFILLMENT_TYPE_LOCKED)

refundPolicy?|

상품별 환불 정책. 주면 통째로 바꾼다(준 항목만 상점 기본을 덮어쓴다). null은 덮어쓰기를 지워 상점 기본을 따른다. 생략하면 바꾸지 않는다

pointEarnRateBp?|

구매 적립률 덮어쓰기(만분율, 100 = 1%, 0~3000, 이슈 #93). null이면 상점 기본 적립률, 0이면 이 상품은 적립하지 않는다. 결제 확정 시점 값이 주문상품에 남는다. 생략하면 바꾸지 않는다

Range0 <= value <= 3000

Response Body

성공

application/json
  1. response
meta*
data*
error*|null
curl -X PATCH 'https://api.sayren.io/v1/products/string' \  -H 'X-Store-Id: string' \  -H 'Content-Type: application/json' \  -d '{}'
{  "meta": {    "status": 200,    "code": "OK",    "message": "OK",    "isSuccess": true  },  "data": {    "productId": "string",    "productNo": null,    "name": "string",    "status": "SALE",    "salePrice": 0,    "discountedPrice": 0,    "stockQuantity": 0,    "categoryId": "string",    "thumbnailUrl": "http://example.com",    "hasOptions": true,    "fulfillment": {      "type": "SHIPPING",      "shipping": {        "deliveryType": "FREE",        "deliveryFee": 0,        "conditionalFreeAmount": 0,        "shippingAddressId": "string",        "returnAddressId": "string"      },      "methods": [        "string"      ]    },    "updatedAt": "string",    "sample": false,    "description": "string",    "descriptionJson": "string",    "originalPrice": 0,    "pointEarnRateBp": 0,    "images": [      "http://example.com"    ],    "attributes": [      {        "attributeId": "string",        "value": "string"      }    ],    "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",    "inventoryMode": "string",    "flowId": "string",    "fulfillmentTypeLocked": true,    "refundPolicy": {      "preShipmentDeliveryFeeRefund": true,      "returnDeliveryFee": 0,      "exchangeDeliveryFee": 0,      "sellerFaultFreeShipping": true,      "conditionalFreeShortfallCharge": true    },    "discount": {      "productId": "string",      "discountType": "RATE",      "discountValue": 0,      "discountedPrice": 0,      "startAt": "string",      "endAt": "string"    },    "createdAt": "string"  },  "error": null}