sppurt 0.0.0-stage → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +109 -2
  2. package/dist/cli.js +2 -0
  3. package/dist/dashboard-ui/assets/SupplyChainCanvas-7QWuKZkc.js +1 -0
  4. package/dist/dashboard-ui/assets/index-DDMobcDz.css +1 -0
  5. package/dist/dashboard-ui/assets/index-idYPQJpm.js +809 -0
  6. package/dist/dashboard-ui/favicons/29cm.co.kr.png +0 -0
  7. package/dist/dashboard-ui/favicons/aliexpress.com.png +0 -0
  8. package/dist/dashboard-ui/favicons/amazon.com.png +0 -0
  9. package/dist/dashboard-ui/favicons/apify.com.png +0 -0
  10. package/dist/dashboard-ui/favicons/argo.camp.png +0 -0
  11. package/dist/dashboard-ui/favicons/boxhero.io.png +0 -0
  12. package/dist/dashboard-ui/favicons/bronte.co.kr.png +0 -0
  13. package/dist/dashboard-ui/favicons/cafe24.com.png +0 -0
  14. package/dist/dashboard-ui/favicons/cjdropshipping.com.png +0 -0
  15. package/dist/dashboard-ui/favicons/claude.ai.png +0 -0
  16. package/dist/dashboard-ui/favicons/coupang.com.png +0 -0
  17. package/dist/dashboard-ui/favicons/datalab.naver.com.png +0 -0
  18. package/dist/dashboard-ui/favicons/domeggook.com.png +0 -0
  19. package/dist/dashboard-ui/favicons/domeme.com.png +0 -0
  20. package/dist/dashboard-ui/favicons/domeme.domeggook.com.png +0 -0
  21. package/dist/dashboard-ui/favicons/ecount.com.png +0 -0
  22. package/dist/dashboard-ui/favicons/ezadmin.co.kr.png +0 -0
  23. package/dist/dashboard-ui/favicons/fallback.svg +1 -0
  24. package/dist/dashboard-ui/favicons/hwahae.com.png +0 -0
  25. package/dist/dashboard-ui/favicons/ksystem.co.kr.png +0 -0
  26. package/dist/dashboard-ui/favicons/kurly.com.png +0 -0
  27. package/dist/dashboard-ui/favicons/mail.google.com.ico +0 -0
  28. package/dist/dashboard-ui/favicons/meta.com.jpg +0 -0
  29. package/dist/dashboard-ui/favicons/musinsa.com.png +0 -0
  30. package/dist/dashboard-ui/favicons/oliveyoung.co.kr.png +0 -0
  31. package/dist/dashboard-ui/favicons/onewms.co.kr.png +0 -0
  32. package/dist/dashboard-ui/favicons/openai.com.png +0 -0
  33. package/dist/dashboard-ui/favicons/openclaw.ai.png +0 -0
  34. package/dist/dashboard-ui/favicons/plto.com.png +0 -0
  35. package/dist/dashboard-ui/favicons/poomgo.co.kr.ico +0 -0
  36. package/dist/dashboard-ui/favicons/qoo10.jp.png +0 -0
  37. package/dist/dashboard-ui/favicons/sabangnet.co.kr.png +0 -0
  38. package/dist/dashboard-ui/favicons/say-go.co.kr.png +0 -0
  39. package/dist/dashboard-ui/favicons/searchad.naver.com.png +0 -0
  40. package/dist/dashboard-ui/favicons/shopify.com.png +0 -0
  41. package/dist/dashboard-ui/favicons/shopping.naver.com.ico +0 -0
  42. package/dist/dashboard-ui/favicons/smartstore.ico +0 -0
  43. package/dist/dashboard-ui/favicons/sources.json +170 -0
  44. package/dist/dashboard-ui/favicons/specialoffer.co.kr.png +0 -0
  45. package/dist/dashboard-ui/favicons/ssfshop.com.png +0 -0
  46. package/dist/dashboard-ui/favicons/toss.im.png +0 -0
  47. package/dist/dashboard-ui/favicons/wconcept.co.kr.ico +0 -0
  48. package/dist/dashboard-ui/favicons/wehago.com.png +0 -0
  49. package/dist/dashboard-ui/favicons/zigzag.kr.png +0 -0
  50. package/dist/dashboard-ui/index.html +13 -0
  51. package/dist/skills/README.md +104 -0
  52. package/dist/skills/cost-calc/SKILL.md +104 -0
  53. package/dist/skills/cost-calc/agents/openai.yaml +8 -0
  54. package/dist/skills/cost-register/SKILL.md +116 -0
  55. package/dist/skills/daily-report/SKILL.md +80 -0
  56. package/dist/skills/daily-report/agents/openai.yaml +8 -0
  57. package/dist/skills/dashboard/SKILL.md +50 -0
  58. package/dist/skills/dashboard/agents/openai.yaml +8 -0
  59. package/dist/skills/inventory-sync/SKILL.md +85 -0
  60. package/dist/skills/inventory-sync/agents/openai.yaml +8 -0
  61. package/dist/skills/order-collect/SKILL.md +132 -0
  62. package/dist/skills/order-collect/agents/openai.yaml +8 -0
  63. package/dist/skills/order-fulfill/SKILL.md +97 -0
  64. package/dist/skills/order-fulfill/agents/openai.yaml +8 -0
  65. package/dist/skills/policy-ask/SKILL.md +52 -0
  66. package/dist/skills/price-monitor/SKILL.md +103 -0
  67. package/dist/skills/price-monitor/agents/openai.yaml +8 -0
  68. package/dist/skills/product-parse/SKILL.md +233 -0
  69. package/dist/skills/product-parse/agents/openai.yaml +8 -0
  70. package/dist/skills/product-sync/SKILL.md +85 -0
  71. package/dist/skills/product-sync/agents/openai.yaml +8 -0
  72. package/dist/skills/settlement-deposit/SKILL.md +88 -0
  73. package/dist/skills/settlement-report/SKILL.md +121 -0
  74. package/dist/skills/settlement-report/agents/openai.yaml +8 -0
  75. package/dist/skills/shopport/SKILL.md +123 -0
  76. package/dist/skills/shopport/agents/openai.yaml +8 -0
  77. package/dist/skills/source-to-register/SKILL.md +92 -0
  78. package/dist/skills/source-to-register/agents/openai.yaml +8 -0
  79. package/dist/skills/sppt/SKILL.md +234 -0
  80. package/dist/skills/sppt/agents/openai.yaml +8 -0
  81. package/dist/skills/sppurt/SKILL.md +234 -0
  82. package/dist/skills/sppurt/agents/openai.yaml +8 -0
  83. package/dist/skills/status-check/SKILL.md +78 -0
  84. package/dist/skills/status-check/agents/openai.yaml +8 -0
  85. package/dist/skills/trend-research/SKILL.md +79 -0
  86. package/dist/skills/trend-research/agents/openai.yaml +8 -0
  87. package/dist/skills/update/SKILL.md +83 -0
  88. package/dist/skills/waterfall-source/SKILL.md +80 -0
  89. package/dist/skills/waterfall-source/agents/openai.yaml +8 -0
  90. package/dist/skills/weekly-analysis/SKILL.md +84 -0
  91. package/dist/skills/weekly-analysis/agents/openai.yaml +8 -0
  92. package/package.json +60 -5
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: sppt-daily-report
3
+ description: |
4
+ 매일 아침 매출/주문 현황 브리핑 워크플로우.
5
+ Use when asked to "데일리 리포트", "오늘 브리핑", "매출 요약해줘", "아침 리포트".
6
+ ---
7
+
8
+ # daily-report
9
+
10
+ 매일 아침 매출/주문 현황을 브리핑 형식으로 요약하는 워크플로우.
11
+
12
+ ## When to use
13
+
14
+ - "데일리 리포트", "오늘 매출", "아침 브리핑" 요청 시
15
+ - 매일 아침 운영 현황을 한눈에 파악하고 싶을 때
16
+
17
+ ## Prerequisites
18
+
19
+ - 최소 1개 판매 채널 설정 완료
20
+
21
+ ## Steps
22
+
23
+ ### 1. 데이터 수집
24
+
25
+ 커맨드 **1회**로 모든 데이터를 가져옵니다:
26
+
27
+ ```bash
28
+ sppt report daily --json
29
+ ```
30
+
31
+ 옵션:
32
+ - `--period 7d` (기본값) — 기간 변경 가능
33
+ - `--top 3` (기본값) — 상품 순위 개수
34
+
35
+ ### 2. 브리핑 포맷으로 출력
36
+
37
+ JSON 응답을 파싱하여 아래 포맷으로 출력합니다.
38
+ 매출 금액은 천 단위 콤마 포맷을 사용합니다.
39
+ 인사말은 시간대에 맞게 조정합니다 (아침/오후/저녁).
40
+
41
+ ```
42
+ 안녕하세요. 좋은 아침이에요. 이번 주 매출 현황을 요약해 드릴게요.
43
+
44
+ - 총 판매건수: {summary.totalQuantity}건 / 총 매출 {summary.totalRevenue}원
45
+ - 채널별 매출
46
+ - {channels[].channel}: {revenue}원 ({quantity}건, {pct}%)
47
+ - 가장 많이 팔린 상품
48
+ - 1위: {topProducts[0].product} ({quantity}건 / {revenue}원)
49
+ - 2위: ...
50
+ - 3위: ...
51
+
52
+ {pendingOrders.length > 0 이면}
53
+ ⚠️ 미처리 주문 {N}건 — 발주 확인이 필요합니다.
54
+ - {channel} {orderId}: {product} ({amount}원)
55
+
56
+ 자세한 내용은 대시보드에서 확인할 수 있어요.
57
+ 대시보드를 보여드릴까요?
58
+
59
+ `sppt dashboard`
60
+
61
+ 다음은 매출 분석을 해드릴게요.
62
+ 무엇부터 분석해 드릴까요?
63
+
64
+ 1. 지난 주 대비 매출이익률에 영향을 준 원인 분석
65
+ 2. 지난 주 대비 채널별 매출 분포 변화 원인 분석
66
+ 3. 상품별 판매 트렌드 심층 분석
67
+ ```
68
+
69
+ ### 3. 후속 분석 (선택)
70
+
71
+ 사용자가 1~3 중 선택하면 해당 분석을 수행합니다:
72
+
73
+ 1. **매출이익률 분석**: `sppt settlement summary --days 7` + `sppt settlement summary --days 14` 비교
74
+ 2. **채널별 분포 분석**: `sppt report --by channel --period 7d` vs `sppt report --by channel --period 2w` 비교
75
+ 3. **상품 트렌드 분석**: `sppt report --by product --period 7d` 전주 대비 증감 확인
76
+
77
+ ## Error handling
78
+
79
+ - **채널 연결 실패**: CLI가 자동으로 건너뛰고 나머지 채널 결과 반환
80
+ - **주문 0건**: "이번 주 주문이 없습니다" 표시
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "일일 매출 브리핑"
3
+ short_description: "매일 아침 매출/주문 현황 요약 리포트"
4
+ brand_color: "#2563EB"
5
+ default_prompt: "$sppt-daily-report 오늘 매출 브리핑해줘"
6
+
7
+ policy:
8
+ allow_implicit_invocation: true
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: sppt-dashboard
3
+ description: |
4
+ Sppurt 운영 대시보드를 브라우저에서 띄우는 스킬.
5
+ Use when asked to "대시보드", "dashboard", "현황판 보여줘".
6
+ ---
7
+
8
+ # dashboard
9
+
10
+ Sppurt 웹 대시보드를 로컬에서 띄워 브라우저로 확인하는 워크플로우.
11
+
12
+ ## When to use
13
+
14
+ - "대시보드 띄워줘", "현황 보고 싶어", "dashboard" 요청 시
15
+ - 주문/상품/재고 현황을 시각적으로 확인하고 싶을 때
16
+
17
+ ## Steps
18
+
19
+ ### 1. 대시보드 실행
20
+
21
+ ```bash
22
+ sppt dashboard
23
+ ```
24
+
25
+ 기본 포트 3847에서 대시보드가 실행되고 브라우저가 자동으로 열립니다.
26
+
27
+ 포트를 변경하려면:
28
+
29
+ ```bash
30
+ sppt dashboard --port 8080
31
+ ```
32
+
33
+ ### 2. 대시보드 기능
34
+
35
+ 대시보드에서 확인 가능한 항목:
36
+ - 세션별 CLI 명령어 실행 현황 + 진행률
37
+ - 주문 조회 결과
38
+ - 상품 목록/상세
39
+ - 작업 로그
40
+
41
+ ### 3. 종료
42
+
43
+ 대시보드는 CLI 프로세스가 종료되면 함께 종료됩니다.
44
+ 터미널에서 `Ctrl+C`로 종료합니다.
45
+
46
+ ## Notes
47
+
48
+ - 대시보드는 로컬 전용 (외부 접근 불가)
49
+ - 주요 커맨드(order, product, inventory 등) 실행 시 세션 대시보드가 자동으로 열립니다
50
+ - `--no-dashboard` 플래그로 자동 열기를 비활성화할 수 있습니다
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "운영 대시보드"
3
+ short_description: "웹 브라우저에서 운영 대시보드 열기"
4
+ brand_color: "#2563EB"
5
+ default_prompt: "$sppt-dashboard 대시보드 열어줘"
6
+
7
+ policy:
8
+ allow_implicit_invocation: true
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: sppt-inventory-sync
3
+ description: |
4
+ 공급사 재고 기준 멀티채널 재고 분배 + 동기화 워크플로우.
5
+ Use when asked to "재고 동기화", "채널별 재고 맞춰줘", "재고 분배".
6
+ ---
7
+
8
+ # inventory-sync
9
+
10
+ 공급사 재고를 기준으로 4개 판매 채널의 재고를 분배하고 동기화하는 워크플로우.
11
+
12
+ ## When to use
13
+
14
+ - 사용자가 "재고 동기화해줘", "채널별 재고 맞춰줘", "재고 분배해줘" 같은 요청을 할 때
15
+ - 공급사 재고 변동 시 멀티채널 재고 업데이트가 필요할 때
16
+
17
+ ## Prerequisites
18
+
19
+ - 최소 2개 이상 판매 채널 설정
20
+ - `sppt status`로 채널 연결 상태 확인
21
+
22
+ ## Steps
23
+
24
+ ### 1. 재고 분배 계획 수립
25
+
26
+ ```bash
27
+ sppt inventory plan <totalStock> [sku]
28
+ ```
29
+
30
+ 예시:
31
+ ```bash
32
+ sppt inventory plan 500 SKU-001
33
+ ```
34
+
35
+ 출력 예시:
36
+ ```
37
+ 재고 분배 계획 (SKU: SKU-001, 총 재고: 500)
38
+ ────────────────────────────────
39
+ 버퍼 재고: 50 (10%)
40
+ 배분 가능: 450
41
+ ────────────────────────────────
42
+ cafe24: 135 (30%)
43
+ coupang: 180 (40%)
44
+ smartstore: 90 (20%)
45
+ shopify: 45 (10%)
46
+ ```
47
+
48
+ 사용자에게 분배 비율이 적절한지 확인합니다.
49
+
50
+ ### 2. 채널별 재고 업데이트
51
+
52
+ 각 채널에 순차적으로 재고를 동기화합니다:
53
+
54
+ ```bash
55
+ sppt inventory sync cafe24 <productId> 135
56
+ sppt inventory sync coupang <productId> 180
57
+ sppt inventory sync smartstore <productId> 90
58
+ sppt inventory sync shopify <productId> 45
59
+ ```
60
+
61
+ 채널별 재고 업데이트 방식 차이:
62
+ - **Shopify**: delta 방식 (동시성 안전, 현재값 대비 증감)
63
+ - **Cafe24, Coupang**: 절대값 방식 (직접 수량 설정)
64
+ - **SmartStore**: 상품 전체 PUT 방식 (가장 비효율적)
65
+
66
+ ### 3. 동기화 확인
67
+
68
+ ```bash
69
+ sppt product get <channel> <productId>
70
+ ```
71
+
72
+ 각 채널에서 재고가 올바르게 반영되었는지 확인합니다.
73
+
74
+ ## Error handling
75
+
76
+ - **재고 업데이트 실패**: Rate limit일 수 있음, 잠시 후 재시도
77
+ - **SmartStore 실패**: 상품 전체 PUT이므로 다른 필드가 변경될 수 있음 — 업데이트 전후 상품 정보 비교
78
+ - **Shopify delta 계산 오류**: 현재 재고를 먼저 조회한 후 차이값으로 업데이트
79
+
80
+ ## Notes
81
+
82
+ - 버퍼 재고(기본 10%)는 과잉 판매 방지용입니다
83
+ - 분배 비율은 채널별 판매 실적에 따라 조정하세요
84
+ - 재고가 0이 되면 모든 채널에서 품절 처리를 권장합니다
85
+ - Shopify의 delta 방식이 가장 안전하므로, 동시 접근이 많은 상품은 Shopify를 기준으로 하세요
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "재고 분배 동기화"
3
+ short_description: "공급사 재고 기준 멀티채널 재고 분배 + 동기화"
4
+ brand_color: "#2563EB"
5
+ default_prompt: "$sppt-inventory-sync 재고 동기화해줘"
6
+
7
+ policy:
8
+ allow_implicit_invocation: true
@@ -0,0 +1,132 @@
1
+ ---
2
+ name: sppt-order-collect
3
+ description: |
4
+ 멀티채널 주문을 한번에 모으거나 CSV/XLSX 파일로 내보내는 워크플로우.
5
+ Use when asked to "주문 모아줘", "전채널 주문 조회", "오늘 주문 몇 개야", "주문 동기화해줘", "주문 CSV로 뽑아줘".
6
+ ---
7
+
8
+ # order-collect
9
+
10
+ 설정된 모든 판매 채널의 주문을 한번에 조회하고 통합 요약하는 워크플로우.
11
+
12
+ ## When to use
13
+
14
+ - "오늘 주문 몇 개야?", "주문 모아줘", "전채널 주문 현황" 요청 시
15
+ - "최근 1개월 주문데이터 CSV로 뽑아줘", "지난달 주문 엑셀로 줘" 요청 시
16
+ - 매일 아침 주문 현황 파악할 때
17
+ - 멀티채널 주문을 한눈에 보고 싶을 때
18
+ - 정산/분석을 위해 주문 데이터를 처음 수집할 때
19
+
20
+ ## Prerequisites
21
+
22
+ - 최소 1개 판매 채널 설정 완료
23
+ - `sppt status`로 채널 연결 확인
24
+
25
+ ## Steps
26
+
27
+ ### 0. 파일 내보내기 요청
28
+
29
+ 사용자가 주문 파일을 요청하면 채널별 목록을 따로 출력하지 않고 아래 명령을 바로 실행합니다.
30
+
31
+ ```bash
32
+ sppt order export all --period 30d --format csv
33
+ ```
34
+
35
+ - "최근 1개월"은 `--period 30d`, "지난달"은 `--period last-month`로 해석합니다.
36
+ - 엑셀 파일을 명시하면 `--format xlsx`를 사용합니다.
37
+ - 기본 파일에는 수령인·전화번호·주소가 없습니다. 출고 목적으로 개인정보가 필요한 경우에만 `--include-pii`를 추가합니다.
38
+ - W컨셉·무신사는 브라우저 수집을 새로 실행하지 않고 이미 저장된 주문을 파일에 포함합니다. 무신사 주문수집은 무신사와 무신사 글로벌을 같은 로그인·이메일 인증으로 함께 가져오며, 두 채널을 구분해 파일에 포함합니다. 완료 후 해당 채널의 마지막 성공 수집 시각을 함께 알립니다.
39
+ - 완료 후 파일 경로, 주문상품 행 수, 제외된 채널과 사유를 사용자에게 알립니다.
40
+
41
+ 파일 요청이 아니면 아래 수집·요약 단계를 따릅니다.
42
+
43
+ ### 1. 채널 상태 확인
44
+
45
+ ```bash
46
+ sppt status
47
+ ```
48
+
49
+ 연결된 채널 목록을 파악합니다. 연결 실패한 채널이 있으면 사용자에게 알립니다.
50
+
51
+ ### 2. 수집 범위 결정
52
+
53
+ 최근 1일치 주문이 있는지 확인해 첫 수집인지 판단합니다:
54
+
55
+ ```bash
56
+ sppt order list cafe24 --days 1
57
+ ```
58
+
59
+ **결과가 0건이거나 오류인 경우 → 첫 수집 가능성 높음:**
60
+
61
+ 사용자에게 확인합니다:
62
+
63
+ > 저장된 주문이 없습니다. 처음 수집이라면 더 긴 기간이 필요할 수 있어요.
64
+ > 몇 일치를 가져올까요? (예: 30일, 90일, 또는 직접 입력)
65
+
66
+ 사용자가 기간을 답하면 그 값을 `--days N`으로 사용합니다.
67
+ 답하지 않거나 "그냥 해줘"이면 **90일**을 기본으로 사용합니다.
68
+
69
+ **결과가 있는 경우 → 일일 체크:**
70
+ `--days 1`을 사용합니다.
71
+
72
+ ### 3. 채널별 주문 조회
73
+
74
+ 결정된 기간(`DAYS`)으로 연결된 각 채널에서 주문을 조회합니다:
75
+
76
+ ```bash
77
+ sppt order list cafe24 --days DAYS
78
+ sppt order list coupang --days DAYS
79
+ sppt order list smartstore --days DAYS
80
+ sppt order list shopify --days DAYS
81
+ ```
82
+
83
+ - W컨셉·무신사는 브라우저 수집 채널이라 `order list`로 직접 재수집하지 않습니다. 무신사 수집 1회에 국내 주문 내역과 글로벌 주문 내역을 함께 읽고, 저장된 `musinsa`·`musinsa-global` 주문은 `order export all`에 각각 포함됩니다.
84
+
85
+ 사용자가 특정 기간을 명시적으로 요청했으면 그 기간을 우선합니다.
86
+
87
+ ### 4. 통합 요약
88
+
89
+ 채널별 결과를 통합하여 사용자에게 보여줍니다:
90
+
91
+ ```
92
+ 📦 주문 현황 (최근 N일)
93
+ ─────────────────────────────────────
94
+ 채널 신규 처리중 완료 합계
95
+ cafe24 3 2 5 10
96
+ coupang 5 1 8 14
97
+ smartstore 2 0 3 5
98
+ shopify 1 0 1 2
99
+ ─────────────────────────────────────
100
+ 합계 11 3 17 31
101
+ ```
102
+
103
+ 첫 수집으로 많은 데이터를 가져온 경우: "N일치 주문 XXX건을 수집했습니다. 대시보드에서 정산 현황을 확인하세요." 안내를 추가합니다.
104
+
105
+ ### 5. 미처리 주문 안내
106
+
107
+ 신규(미확인) 주문이 있으면 즉시 처리가 필요함을 안내합니다:
108
+
109
+ - 미확인 주문 → `/sppt-order-fulfill`로 처리 안내
110
+ - 발주 확인 후 송장 미등록 → 송장 등록 필요 안내
111
+
112
+ ### 6. 주문 상세 (선택)
113
+
114
+ 사용자가 특정 주문을 더 보고 싶으면:
115
+
116
+ ```bash
117
+ sppt order get <channel> <orderId>
118
+ ```
119
+
120
+ ## Error handling
121
+
122
+ - **채널 연결 실패**: 해당 채널 건너뛰고 나머지 채널 결과 표시, 재인증 안내
123
+ - **SmartStore 24시간 제한**: CLI가 자동으로 일 단위 순회하므로 걱정 불필요
124
+ - **Rate limit**: CLI rate limiter가 자동 처리
125
+ - **긴 기간 조회 시 속도 저하**: "N일치 조회 중입니다, 잠시 기다려 주세요." 안내 후 진행
126
+
127
+ ## Notes
128
+
129
+ - 매일 아침 체크 루틴으로 활용하면 효과적
130
+ - Coupang은 발주 확인 전에만 취소가 가능하므로 빠른 확인 중요
131
+ - `--json` 플래그로 JSON 출력 가능 (자동화/파이프라인 연동 시)
132
+ - 첫 수집 후 대시보드 정산 페이지를 새로고침하면 데이터가 반영됩니다
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "멀티채널 주문 수집"
3
+ short_description: "전채널 신규 주문 한번에 모아보기"
4
+ brand_color: "#2563EB"
5
+ default_prompt: "$sppt-order-collect 오늘 주문 보여줘"
6
+
7
+ policy:
8
+ allow_implicit_invocation: true
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: sppt-order-fulfill
3
+ description: |
4
+ 신규 주문 확인 → 소싱 발주 → 송장 등록까지 전체 주문 처리 워크플로우.
5
+ Use when asked to "주문 처리해줘", "송장 넣어줘", "발주 확인해줘".
6
+ ---
7
+
8
+ # order-fulfill
9
+
10
+ 신규 주문 확인 → 소싱 발주 → 송장 등록까지의 주문 처리 워크플로우.
11
+
12
+ ## When to use
13
+
14
+ - 사용자가 "새 주문 처리해줘", "주문 확인하고 송장 넣어줘" 같은 요청을 할 때
15
+ - 주문 확인부터 배송 처리까지 전체 플로우가 필요할 때
16
+
17
+ ## Prerequisites
18
+
19
+ - 최소 1개 판매 채널 설정 완료
20
+ - `sppt status`로 채널 연결 상태 확인
21
+
22
+ ## Steps
23
+
24
+ ### 1. 신규 주문 조회
25
+
26
+ ```bash
27
+ sppt order list <channel>
28
+ ```
29
+
30
+ 기본적으로 최근 7일간 주문을 조회합니다.
31
+
32
+ 채널별 제약:
33
+ - Coupang: 최대 31일 윈도우
34
+ - SmartStore: 최대 24시간 윈도우 (자주 확인 필요)
35
+
36
+ 여러 채널의 주문을 모두 확인하려면 각 채널별로 실행합니다.
37
+
38
+ ### 2. 주문 상세 확인
39
+
40
+ ```bash
41
+ sppt order get <channel> <orderId>
42
+ ```
43
+
44
+ 구매자 정보, 배송지, 주문 상품, 옵션을 확인합니다.
45
+
46
+ ### 3. 발주 확인 (주문 접수)
47
+
48
+ ```bash
49
+ sppt order confirm <channel> <orderId>
50
+ ```
51
+
52
+ 판매 채널에 발주 확인(주문 수락)을 전송합니다.
53
+ Coupang은 발주 확인 전에만 취소가 가능합니다.
54
+
55
+ ### 4. 소싱 발주
56
+
57
+ 현재 CLI에서 소싱 채널 자동 발주는 미지원입니다.
58
+ 사용자에게 소싱 채널에서 수동 발주를 안내합니다:
59
+
60
+ - 주문 상품의 소싱 채널 + 상품 ID 확인
61
+ - 배송지: 주문의 수령인 정보 전달
62
+ - 발주 후 택배사 코드 + 운송장 번호를 확보
63
+
64
+ ### 5. 송장 등록
65
+
66
+ ```bash
67
+ sppt invoice register <channel> <orderId> <carrierCode> <trackingNumber>
68
+ ```
69
+
70
+ 택배사 코드:
71
+ - `cj` — CJ대한통운
72
+ - `hanjin` — 한진택배
73
+ - `lotte` — 롯데택배
74
+ - `post` — 우체국택배
75
+ - `logen` — 로젠택배
76
+
77
+ 채널별로 택배사 코드가 자동 매핑됩니다.
78
+
79
+ ### 6. 처리 확인
80
+
81
+ ```bash
82
+ sppt order get <channel> <orderId>
83
+ ```
84
+
85
+ 상태가 `shipped`로 변경되었는지 확인합니다.
86
+
87
+ ## Error handling
88
+
89
+ - **주문 조회 실패**: `sppt status`로 채널 연결 확인, 토큰 만료 시 `sppt auth <channel>`
90
+ - **발주 확인 실패**: 이미 확인된 주문이거나 취소된 주문일 수 있음
91
+ - **송장 등록 실패**: 택배사 코드 오타 확인, 운송장 번호 형식 확인
92
+
93
+ ## Notes
94
+
95
+ - SmartStore는 주문 변경 폴링이 24시간 윈도우이므로 하루에 한 번 이상 확인 권장
96
+ - Coupang은 발주 확인 후 취소가 불가능하므로 신중하게 처리
97
+ - 여러 주문을 한 번에 처리할 때는 각 주문을 순차적으로 처리합니다
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "주문 처리 자동화"
3
+ short_description: "주문 확인 → 소싱 발주 → 송장 등록"
4
+ brand_color: "#2563EB"
5
+ default_prompt: "$sppt-order-fulfill 신규 주문 처리해줘"
6
+
7
+ policy:
8
+ allow_implicit_invocation: true
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: sppt-policy-ask
3
+ description: |
4
+ PG사·판매채널 정산·수수료 정책 Q&A.
5
+ Use when asked about "수수료율", "정산 주기", "지급보류", "D+", "영세 중소",
6
+ "토스페이먼츠", "카페24페이먼츠", "이니시스", "정책", "언제 정산돼".
7
+ ---
8
+
9
+ # policy-ask
10
+
11
+ PG사·판매채널 정책 DB를 검색해 수수료·정산·지급보류 질문에 답변.
12
+
13
+ ## 채널 키
14
+
15
+ | 질문 대상 | `--channel` 값 |
16
+ |---|---|
17
+ | 토스페이먼츠 | `toss-payments` |
18
+ | 카페24페이먼츠 | `cafe24-payments` |
19
+ | KG이니시스 | `kg-inicis` |
20
+ | 네이버페이 | `naver-pay` |
21
+ | 카페24 운영·결제 FAQ | `cafe24` |
22
+ | 스마트스토어 | `naver-smartstore` |
23
+ | 쿠팡 | `coupang` |
24
+
25
+ ## Steps
26
+
27
+ ### 1. 채널·키워드 결정
28
+ - 특정 PG사/채널 언급 → 해당 채널만
29
+ - "PG사별 비교", 채널 미언급 → 관련 채널 전체 순회
30
+ - 핵심 키워드 2~3단어 추출 (예: "수수료율", "정산 주기", "지급보류")
31
+
32
+ ### 2. 채널별 검색
33
+ ```bash
34
+ sppt settlement policy search "<키워드>" --channel <채널키> --limit 5
35
+ ```
36
+
37
+ 비교 질문은 채널당 limit 3으로 순회:
38
+ ```bash
39
+ sppt settlement policy search "수수료율" --channel toss-payments --limit 3
40
+ sppt settlement policy search "수수료율" --channel cafe24-payments --limit 3
41
+ sppt settlement policy search "수수료율" --channel kg-inicis --limit 3
42
+ ```
43
+
44
+ ### 3. 결과 합성
45
+ - 채널별로 구분해서 답변, 숫자(%, D+N)는 강조
46
+ - 출처 채널 명시
47
+ - DB에 없는 내용은 추측 금지
48
+
49
+ ## Notes
50
+ - **반드시 `--channel` 명시** — 미지정 시 naver FAQ(4000건)로 편향됨
51
+ - `fee_rate` 레코드는 등급별로 분리되어 있어 여러 건이 정상
52
+ - 결과 0건이면 키워드를 1~2단어로 줄여 재시도
@@ -0,0 +1,103 @@
1
+ ---
2
+ name: sppt-price-monitor
3
+ description: |
4
+ 소싱가 변동 감지 + 마진 체크 + 판매가 조정 제안 워크플로우.
5
+ Use when asked to "가격 변동 체크", "마진 확인", "소싱가 올랐는지".
6
+ ---
7
+
8
+ # price-monitor
9
+
10
+ 소싱 채널의 도매가 변동을 감지하고 판매가 조정을 제안하는 워크플로우.
11
+
12
+ ## When to use
13
+
14
+ - 사용자가 "가격 변동 체크해줘", "마진 확인해줘", "소싱가 올랐는지 봐줘" 같은 요청을 할 때
15
+ - 정기적으로 소싱가와 판매가의 마진을 점검할 때
16
+
17
+ ## Prerequisites
18
+
19
+ - 최소 1개 판매 채널 + 1개 소싱 채널 설정
20
+ - 등록된 상품의 소싱 채널 상품 ID를 알고 있어야 함
21
+
22
+ ## Steps
23
+
24
+ ### 1. 소싱 상품 현재 가격 조회
25
+
26
+ ```bash
27
+ sppt source detail <sourceChannel> <sourceProductId>
28
+ ```
29
+
30
+ 도매가(wholesalePrice)를 확인합니다.
31
+
32
+ ### 2. 판매 상품 현재 가격 조회
33
+
34
+ ```bash
35
+ sppt product get <sellingChannel> <sellingProductId>
36
+ ```
37
+
38
+ 현재 판매가를 확인합니다.
39
+
40
+ ### 3. 마진 계산
41
+
42
+ ```
43
+ 현재 마진 = (판매가 - 도매가 - 배송비) / 판매가 × 100
44
+ ```
45
+
46
+ 마진 기준:
47
+ | 마진율 | 상태 | 조치 |
48
+ |---|---|---|
49
+ | 30% 이상 | 양호 | 유지 |
50
+ | 15~30% | 주의 | 모니터링 강화 |
51
+ | 15% 미만 | 위험 | 판매가 인상 권고 |
52
+ | 0% 미만 | 적자 | 즉시 판매가 조정 또는 판매 중지 |
53
+
54
+ ### 4. 가격 조정 (필요시)
55
+
56
+ 마진이 기준 이하일 경우 사용자에게 판매가 조정을 제안합니다.
57
+
58
+ 제안 판매가 계산:
59
+ ```
60
+ 제안가 = 현재 도매가 × 1.3 + 배송비
61
+ ```
62
+
63
+ 사용자 확인 후, 새 가격을 담은 JSON 파일을 작성하고 업데이트합니다:
64
+
65
+ ```bash
66
+ # /tmp/price-update.json
67
+ # { "variants": [{ "id": "...", "sku": "...", "optionLabel": "기본", "price": <원가>, "salePrice": <제안가>, "stockQuantity": <현재재고> }] }
68
+
69
+ sppt product update <sellingChannel> <productId> --file /tmp/price-update.json
70
+ ```
71
+
72
+ 또는 가격 룰을 직접 적용하려면 `--markup` 플래그를 활용합니다:
73
+
74
+ ```bash
75
+ sppt product register <sellingChannel> --file /tmp/product.json --markup 1.3 --margin-floor 15
76
+ ```
77
+
78
+ ### 5. 복수 상품 모니터링
79
+
80
+ 여러 상품을 점검할 때는 Step 1~4를 반복합니다.
81
+ 결과를 표로 정리합니다:
82
+
83
+ ```
84
+ 가격 모니터링 결과
85
+ ─────────────────────────────────────────────
86
+ 상품명 소싱가 판매가 마진 상태
87
+ 아이폰 케이스 8,500원 13,900원 27% 주의
88
+ USB 허브 12,000원 19,900원 35% 양호
89
+ 블루투스 이어폰 15,200원 18,900원 12% 위험 ⚠
90
+ ─────────────────────────────────────────────
91
+ ```
92
+
93
+ ## Error handling
94
+
95
+ - **소싱 상품 조회 실패**: 상품이 품절되었거나 삭제되었을 수 있음 — 대체 소싱처 검색 권장
96
+ - **판매 상품 조회 실패**: 채널 연결 상태 확인
97
+
98
+ ## Notes
99
+
100
+ - 환율 변동 (CJ Dropshipping 이용 시)도 마진에 영향을 줍니다
101
+ - 배송비는 채널/지역에 따라 다르므로 사용자에게 확인합니다
102
+ - 가격 변동 이력은 대시보드에서 확인할 수 있습니다
103
+ - 주기적 모니터링은 주 1회 이상 권장합니다
@@ -0,0 +1,8 @@
1
+ interface:
2
+ display_name: "소싱가 모니터링"
3
+ short_description: "소싱가 변동 감지 → 마진 체크 → 판매가 조정"
4
+ brand_color: "#2563EB"
5
+ default_prompt: "$sppt-price-monitor 가격 변동 확인해줘"
6
+
7
+ policy:
8
+ allow_implicit_invocation: true