Static Policy Page
docs/hcs-asset/static-policy-page.md
id: 'static-policy-page' status: completed
Static Policy Page
Reference
- URL: http://standard-commerce.makitt.localhost:3006/admin?uiKit=standard-commerce&component=static-policy-page
- 위치: 약관/정책 정적 페이지 (이용약관, 개인정보처리방침, 교환/반품 안내)
- 구조: 제목 + 최종수정일 + divider + rich text 본문
React Component
- Path:
apps/makitt-standard-commerce/src/components/assets/static-policy-page/ - Status: implemented
- 반응형: 720px max-width article, 모바일 패딩/폰트 축소
- Props:
slug(직접 지정),pageKind(terms/privacy/refund-policy),shopIdOverride
HCS JSON Asset
- Path:
apps/builder/data/hcs-asset/static-policy-page.json - Status: implemented
- Resource 바인딩:
staticPage.bySlug- slug로 정적 페이지 단건 조회
- 핵심 바인딩:
page.title→ headingpage.publishedAt→ 최종 수정일 (date filter)page.contentUrl→blog-contentrenderer
Prerequisites
makitt-server (shop-api)
| API | Method | Endpoint | Status |
|---|---|---|---|
| 정적 페이지 slug 조회 | GET | /shop/{shopId}/pages/{slug} | available |
| 정적 페이지 목록 | GET | /shop/{shopId}/pages | available |
| 본문 로드 | GET | page.contentUrl (S3 presigned URL) | available |
makitt-server (admin-api)
| API | Method | Endpoint | Status |
|---|---|---|---|
| 정적 페이지 CRUD | GET/POST/PUT/DELETE | /api/v1/shops/{shopId}/pages/* | available |
| 정적 페이지 발행 | PATCH | /api/v1/shops/{shopId}/pages/{pageId}/publish | available |
| 정책 초기화 | POST | /api/v1/shops/{shopId}/pages/policies/{marketCode}/initialize | available |
makitt-server (도메인/모델링)
| 항목 | 내용 | Status |
|---|---|---|
| StaticPage Entity | title, slug, type, contentS3Key, seo 포함 | available |
| StaticPageStatus | DRAFT, PUBLISHED, ARCHIVED | available |
| S3 Content Storage | draft/published presigned URL | available |
| PolicyTemplateService | 마켓별 정책 초기화 | available |
makitt-web (셀러 어드민 UI)
| 기능 | 설명 | Status |
|---|---|---|
| 정적 페이지 관리 | 목록/생성/편집/삭제 | available |
| Rich text 에디터 | Lexical 기반 본문 편집 | available |
makitt-shop (HCS 렌더링)
| 항목 | 설명 | Status |
|---|---|---|
staticPage.bySlug resource | slug 기반 단건 fetch + schema | available |
blog-content renderer | contentUrl → Lexical JSON 렌더링 | available |
HCS Conversion Notes
announcement-detail과 동일한 패턴 (resource → contentUrl → blog-content renderer)- 정책 페이지는 네비게이션(뒤로가기) 없이 독립적 콘텐츠 페이지로 동작
url.params.slug로 slug를 받아 동적 라우팅 지원- 페이지 라우트 예:
/terms→ slug=terms-of-service,/privacy→ slug=privacy-policy