쿠폰
쿠폰 수정
준 항목만 바꾼다. 발급·사용이 시작된 쿠폰(`locked`)은 이름·설명·종료일 연장·한도 상향만 받는다. 종류·발급 방식은 바꿀 수 없다.
PATCH
준 항목만 바꾼다. 발급·사용이 시작된 쿠폰(locked)은 이름·설명·종료일 연장·한도 상향만 받는다. 종류·발급 방식은 바꿀 수 없다.
accessTokenheader
AuthorizationBearer <token>Sayren 계정 토큰(로그인 토큰 또는 개인 액세스 토큰, RFC 9068 JWT)
couponId*stringX-Store-Id*string대상 상점 id. 토큰의 상점 범위 밖이면 403 STORE_NOT_GRANTED, 없으면 400 STORE_ID_REQUIRED다
application/json- body
name?string구매자에게 보이는 쿠폰 이름. 1~60자
Length
1 <= length <= 60description?|구매자에게 보이는 설명. 300자까지
Length
length <= 300benefit?conditions?target?code?string쿠폰 코드 — 발급 방식이 CODE일 때 필수. 영문·숫자·-·_ 6~30자, 대소문자 구분 없음(대문자로 저장). 상점 안에서 유일하다
Match
^[A-Za-z0-9_-]{6,30}$startsAt?|사용 시작 시각(ISO 8601, 시간대 포함). 생략하면 바로 쓸 수 있다
Match
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$Format
date-timeendsAt?|사용 종료 시각(ISO 8601, 시간대 포함). 이 시각부터 못 쓴다. 생략하면 제한이 없다. 이미 지급한 쿠폰의 유효 기간은 지급 때 정해지므로 뒤에 종료일을 늦춰도 늘어나지 않는다
Match
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$Format
date-timevalidDaysAfterIssue?|Range
1 <= value <= 3650totalIssueLimit?|총 발급 수 한도. 생략하면 무제한. 다운로드·회원가입 쿠폰은 한도에 닿으면 더 발급하지 않는다
Range
1 <= value <= 10000000totalUseLimit?|총 사용 수 한도. 결제 중인 예약도 센다. 생략하면 무제한
Range
1 <= value <= 10000000perMemberIssueLimit?|1인 발급 수 한도(셀러 지급·다운로드). 생략하면 1인 1장. 회원가입 쿠폰은 1장 고정이라 1만 받는다
Range
1 <= value <= 10000000perMemberUseLimit?|1인 사용 수 한도(코드 입력형). 생략하면 무제한. 비회원에게 여는 쿠폰은 둘 수 없다
Range
1 <= value <= 10000000성공
application/json- response
meta*data*error*|nullcurl -X PATCH 'https://api.sayren.io/v1/coupons/string' \ -H 'X-Store-Id: string' \ -H 'Content-Type: application/json' \ -d '{}'{ "meta": { "status": 200, "code": "OK", "message": "OK", "isSuccess": true }, "data": { "couponId": "string", "name": "string", "description": "string", "kind": "ORDER", "benefit": { "type": "RATE", "value": 1, "maxDiscountAmount": 1 }, "conditions": { "minOrderAmount": 0, "firstOrderOnly": true, "memberOnly": true, "stackWithInstantDiscount": true }, "target": { "includeProductIds": [ "string" ], "includeCategoryIds": [ "string" ], "excludeProductIds": [ "string" ], "excludeCategoryIds": [ "string" ] }, "issueMethod": "string", "code": "string", "startsAt": "string", "endsAt": "string", "validDaysAfterIssue": 0, "totalIssueLimit": 0, "totalUseLimit": 0, "perMemberIssueLimit": 0, "perMemberUseLimit": 0, "issuedCount": 0, "reservedCount": 0, "usedCount": 0, "status": "ACTIVE", "locked": true, "lockedAt": "string", "createdAt": "string", "updatedAt": "string" }, "error": null}