상점 정보 수정
accessTokenAuthorizationBearer <token>Sayren 계정 토큰(로그인 토큰 또는 개인 액세스 토큰, RFC 9068 JWT)
X-Store-Id*string대상 상점 id. 토큰의 상점 범위 밖이면 403 STORE_NOT_GRANTED, 없으면 400 STORE_ID_REQUIRED다
application/json- body
name?string2 <= length <= 50logoUrl?stringuricustomerCenterPhone?|고객센터 전화번호. null을 주면 지운다
businessHours?stringlength <= 100businessName?|상호(사업자등록증의 상호). 상점명(name)과 다를 수 있다. null을 주면 지운다
1 <= length <= 100representativeName?|대표자명. null을 주면 지운다
1 <= length <= 50businessNumber?|사업자등록번호. 숫자 10자리이고 하이픈(123-45-67890)을 넣어도 된다. 숫자만 저장한다. null을 주면 지운다
^\d{3}[-\s]?\d{2}[-\s]?\d{5}$mailOrderSalesNumber?|통신판매업 신고번호(예: 2026-서울강남-01234). 적은 그대로 저장한다. null을 주면 지운다
1 <= length <= 50businessAddress?|사업장 주소. null을 주면 지운다
1 <= length <= 200customerCenterEmail?|고객센터 이메일. null을 주면 지운다
^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$emaillength <= 254privacyOfficerName?|개인정보 보호책임자 성명. null을 주면 지운다
1 <= length <= 50privacyOfficerEmail?|개인정보 보호책임자 이메일. null을 주면 지운다
^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$emaillength <= 254analyticsAllowedOrigins?array<>@deprecated storefrontOrigins를 쓴다(같은 목록). 방문 분석 수집을 받을 스토어프론트 오리진(최대 20개). 비우면 모든 오리진에서 받는다. 넣으면 목록에 없는 오리진의 수집 요청은 403 ORIGIN_NOT_ALLOWED이고, 페이지 URL이 목록 밖인 이벤트는 버린다
items <= 20storefrontOrigins?array<>스토어프론트 도메인(최대 20개) — 소셜 로그인 뒤 돌아갈 주소와 방문 분석 수집을 함께 제한한다. analyticsAllowedOrigins와 같은 목록이다(둘 다 주면 이 값이 이긴다)
items <= 20guestCheckoutEnabled?boolean비회원 주문 허용. false(회원만)면 로그인하지 않은 구매자의 주문서 생성·결제 요청이 403 GUEST_CHECKOUT_DISABLED다. 장바구니 담기와 이미 받은 비회원 주문의 조회·취소는 막지 않는다
testOrderReviewsAllowed?boolean테스트 결제(샌드박스) 주문의 리뷰 허용. 기본 false — 돈을 내지 않은 주문으로 구매 인증 리뷰가 쌓이지 않게 막는다
autoDeliverDays?integer발송 후 자동 배송완료까지의 일수(0~30, 기본 7). 발송(DISPATCHED)·배송중(DELIVERING) 주문상품을 이 기간이 지나면 배송완료(DELIVERED)로 바꾼다. 0이면 자동 배송완료를 하지 않는다
0 <= value <= 30autoConfirmDays?integer배송완료 후 자동 구매확정까지의 일수(0~30, 기본 7). 배송완료 시점에 구매확정 예정일(autoDecisionDate)을 이 값으로 잡고, 그 날짜가 지나면 구매확정(PURCHASE_DECIDED)으로 바꾼다. 진행 중인 클레임이 있으면 건너뛴다. 0이면 자동 구매확정을 하지 않는다
0 <= value <= 30refundPolicy?상점 기본 환불 정책 — 준 항목만 바꾼다. 상품별 정책(products.refundPolicy)이 없는 상품에 적용된다
shippingPolicy?상점 배송비 규칙 — 준 항목만 바꾼다. 기본 배송비, 전체 무료배송 기준액, 제주·도서산간 추가 배송비다. 바꾼 값은 새 주문서부터 적용된다(이미 만든 주문서·주문의 배송비는 스냅샷이 원천이다)
termsVersion?string이용약관 버전. 올리면 이 약관에 동의한 구매자에게 재동의를 요구한다(GET /storefront/v1/me의 reconsentRequired)
1 <= length <= 20privacyVersion?string개인정보 수집이용 동의 버전. 올리면 구매자에게 재동의를 요구한다
1 <= length <= 20termsUrl?|이용약관 문서 주소(https). 동의 시점의 값이 동의 이력에 복사된다. null을 주면 지운다
urilength <= 500privacyUrl?|개인정보 수집이용 동의 문서 주소(https). null을 주면 지운다
urilength <= 500성공
application/json- response
meta*data*error*|nullcurl -X PATCH 'https://api.sayren.io/v1/store' \ -H 'X-Store-Id: string' \ -H 'Content-Type: application/json' \ -d '{}'{ "meta": { "status": 200, "code": "OK", "message": "OK", "isSuccess": true }, "data": { "storeId": "string", "name": "string", "storeCode": "string", "storefrontUrl": "http://example.com", "status": "ACTIVE", "logoUrl": "http://example.com", "businessNumber": "string", "customerCenterPhone": "string", "businessName": null, "representativeName": null, "mailOrderSalesNumber": null, "businessAddress": null, "customerCenterEmail": null, "privacyOfficerName": null, "privacyOfficerEmail": null, "analyticsAllowedOrigins": [ "string" ], "storefrontOrigins": [ "string" ], "guestCheckoutEnabled": true, "testOrderReviewsAllowed": false, "autoDeliverDays": 0, "autoConfirmDays": 0, "refundPolicy": { "preShipmentDeliveryFeeRefund": true, "returnDeliveryFee": 0, "exchangeDeliveryFee": 0, "sellerFaultFreeShipping": true, "conditionalFreeShortfallCharge": true, "couponShortfallCharge": true }, "shippingPolicy": { "baseDeliveryFee": 0, "freeThreshold": 1, "jejuSurcharge": 0, "isolatedSurcharge": 0 }, "termsVersion": "string", "privacyVersion": "string", "termsVersionUpdatedAt": "string", "privacyVersionUpdatedAt": "string", "termsUrl": "string", "privacyUrl": "string", "memberCount": 0, "createdAt": "string" }, "error": null}