sayren Docs
스토어프론트 호스팅

스토어프론트 사이트 만들기

템플릿으로 사이트를 만들고 v1을 발행한다. 공개 상태는 오픈 준비 중(`COMING_SOON`)이다. 슬러그를 생략하면 상점 코드다

POST
/v1/storefront/site

템플릿으로 사이트를 만들고 v1을 발행한다. 공개 상태는 오픈 준비 중(COMING_SOON)이다. 슬러그를 생략하면 상점 코드다

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
templateId*string

템플릿 id

Length1 <= length <= 64
slug?string

주소 슬러그. 생략하면 상점 코드

Match^[a-z0-9](?:[a-z0-9-]{1,28}[a-z0-9])$
copyContent?boolean

템플릿 상점의 템플릿일 때만 — true면 템플릿 상점의 콘텐츠(레이아웃, 상품·카테고리·컬렉션·주문 흐름·배송·환불 정책)를 이 상점으로 복사한다. 쿠폰·적립금·리뷰는 복사하지 않는다. 생략하거나 false면 레이아웃 콘텐츠를 비우고 빌드한다

Response Body

성공

application/json
  1. response
meta*
data*
error*|null
curl -X POST 'https://api.sayren.io/v1/storefront/site' \  -H 'X-Store-Id: string' \  -H 'Content-Type: application/json' \  -d '{  "templateId": "string"}'
{  "meta": {    "status": 201,    "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}