sayren Docs
스토어프론트 호스팅

스토어프론트 공개 전환

오픈 준비 중(`COMING_SOON`) ↔ 공개(`PUBLIC`). 공개하려면 판매 중인 상품(상점을 만들 때 넣은 샘플 제외)이 1개 이상 있어야 한다 — 없으면 409 `STOREFRONT_NOT_READY`다. 결제 수단이 없어도 공개할 수 있다(구매자는 상품만 보고 주문할 수 없다)

PUT
/v1/storefront/site/visibility

오픈 준비 중(COMING_SOON) ↔ 공개(PUBLIC). 공개하려면 판매 중인 상품(상점을 만들 때 넣은 샘플 제외)이 1개 이상 있어야 한다 — 없으면 409 STOREFRONT_NOT_READY다. 결제 수단이 없어도 공개할 수 있다(구매자는 상품만 보고 주문할 수 없다)

Authorization

accessToken
headerAuthorizationBearer <token>

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

Header Parameters

X-Store-Id*string

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

Request Body

application/json
  1. body
visibility*string

COMING_SOON 오픈 준비 중(방문자에게 준비 중 페이지) · PUBLIC 공개

Value in"COMING_SOON""PUBLIC"
expectedVisibility?string

화면에서 본 공개 상태. 주면 지금 값이 같을 때만 바꾼다

Value in"COMING_SOON""PUBLIC"

Response Body

성공

application/json
  1. response
meta*
data*
error*|null
curl -X PUT 'https://api.sayren.io/v1/storefront/site/visibility' \  -H 'X-Store-Id: string' \  -H 'Content-Type: application/json' \  -d '{  "visibility": "COMING_SOON"}'
{  "meta": {    "status": 200,    "code": "OK",    "message": "OK",    "isSuccess": true  },  "data": {    "siteId": "string",    "slug": "string",    "hostname": "string",    "url": "string",    "domains": [      {        "hostname": "string",        "kind": "PLATFORM",        "status": "ACTIVE",        "isPrimary": true,        "holdUntil": "string"      }    ],    "templateId": "string",    "sourceMode": "MANAGED",    "status": "ACTIVE",    "visibility": "COMING_SOON",    "publishedVersion": {      "versionId": "string",      "number": 1,      "templateId": "string",      "templateVersion": "string",      "status": "BUILDING",      "published": true,      "publishedAt": "string",      "message": "string",      "source": "TEMPLATE",      "buildId": "string",      "createdByType": "string",      "createdVia": "string",      "createdAt": "string",      "previewable": true    },    "provisioning": {      "status": "SYNCED",      "lastErrorCode": "string",      "syncedAt": "string"    },    "editPreview": {      "hostname": "string"    },    "slugChangesRemaining": 0,    "suspension": {      "reason": "string",      "suspendedAt": "string"    },    "snapshot": {      "url": "string",      "versionId": "string",      "capturedAt": "string"    },    "createdAt": "string",    "updatedAt": "string"  },  "error": null}