From egnis-cafe24
Cafe24 자사몰 상품/품목/카테고리 데이터를 적재한다. egnis-mcp에서 cafe24_get_access_token으로 토큰을 발급받아 Python 스크립트가 cafe24api.com을 직접 호출하여 상품번호별 판매가/공급가/재고/표시여부와 카테고리 매핑을 집계하고, 단일 HTML 대시보드(reports/cafe24/<brand>/<period>/dashboard.html)와 CSV(products_summary.csv, optional variants.csv)로 저장한다. 사용자가 "상품 데이터", "상품 적재", "/cafe24-products-export"를 호출하거나 --brand 옵션을 줄 때 동작한다. Tier 2 snapshot layout (추이 라인 없음, 분포 차트).
How this skill is triggered — by the user, by Claude, or both
Slash command
/egnis-cafe24:cafe24-products-exportThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **신규 스킬 작성 가이드 (ADR-003 §2):** 본 스킬은 반드시 `scripts/lib/dashboard_template.py`의
신규 스킬 작성 가이드 (ADR-003 §2): 본 스킬은 반드시
scripts/lib/dashboard_template.py의 함수형 진입점render_dashboard(...)만 사용한다. 외부 HTML 템플릿 파일 추가 금지. 기존scripts/templates/sales_dashboard.html은 PR-B에서 흡수되므로 grandfathered.
상품 데이터는 본질적으로 스냅샷 데이터(현재 시점 가격/재고)이지 시계열이 아니다. v3 plan §6의 Tier 분류에 따라 본 스킬은 snapshot layout (추이 라인 없음, 분포 차트만)을 사용한다.
dashboard_template.render_dashboard(layout="snapshot", ...) 호출/cafe24-products-export (옵션 없거나 --brand=<id|전체>)--brand 미지정: 전체 (9개 몰)--period-start/--period-end는 옵션이며 빈 값이면 today.--include-variants: 품목 상세까지 적재 (호출량 크게 증가, 기본 off)--dry-run: products/count 1회만 호출1. Claude (skill) → cafe24_get_access_token(mall_id) ← MCP
2. Python (fetch_products.py) → cafe24api.com 직접 호출
3. Python (build_products_dashboard.py) → CSV + snapshot HTML
CAFE24_TOKENS_JSON='{...}' \
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/fetch_products.py" \
--brand cloop \
--out-dir ./reports/cafe24/cloop/_snapshot/data/raw \
[--include-variants] [--dry-run]
스크립트는:
GET /api/v2/admin/products/count (dry-run 단일 호출 대상)GET /api/v2/admin/products (페이지네이션, limit=1000)GET /api/v2/admin/products/{no}/variants (옵션, --include-variants 시만)python3 "${CLAUDE_PLUGIN_ROOT}/scripts/build_products_dashboard.py" \
--raw-dir ./reports/cafe24/cloop/_snapshot/data/raw \
--out-dir ./reports/cafe24/cloop/_snapshot \
--brand-label "클룹"
산출:
data/products_summary.csv (상품번호별 가격/재고)data/products_variants.csv (옵션)dashboard.html (layout="snapshot", 가격대 분포 bar chart)dashboard KPI 4종 (Tier 2):
401/403 → exit 2 → skill 재발급 → 재실행.
상세는 docs/products_api_reference.md 참조.
| Endpoint | 출력 |
|---|---|
GET /api/v2/admin/products/count | dry-run 검증 |
GET /api/v2/admin/products | products_summary.csv 본체 |
GET /api/v2/admin/products/{no}/variants | products_variants.csv (옵션) |
SCOPE: mall.read_product
./reports/cafe24/<brand_or_all>/_snapshot/
├── dashboard.html ← snapshot layout
├── data/
│ ├── products_summary.csv
│ ├── products_variants.csv (옵션)
│ └── raw/
└── api_reference.md
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub egnis-it/claude-plugins --plugin egnis-cafe24