@optima-chat/optima-agent 0.9.11 → 0.9.12

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 (94) hide show
  1. package/.claude/skills/.kb-skills-managed.json +9 -9
  2. package/.claude/skills/ads/SKILL.md +244 -244
  3. package/.claude/skills/ads/template/campaign/CREATIVES.md +18 -18
  4. package/.claude/skills/ads/template/campaign/NOTES.md +10 -10
  5. package/.claude/skills/ads/template/campaign/STRATEGY.md +29 -29
  6. package/.claude/skills/ads/template/user/ADS.md +29 -29
  7. package/.claude/skills/ads/template/user/LEARNINGS.md +15 -15
  8. package/.claude/skills/ads/template/user/PROGRESS.md +20 -20
  9. package/.claude/skills/ads/template/user/README.md +25 -25
  10. package/.claude/skills/ads/template/user/assets/.gitignore +2 -2
  11. package/.claude/skills/bi/SKILL.md +131 -131
  12. package/.claude/skills/browser/SKILL.md +201 -201
  13. package/.claude/skills/channels/SKILL.md +188 -188
  14. package/.claude/skills/collection/SKILL.md +88 -88
  15. package/.claude/skills/douyin/SKILL.md +408 -408
  16. package/.claude/skills/ffmpeg/SKILL.md +164 -164
  17. package/.claude/skills/gen/SKILL.md +279 -279
  18. package/.claude/skills/growth/SKILL.md +90 -90
  19. package/.claude/skills/growth/template/ACCOUNTS.md +14 -14
  20. package/.claude/skills/growth/template/CALENDAR.md +7 -7
  21. package/.claude/skills/growth/template/COMMENTS.md +7 -7
  22. package/.claude/skills/growth/template/GROWTH.md +37 -37
  23. package/.claude/skills/growth/template/PROGRESS.md +4 -4
  24. package/.claude/skills/growth/template/README.md +20 -20
  25. package/.claude/skills/growth/template/TOPICS.md +7 -7
  26. package/.claude/skills/homepage/SKILL.md +177 -177
  27. package/.claude/skills/i18n/SKILL.md +517 -517
  28. package/.claude/skills/ingesting-sources/SKILL.md +94 -94
  29. package/.claude/skills/initializing-kb/SKILL.md +117 -117
  30. package/.claude/skills/instagram/SKILL.md +321 -321
  31. package/.claude/skills/inventory/SKILL.md +328 -328
  32. package/.claude/skills/kol-outreach/SKILL.md +232 -232
  33. package/.claude/skills/kol-outreach/template/campaign/CONFIG.md +60 -60
  34. package/.claude/skills/kol-outreach/template/campaign/KOLS.md +6 -6
  35. package/.claude/skills/kol-outreach/template/campaign/PROGRESS.md +3 -3
  36. package/.claude/skills/kol-outreach/template/campaign/TEMPLATES.md +88 -88
  37. package/.claude/skills/kol-outreach/template/merchant/BRAND.md +36 -36
  38. package/.claude/skills/kol-outreach/template/merchant/CAMPAIGNS.md +6 -6
  39. package/.claude/skills/kol-outreach/template/merchant/MERCHANT_LIMITS.md +16 -16
  40. package/.claude/skills/kol-outreach/template/merchant/PROGRESS.md +4 -4
  41. package/.claude/skills/kol-outreach/template/merchant/README.md +20 -20
  42. package/.claude/skills/linting-the-wiki/SKILL.md +68 -68
  43. package/.claude/skills/logistics/SKILL.md +180 -180
  44. package/.claude/skills/markdown-pdf/SKILL.md +72 -72
  45. package/.claude/skills/merchant/SKILL.md +110 -110
  46. package/.claude/skills/multigrid-poster/SKILL.md +192 -192
  47. package/.claude/skills/multigrid-poster/layouts/2x2.json +34 -34
  48. package/.claude/skills/multigrid-poster/layouts/3x3.json +43 -43
  49. package/.claude/skills/multigrid-poster/scripts/compose.py +116 -116
  50. package/.claude/skills/order/SKILL.md +452 -452
  51. package/.claude/skills/product/SKILL.md +379 -379
  52. package/.claude/skills/product-page/SKILL.md +106 -106
  53. package/.claude/skills/querying-the-wiki/SKILL.md +59 -59
  54. package/.claude/skills/reddit/SKILL.md +277 -277
  55. package/.claude/skills/review/SKILL.md +321 -321
  56. package/.claude/skills/scout/SKILL.md +575 -575
  57. package/.claude/skills/sentinel/SKILL.md +281 -281
  58. package/.claude/skills/shein/SKILL.md +246 -246
  59. package/.claude/skills/shipping/SKILL.md +200 -200
  60. package/.claude/skills/shop-content/SKILL.md +101 -101
  61. package/.claude/skills/shopify/SKILL.md +282 -282
  62. package/.claude/skills/skillify/SKILL.md +114 -114
  63. package/.claude/skills/taobao/SKILL.md +238 -238
  64. package/.claude/skills/tiktok/SKILL.md +381 -381
  65. package/.claude/skills/twitter/SKILL.md +302 -302
  66. package/.claude/skills/updating-related-pages/SKILL.md +65 -65
  67. package/.claude/skills/video-edit/SKILL.md +138 -138
  68. package/.claude/skills/video-gen/SKILL.md +630 -630
  69. package/.claude/skills/video-gen/templates/INDEX.md +78 -78
  70. package/.claude/skills/video-gen/templates/before-after-beauty.md +183 -183
  71. package/.claude/skills/video-gen/templates/drama-fmcg.md +183 -183
  72. package/.claude/skills/video-gen/templates/kol-reaction-food.md +193 -193
  73. package/.claude/skills/video-gen/templates/multi-point-apparel.md +185 -185
  74. package/.claude/skills/video-gen/templates/pain-solution-home.md +184 -184
  75. package/.claude/skills/video-gen/templates/pdp-360-showcase.md +189 -189
  76. package/.claude/skills/video-gen/templates/pdp-feature-highlight.md +182 -182
  77. package/.claude/skills/video-gen/templates/scene-digital.md +183 -183
  78. package/.claude/skills/wechat/SKILL.md +174 -174
  79. package/.claude/skills/xhs/SKILL.md +170 -170
  80. package/README.md +276 -276
  81. package/dist/bin/optima.js +26 -26
  82. package/dist/bin/serve.js +23 -23
  83. package/dist/bin/video-edit.d.ts +3 -0
  84. package/dist/bin/video-edit.d.ts.map +1 -0
  85. package/dist/bin/video-edit.js +153 -0
  86. package/dist/bin/video-edit.js.map +1 -0
  87. package/dist/src/agent.d.ts +1 -1
  88. package/dist/src/agent.js +4 -4
  89. package/dist/src/system-prompt.d.ts.map +1 -1
  90. package/dist/src/system-prompt.js +175 -173
  91. package/dist/src/system-prompt.js.map +1 -1
  92. package/dist/src/tools/memory.js +10 -10
  93. package/dist/src/ui/headless.js +7 -7
  94. package/package.json +79 -79
@@ -1,379 +1,379 @@
1
- ---
2
- name: product
3
- description: Product catalog management for e-commerce stores. Create and update products, manage variants/SKUs, upload product images, organize tags. Use when user needs to add new products, update pricing, upload photos, or organize product catalog. NOTE - For inventory/stock management, use the inventory skill instead.
4
- ---
5
-
6
- # Commerce CLI - Product Management
7
-
8
- 商品管理模块,用于电商商品目录的创建、编辑和组织。
9
-
10
- ## 典型场景
11
-
12
- ### 场景1:单个商品上架
13
- **流程**: 准备素材 → 上传图片 → 创建商品 → 验证
14
- ```bash
15
- # 1. 上传商品图片
16
- commerce upload image --path ./tshirt-main.jpg # 获得 media_123
17
-
18
- # 2. 创建商品
19
- commerce product create \
20
- --name "纯棉T恤" \
21
- --price 99 \
22
- --stock 20 \
23
- --description "100% 纯棉,舒适透气" \
24
- --media-id media_123
25
- ```
26
-
27
- ### 场景2:多规格商品上架
28
- **流程**: 创建主商品 → 创建所有变体 → 关联图片(共享+变体专属)
29
- ```bash
30
- # 1. 创建主商品
31
- commerce product create --name "T恤" --price 99
32
- # 获得 product_id: prod_123
33
-
34
- # 2. 创建所有变体
35
- commerce variant create --product-id prod_123 --sku "TSHIRT-RED-S" \
36
- --attributes '{"颜色":"红色","尺寸":"S"}' --price 99 --stock 50
37
- # 获得 variant_id: var_red_s
38
- commerce variant create --product-id prod_123 --sku "TSHIRT-BLUE-S" \
39
- --attributes '{"颜色":"蓝色","尺寸":"S"}' --price 99 --stock 50
40
- # 获得 variant_id: var_blue_s
41
-
42
- # 3. 关联共享图片(所有变体都能看到)
43
- commerce product add-images --id prod_123 --media-id media_front,media_back
44
-
45
- # 4. 关联变体专属图片(选择该变体时显示)
46
- commerce variant add-images --product-id prod_123 --variant-id var_red_s --url "https://cdn.../red.jpg"
47
- commerce variant add-images --product-id prod_123 --variant-id var_blue_s --url "https://cdn.../blue.jpg"
48
- # 也可以用已有 media_id:--media-id media_red
49
- ```
50
-
51
- ### 场景3:批量商品导入
52
- **流程**: 先上传共享资源 → 循环创建商品
53
- ```bash
54
- # 1. 上传品牌logo(所有商品共享)
55
- commerce upload image --path ./brand-logo.jpg # 获得 media_shared
56
-
57
- # 2. 批量创建商品(复用media_id)
58
- for product in "T恤" "衬衫" "卫衣"; do
59
- commerce product create --name "$product" --price 99 --media-id media_shared
60
- done
61
- ```
62
-
63
- ### 场景4:促销活动准备
64
- **任务**: 批量更新价格和标签
65
- ```bash
66
- # 1. 查找目标商品
67
- commerce product list --query "T恤" --limit 50
68
-
69
- # 2. 批量更新价格和促销标签(设置原价显示折扣)
70
- commerce product update --id prod_123 --price 79 --original-price 99 --tags "featured,sale"
71
- commerce product update --id prod_456 --price 79 --original-price 99 --tags "featured,sale"
72
- ```
73
-
74
- ### 场景5:商品图片更新
75
- **任务**: 更换主图或添加详情图
76
- ```bash
77
- # 1. 上传新图片
78
- commerce upload image --path ./new-photo.jpg # 获得 media_new
79
-
80
- # 2. 添加到商品
81
- commerce product add-images --id prod_123 --media-id media_new
82
- ```
83
-
84
- ### 场景6:创建促销商品
85
- **任务**: 创建带折扣显示的商品(显示划线价)
86
- ```bash
87
- # 创建促销商品:售价79,原价99(显示划线价)
88
- commerce product create \
89
- --name "夏日特惠T恤" \
90
- --price 79 \
91
- --original-price 99 \
92
- --stock 100 \
93
- --tags "sale"
94
- ```
95
-
96
- ### 场景决策表
97
-
98
- | 用户需求 | 推荐命令 | 关键注意点 |
99
- |---------|---------|-----------|
100
- | 单个商品 | `product create` | 先上传图片,准备好所有必填字段 |
101
- | 多规格商品 | `product create` + `variant create` | 主商品设置基础价格,变体设置差异价 |
102
- | 批量上架 | 脚本循环 `product create` | 复用共享图片的media_id,避免重复上传 |
103
- | 更新价格 | `product update --price` | 如有变体,需逐个更新变体价格 |
104
- | 促销商品 | `product create --original-price` | `--original-price` 必须大于 `--price` |
105
- | 促销标签 | `product update --tags` | 用逗号分隔,保留原有标签 |
106
- | 图片更新 | `upload` + `add-images` | 先上传再关联,不要直接删除旧图 |
107
- | 删除商品 | `product delete` | **软删除**,商品状态变为 archived |
108
- | 下架商品 | `product update --status inactive` | 暂时隐藏,可随时恢复 |
109
-
110
- ## 商品状态说明(重要)
111
-
112
- | 状态 | 含义 | 用户可能说 |
113
- |------|------|-----------|
114
- | `active` | 正常上架,买家可见 | "上架"、"发布" |
115
- | `inactive` | 暂时下架,买家不可见 | "下架"、"隐藏" |
116
- | `draft` | 草稿,未发布 | "草稿"、"暂存" |
117
- | `archived` | **已删除(软删除)**,数据保留 | "删除"、"移除" |
118
-
119
- **`product delete` = 软删除**:删除商品会将状态设为 `archived`,数据保留但不再显示。
120
-
121
- **已归档商品不需要再删除**:如果商品状态已经是 `archived`,告诉用户"商品已删除"。
122
-
123
- ## 卓越标准
124
-
125
- ### 商品质量维度
126
- - **图片质量**: 至少3张不同角度,主图尺寸 ≥ 1200x1200px
127
- - **描述完整性**: 必填字段100%填写,描述文字 ≥ 50字
128
- - **SEO优化**: 标题包含核心关键词,使用3-5个相关标签
129
- - **变体规范**: 使用统一的attributes key(如"颜色"、"尺寸"),避免同义词混用
130
- - **库存准确**: 创建时设置真实库存,避免超卖和缺货
131
-
132
- ### 上架流程原则
133
- - **图片先行**: 先批量上传所有图片获取media_id,再创建商品(避免重复上传)
134
- - **主商品后变体**: 先创建主商品获取product_id,再创建所有变体
135
- - **数据完整性**: 每个变体必须有独立SKU、库存、价格
136
- - **标签策略**: 精选(featured)、新品(new)、促销(sale)等核心标签要及时更新
137
-
138
- ### 质量检查清单
139
- - [ ] 商品标题简洁有力,包含关键词
140
- - [ ] 描述文字 ≥ 50字,突出卖点
141
- - [ ] 至少3张图片,主图清晰
142
- - [ ] 价格和库存准确无误
143
- - [ ] 变体SKU不重复
144
- - [ ] 标签使用合理(3-5个)
145
-
146
- ## 常见问题
147
-
148
- ### ❌ 问题1:重复上传图片
149
- **错误做法**:
150
- ```bash
151
- # 每个商品都上传相同的logo
152
- for product in products; do
153
- commerce upload image --path ./logo.jpg
154
- commerce product create --name "$product" --media-id $NEW_ID
155
- done
156
- ```
157
-
158
- **正确做法**:
159
- ```bash
160
- # 先上传一次,复用media_id
161
- commerce upload image --path ./logo.jpg # 获得 media_123
162
- for product in products; do
163
- commerce product create --name "$product" --media-id media_123
164
- done
165
- ```
166
-
167
- ### ❌ 问题2:忘记创建变体
168
- **症状**: 多规格商品只有主商品,无法选择颜色/尺寸
169
- **解决**: 创建主商品后,立即创建所有变体
170
-
171
- ```bash
172
- # 错误:只创建主商品
173
- commerce product create --name "T恤" --price 99
174
-
175
- # 正确:创建主商品 + 所有变体
176
- commerce product create --name "T恤" --price 99 # 获得 prod_123
177
- commerce variant create --product-id prod_123 --sku "TSHIRT-RED-S" ...
178
- commerce variant create --product-id prod_123 --sku "TSHIRT-RED-M" ...
179
- ```
180
-
181
- ### ❌ 问题3:变体attributes不一致
182
- **症状**: 规格筛选混乱,如"颜色"、"color"、"Color"混用
183
- **解决**: 统一使用中文或英文,全局保持一致
184
-
185
- ```bash
186
- # 错误:同义词混用
187
- --attributes '{"颜色":"红色"}'
188
- --attributes '{"color":"蓝色"}'
189
-
190
- # 正确:统一使用
191
- --attributes '{"颜色":"红色"}'
192
- --attributes '{"颜色":"蓝色"}'
193
- ```
194
-
195
- ### ❌ 问题4:批量更新时覆盖标签
196
- **症状**: 更新标签时把原有标签清空
197
- **解决**: 先查看原有标签,追加新标签
198
-
199
- ```bash
200
- # 错误:直接覆盖
201
- commerce product update --id prod_123 --tags "sale" # featured标签丢失
202
-
203
- # 正确:先查看再追加
204
- commerce product get --id prod_123 # 查看原有标签: featured,new
205
- commerce product update --id prod_123 --tags "featured,new,sale"
206
- ```
207
-
208
- ### ❌ 问题5:库存设置不准确
209
- **症状**: 超卖或缺货
210
- **解决**: 创建时设置真实库存,定期同步ERP数据
211
-
212
- ```bash
213
- # 先确认真实库存,再创建
214
- commerce product create --name "T恤" --price 99 --stock 50 # 确保真实有50件
215
- ```
216
-
217
- ## 命令参考
218
-
219
- ### 自然语言映射
220
-
221
- 当用户说:
222
- - "创建XX商品,价格YY" → `commerce product create --name XX --price YY`
223
- - "创建XX商品,售价YY,原价ZZ" → `commerce product create --name XX --price YY --original-price ZZ`
224
- - "创建促销商品,价格79,划线价99" → `commerce product create --name XX --price 79 --original-price 99`
225
- - "上传商品图片" → `commerce upload image --path ./photo.jpg`
226
- - "添加商品变体" → `commerce variant create --product-id XX --sku YY`
227
- - "给变体加图片" / "变体图片" / "变体显示图片" → `commerce variant add-images --product-id XX --variant-id YY --url/--media-id`
228
- - "把已有图片指定给变体" → `commerce variant add-images --product-id XX --variant-id YY --media-id ZZ`
229
- - "更新商品价格" → `commerce product update --id XX --price YY`
230
- - "设置商品原价/划线价" → `commerce product update --id XX --original-price YY`
231
- - "给商品打标签" → `commerce product update --id XX --tags "featured,new"`
232
- - "设置商品重量和尺寸" → `commerce product update --id XX --weight 0.5 --length 10 --width 8 --height 5`
233
- - "库存设置为 N" → `commerce inventory set --id XX --quantity N`(加载 inventory skill)
234
- - "查看所有商品" → `commerce product list`
235
-
236
- ### 核心功能
237
-
238
- **商品 CRUD**:
239
- - `commerce product create` - 创建商品
240
- - `commerce product list` - 查看商品列表
241
- - `commerce product get` - 查看商品详情
242
- - `commerce product update` - 更新商品信息
243
- - `commerce product delete` - 删除商品
244
-
245
- **变体/SKU 管理**:
246
- - `commerce variant create` - 创建商品变体
247
- - `commerce variant list` - 查看变体列表
248
- - `commerce variant update` - 更新变体信息
249
- - `commerce variant delete` - 删除变体
250
- - `commerce variant add-images` - 给变体关联图片(支持 URL/本地文件/media_id)
251
-
252
- **图片管理**:
253
- - `commerce upload image` - 上传图片
254
- - `commerce product add-images` - 关联图片到商品(所有变体共享)
255
- - `commerce product remove-images` - 移除商品图片
256
- - `commerce variant add-images` - 关联图片到特定变体(变体专属)
257
-
258
- ## 详细示例
259
-
260
- ### 示例1:创建单个商品
261
- ```bash
262
- # 用户说:"创建T恤商品,99美元,库存20"
263
- # 描述支持 Markdown 格式
264
- commerce product create \
265
- --name "T恤" \
266
- --price 99 \
267
- --stock 20 \
268
- --description "## 产品特点
269
-
270
- - **材质**:100% 纯棉
271
- - **特性**:透气舒适,不易起球
272
- - **适合人群**:日常休闲、运动
273
-
274
- > 机洗建议:30°C 以下冷水洗涤"
275
- ```
276
-
277
- ### 示例2:上传商品图片
278
- ```bash
279
- # 用户说:"上传商品主图"
280
- commerce upload image --path ./tshirt-main.jpg
281
- # 返回: { media_id: "media_123" }
282
-
283
- # 关联到商品
284
- commerce product add-images \
285
- --id prod_123 \
286
- --media-id media_123
287
- ```
288
-
289
- ### 示例3:创建商品变体
290
- ```bash
291
- # 用户说:"给商品添加红色S码的变体"
292
- commerce variant create \
293
- --product-id prod_123 \
294
- --sku "TSHIRT-RED-S" \
295
- --price 99 \
296
- --stock 50 \
297
- --attributes '{"颜色":"红色","尺寸":"S"}'
298
- ```
299
-
300
- ### 示例4:管理商品标签
301
- ```bash
302
- # 用户说:"把商品标记为精选和新品"
303
- commerce product update \
304
- --id prod_123 \
305
- --tags "featured,new"
306
-
307
- # 查看带特定标签的商品
308
- commerce product list --tags "featured"
309
- ```
310
-
311
- ### 示例5:批量更新价格
312
- ```bash
313
- # 用户说:"把所有T恤价格改成89"
314
- # 1. 先查找T恤商品
315
- commerce product list --query "T恤"
316
-
317
- # 2. 逐个更新
318
- commerce product update --id prod_123 --price 89
319
- commerce product update --id prod_456 --price 89
320
- ```
321
-
322
- ### 示例6:完整的多规格商品上架
323
- ```bash
324
- # 完整流程演示
325
- # 1. 上传图片
326
- commerce upload image --path ./tshirt-red.jpg # media_red
327
- commerce upload image --path ./tshirt-blue.jpg # media_blue
328
-
329
- # 2. 创建主商品
330
- commerce product create --name "纯棉T恤" --price 99
331
- # 获得 product_id: prod_123
332
-
333
- # 3. 创建变体
334
- commerce variant create --product-id prod_123 --sku "TSHIRT-RED-S" \
335
- --attributes '{"颜色":"红色","尺寸":"S"}' --price 99 --stock 50
336
-
337
- commerce variant create --product-id prod_123 --sku "TSHIRT-RED-M" \
338
- --attributes '{"颜色":"红色","尺寸":"M"}' --price 99 --stock 30
339
-
340
- commerce variant create --product-id prod_123 --sku "TSHIRT-BLUE-S" \
341
- --attributes '{"颜色":"蓝色","尺寸":"S"}' --price 99 --stock 40
342
-
343
- # 4. 关联图片
344
- commerce product add-images --id prod_123 --media-id media_red,media_blue
345
-
346
- # 5. 验证
347
- commerce product get --id prod_123
348
- ```
349
-
350
- ### 物流属性引导(物理产品)
351
-
352
- 创建 `requires_shipping: true` 的物理产品时:
353
-
354
- 1. **重量**:引导卖家填写准确重量(影响所有物流报价准确性)
355
- 2. **cargo_type**:根据产品标题/描述自动推断(默认 general),向卖家确认
356
- - 推断方式:"根据产品信息,我推断这是普通商品,对吗?"(不要直接问"含电池吗?")
357
- - 可选值:general(普货)、battery(带电)、liquid(液体)、cosmetic(化妆品)、clothing(服装)、powder(粉末)、wood(木制品)
358
- - 这是通用物流属性,不需要提及任何具体物流商
359
- 3. **brand**:引导填写品牌(可选,用于物流限制检查)
360
- 4. 用户可跳过,但告知"会影响物流方案选择和报价准确性"
361
- 5. 数字产品跳过整个物流属性流程
362
-
363
- ## 重要提示
364
-
365
- - **国际化策略** - 平台默认语言是英文(en-US)。当用户同时提供中英文内容时,用英文创建商品,中文通过 `i18n` skill 添加翻译。当用户要求"国际化"时,确保英文在主表,其他语言通过 i18n 添加。详见 i18n skill。
366
- - **库存管理统一使用 inventory skill** - 设置目标值用 `inventory set --id XX --quantity N`,增减库存用 `inventory adjust --id XX --quantity N`。**有变体的产品不能直接设置主产品库存**(会被拒绝),必须逐个设置变体的库存。
367
- - **商品描述支持 Markdown 格式**,可以使用标题、列表、加粗、链接等排版
368
- - 所有命令默认 JSON 输出,便于 AI 解析
369
- - 图片需要先上传获取 `media_id`,再关联到商品
370
- - 变体的 `attributes` 使用 JSON 格式
371
- - 标签使用逗号分隔的字符串
372
- - 支持的图片格式:JPG, PNG, WebP(最大 10MB)
373
- - 使用 `--help` 查看命令详细参数
374
- - 删除商品会同时删除所有变体和图片关联
375
- - 价格单位默认为美元(USD),可通过后台配置修改
376
- - **重量单位:kg**(如 0.5 表示 500g)
377
- - **尺寸单位:cm**(length/width/height)
378
- - 集合 slug 必须唯一,用于 URL,使用英文和连字符
379
- - 集合封面支持三种方式:`--media-id`(推荐)、`--url`、`--path`
1
+ ---
2
+ name: product
3
+ description: Product catalog management for e-commerce stores. Create and update products, manage variants/SKUs, upload product images, organize tags. Use when user needs to add new products, update pricing, upload photos, or organize product catalog. NOTE - For inventory/stock management, use the inventory skill instead.
4
+ ---
5
+
6
+ # Commerce CLI - Product Management
7
+
8
+ 商品管理模块,用于电商商品目录的创建、编辑和组织。
9
+
10
+ ## 典型场景
11
+
12
+ ### 场景1:单个商品上架
13
+ **流程**: 准备素材 → 上传图片 → 创建商品 → 验证
14
+ ```bash
15
+ # 1. 上传商品图片
16
+ commerce upload image --path ./tshirt-main.jpg # 获得 media_123
17
+
18
+ # 2. 创建商品
19
+ commerce product create \
20
+ --name "纯棉T恤" \
21
+ --price 99 \
22
+ --stock 20 \
23
+ --description "100% 纯棉,舒适透气" \
24
+ --media-id media_123
25
+ ```
26
+
27
+ ### 场景2:多规格商品上架
28
+ **流程**: 创建主商品 → 创建所有变体 → 关联图片(共享+变体专属)
29
+ ```bash
30
+ # 1. 创建主商品
31
+ commerce product create --name "T恤" --price 99
32
+ # 获得 product_id: prod_123
33
+
34
+ # 2. 创建所有变体
35
+ commerce variant create --product-id prod_123 --sku "TSHIRT-RED-S" \
36
+ --attributes '{"颜色":"红色","尺寸":"S"}' --price 99 --stock 50
37
+ # 获得 variant_id: var_red_s
38
+ commerce variant create --product-id prod_123 --sku "TSHIRT-BLUE-S" \
39
+ --attributes '{"颜色":"蓝色","尺寸":"S"}' --price 99 --stock 50
40
+ # 获得 variant_id: var_blue_s
41
+
42
+ # 3. 关联共享图片(所有变体都能看到)
43
+ commerce product add-images --id prod_123 --media-id media_front,media_back
44
+
45
+ # 4. 关联变体专属图片(选择该变体时显示)
46
+ commerce variant add-images --product-id prod_123 --variant-id var_red_s --url "https://cdn.../red.jpg"
47
+ commerce variant add-images --product-id prod_123 --variant-id var_blue_s --url "https://cdn.../blue.jpg"
48
+ # 也可以用已有 media_id:--media-id media_red
49
+ ```
50
+
51
+ ### 场景3:批量商品导入
52
+ **流程**: 先上传共享资源 → 循环创建商品
53
+ ```bash
54
+ # 1. 上传品牌logo(所有商品共享)
55
+ commerce upload image --path ./brand-logo.jpg # 获得 media_shared
56
+
57
+ # 2. 批量创建商品(复用media_id)
58
+ for product in "T恤" "衬衫" "卫衣"; do
59
+ commerce product create --name "$product" --price 99 --media-id media_shared
60
+ done
61
+ ```
62
+
63
+ ### 场景4:促销活动准备
64
+ **任务**: 批量更新价格和标签
65
+ ```bash
66
+ # 1. 查找目标商品
67
+ commerce product list --query "T恤" --limit 50
68
+
69
+ # 2. 批量更新价格和促销标签(设置原价显示折扣)
70
+ commerce product update --id prod_123 --price 79 --original-price 99 --tags "featured,sale"
71
+ commerce product update --id prod_456 --price 79 --original-price 99 --tags "featured,sale"
72
+ ```
73
+
74
+ ### 场景5:商品图片更新
75
+ **任务**: 更换主图或添加详情图
76
+ ```bash
77
+ # 1. 上传新图片
78
+ commerce upload image --path ./new-photo.jpg # 获得 media_new
79
+
80
+ # 2. 添加到商品
81
+ commerce product add-images --id prod_123 --media-id media_new
82
+ ```
83
+
84
+ ### 场景6:创建促销商品
85
+ **任务**: 创建带折扣显示的商品(显示划线价)
86
+ ```bash
87
+ # 创建促销商品:售价79,原价99(显示划线价)
88
+ commerce product create \
89
+ --name "夏日特惠T恤" \
90
+ --price 79 \
91
+ --original-price 99 \
92
+ --stock 100 \
93
+ --tags "sale"
94
+ ```
95
+
96
+ ### 场景决策表
97
+
98
+ | 用户需求 | 推荐命令 | 关键注意点 |
99
+ |---------|---------|-----------|
100
+ | 单个商品 | `product create` | 先上传图片,准备好所有必填字段 |
101
+ | 多规格商品 | `product create` + `variant create` | 主商品设置基础价格,变体设置差异价 |
102
+ | 批量上架 | 脚本循环 `product create` | 复用共享图片的media_id,避免重复上传 |
103
+ | 更新价格 | `product update --price` | 如有变体,需逐个更新变体价格 |
104
+ | 促销商品 | `product create --original-price` | `--original-price` 必须大于 `--price` |
105
+ | 促销标签 | `product update --tags` | 用逗号分隔,保留原有标签 |
106
+ | 图片更新 | `upload` + `add-images` | 先上传再关联,不要直接删除旧图 |
107
+ | 删除商品 | `product delete` | **软删除**,商品状态变为 archived |
108
+ | 下架商品 | `product update --status inactive` | 暂时隐藏,可随时恢复 |
109
+
110
+ ## 商品状态说明(重要)
111
+
112
+ | 状态 | 含义 | 用户可能说 |
113
+ |------|------|-----------|
114
+ | `active` | 正常上架,买家可见 | "上架"、"发布" |
115
+ | `inactive` | 暂时下架,买家不可见 | "下架"、"隐藏" |
116
+ | `draft` | 草稿,未发布 | "草稿"、"暂存" |
117
+ | `archived` | **已删除(软删除)**,数据保留 | "删除"、"移除" |
118
+
119
+ **`product delete` = 软删除**:删除商品会将状态设为 `archived`,数据保留但不再显示。
120
+
121
+ **已归档商品不需要再删除**:如果商品状态已经是 `archived`,告诉用户"商品已删除"。
122
+
123
+ ## 卓越标准
124
+
125
+ ### 商品质量维度
126
+ - **图片质量**: 至少3张不同角度,主图尺寸 ≥ 1200x1200px
127
+ - **描述完整性**: 必填字段100%填写,描述文字 ≥ 50字
128
+ - **SEO优化**: 标题包含核心关键词,使用3-5个相关标签
129
+ - **变体规范**: 使用统一的attributes key(如"颜色"、"尺寸"),避免同义词混用
130
+ - **库存准确**: 创建时设置真实库存,避免超卖和缺货
131
+
132
+ ### 上架流程原则
133
+ - **图片先行**: 先批量上传所有图片获取media_id,再创建商品(避免重复上传)
134
+ - **主商品后变体**: 先创建主商品获取product_id,再创建所有变体
135
+ - **数据完整性**: 每个变体必须有独立SKU、库存、价格
136
+ - **标签策略**: 精选(featured)、新品(new)、促销(sale)等核心标签要及时更新
137
+
138
+ ### 质量检查清单
139
+ - [ ] 商品标题简洁有力,包含关键词
140
+ - [ ] 描述文字 ≥ 50字,突出卖点
141
+ - [ ] 至少3张图片,主图清晰
142
+ - [ ] 价格和库存准确无误
143
+ - [ ] 变体SKU不重复
144
+ - [ ] 标签使用合理(3-5个)
145
+
146
+ ## 常见问题
147
+
148
+ ### ❌ 问题1:重复上传图片
149
+ **错误做法**:
150
+ ```bash
151
+ # 每个商品都上传相同的logo
152
+ for product in products; do
153
+ commerce upload image --path ./logo.jpg
154
+ commerce product create --name "$product" --media-id $NEW_ID
155
+ done
156
+ ```
157
+
158
+ **正确做法**:
159
+ ```bash
160
+ # 先上传一次,复用media_id
161
+ commerce upload image --path ./logo.jpg # 获得 media_123
162
+ for product in products; do
163
+ commerce product create --name "$product" --media-id media_123
164
+ done
165
+ ```
166
+
167
+ ### ❌ 问题2:忘记创建变体
168
+ **症状**: 多规格商品只有主商品,无法选择颜色/尺寸
169
+ **解决**: 创建主商品后,立即创建所有变体
170
+
171
+ ```bash
172
+ # 错误:只创建主商品
173
+ commerce product create --name "T恤" --price 99
174
+
175
+ # 正确:创建主商品 + 所有变体
176
+ commerce product create --name "T恤" --price 99 # 获得 prod_123
177
+ commerce variant create --product-id prod_123 --sku "TSHIRT-RED-S" ...
178
+ commerce variant create --product-id prod_123 --sku "TSHIRT-RED-M" ...
179
+ ```
180
+
181
+ ### ❌ 问题3:变体attributes不一致
182
+ **症状**: 规格筛选混乱,如"颜色"、"color"、"Color"混用
183
+ **解决**: 统一使用中文或英文,全局保持一致
184
+
185
+ ```bash
186
+ # 错误:同义词混用
187
+ --attributes '{"颜色":"红色"}'
188
+ --attributes '{"color":"蓝色"}'
189
+
190
+ # 正确:统一使用
191
+ --attributes '{"颜色":"红色"}'
192
+ --attributes '{"颜色":"蓝色"}'
193
+ ```
194
+
195
+ ### ❌ 问题4:批量更新时覆盖标签
196
+ **症状**: 更新标签时把原有标签清空
197
+ **解决**: 先查看原有标签,追加新标签
198
+
199
+ ```bash
200
+ # 错误:直接覆盖
201
+ commerce product update --id prod_123 --tags "sale" # featured标签丢失
202
+
203
+ # 正确:先查看再追加
204
+ commerce product get --id prod_123 # 查看原有标签: featured,new
205
+ commerce product update --id prod_123 --tags "featured,new,sale"
206
+ ```
207
+
208
+ ### ❌ 问题5:库存设置不准确
209
+ **症状**: 超卖或缺货
210
+ **解决**: 创建时设置真实库存,定期同步ERP数据
211
+
212
+ ```bash
213
+ # 先确认真实库存,再创建
214
+ commerce product create --name "T恤" --price 99 --stock 50 # 确保真实有50件
215
+ ```
216
+
217
+ ## 命令参考
218
+
219
+ ### 自然语言映射
220
+
221
+ 当用户说:
222
+ - "创建XX商品,价格YY" → `commerce product create --name XX --price YY`
223
+ - "创建XX商品,售价YY,原价ZZ" → `commerce product create --name XX --price YY --original-price ZZ`
224
+ - "创建促销商品,价格79,划线价99" → `commerce product create --name XX --price 79 --original-price 99`
225
+ - "上传商品图片" → `commerce upload image --path ./photo.jpg`
226
+ - "添加商品变体" → `commerce variant create --product-id XX --sku YY`
227
+ - "给变体加图片" / "变体图片" / "变体显示图片" → `commerce variant add-images --product-id XX --variant-id YY --url/--media-id`
228
+ - "把已有图片指定给变体" → `commerce variant add-images --product-id XX --variant-id YY --media-id ZZ`
229
+ - "更新商品价格" → `commerce product update --id XX --price YY`
230
+ - "设置商品原价/划线价" → `commerce product update --id XX --original-price YY`
231
+ - "给商品打标签" → `commerce product update --id XX --tags "featured,new"`
232
+ - "设置商品重量和尺寸" → `commerce product update --id XX --weight 0.5 --length 10 --width 8 --height 5`
233
+ - "库存设置为 N" → `commerce inventory set --id XX --quantity N`(加载 inventory skill)
234
+ - "查看所有商品" → `commerce product list`
235
+
236
+ ### 核心功能
237
+
238
+ **商品 CRUD**:
239
+ - `commerce product create` - 创建商品
240
+ - `commerce product list` - 查看商品列表
241
+ - `commerce product get` - 查看商品详情
242
+ - `commerce product update` - 更新商品信息
243
+ - `commerce product delete` - 删除商品
244
+
245
+ **变体/SKU 管理**:
246
+ - `commerce variant create` - 创建商品变体
247
+ - `commerce variant list` - 查看变体列表
248
+ - `commerce variant update` - 更新变体信息
249
+ - `commerce variant delete` - 删除变体
250
+ - `commerce variant add-images` - 给变体关联图片(支持 URL/本地文件/media_id)
251
+
252
+ **图片管理**:
253
+ - `commerce upload image` - 上传图片
254
+ - `commerce product add-images` - 关联图片到商品(所有变体共享)
255
+ - `commerce product remove-images` - 移除商品图片
256
+ - `commerce variant add-images` - 关联图片到特定变体(变体专属)
257
+
258
+ ## 详细示例
259
+
260
+ ### 示例1:创建单个商品
261
+ ```bash
262
+ # 用户说:"创建T恤商品,99美元,库存20"
263
+ # 描述支持 Markdown 格式
264
+ commerce product create \
265
+ --name "T恤" \
266
+ --price 99 \
267
+ --stock 20 \
268
+ --description "## 产品特点
269
+
270
+ - **材质**:100% 纯棉
271
+ - **特性**:透气舒适,不易起球
272
+ - **适合人群**:日常休闲、运动
273
+
274
+ > 机洗建议:30°C 以下冷水洗涤"
275
+ ```
276
+
277
+ ### 示例2:上传商品图片
278
+ ```bash
279
+ # 用户说:"上传商品主图"
280
+ commerce upload image --path ./tshirt-main.jpg
281
+ # 返回: { media_id: "media_123" }
282
+
283
+ # 关联到商品
284
+ commerce product add-images \
285
+ --id prod_123 \
286
+ --media-id media_123
287
+ ```
288
+
289
+ ### 示例3:创建商品变体
290
+ ```bash
291
+ # 用户说:"给商品添加红色S码的变体"
292
+ commerce variant create \
293
+ --product-id prod_123 \
294
+ --sku "TSHIRT-RED-S" \
295
+ --price 99 \
296
+ --stock 50 \
297
+ --attributes '{"颜色":"红色","尺寸":"S"}'
298
+ ```
299
+
300
+ ### 示例4:管理商品标签
301
+ ```bash
302
+ # 用户说:"把商品标记为精选和新品"
303
+ commerce product update \
304
+ --id prod_123 \
305
+ --tags "featured,new"
306
+
307
+ # 查看带特定标签的商品
308
+ commerce product list --tags "featured"
309
+ ```
310
+
311
+ ### 示例5:批量更新价格
312
+ ```bash
313
+ # 用户说:"把所有T恤价格改成89"
314
+ # 1. 先查找T恤商品
315
+ commerce product list --query "T恤"
316
+
317
+ # 2. 逐个更新
318
+ commerce product update --id prod_123 --price 89
319
+ commerce product update --id prod_456 --price 89
320
+ ```
321
+
322
+ ### 示例6:完整的多规格商品上架
323
+ ```bash
324
+ # 完整流程演示
325
+ # 1. 上传图片
326
+ commerce upload image --path ./tshirt-red.jpg # media_red
327
+ commerce upload image --path ./tshirt-blue.jpg # media_blue
328
+
329
+ # 2. 创建主商品
330
+ commerce product create --name "纯棉T恤" --price 99
331
+ # 获得 product_id: prod_123
332
+
333
+ # 3. 创建变体
334
+ commerce variant create --product-id prod_123 --sku "TSHIRT-RED-S" \
335
+ --attributes '{"颜色":"红色","尺寸":"S"}' --price 99 --stock 50
336
+
337
+ commerce variant create --product-id prod_123 --sku "TSHIRT-RED-M" \
338
+ --attributes '{"颜色":"红色","尺寸":"M"}' --price 99 --stock 30
339
+
340
+ commerce variant create --product-id prod_123 --sku "TSHIRT-BLUE-S" \
341
+ --attributes '{"颜色":"蓝色","尺寸":"S"}' --price 99 --stock 40
342
+
343
+ # 4. 关联图片
344
+ commerce product add-images --id prod_123 --media-id media_red,media_blue
345
+
346
+ # 5. 验证
347
+ commerce product get --id prod_123
348
+ ```
349
+
350
+ ### 物流属性引导(物理产品)
351
+
352
+ 创建 `requires_shipping: true` 的物理产品时:
353
+
354
+ 1. **重量**:引导卖家填写准确重量(影响所有物流报价准确性)
355
+ 2. **cargo_type**:根据产品标题/描述自动推断(默认 general),向卖家确认
356
+ - 推断方式:"根据产品信息,我推断这是普通商品,对吗?"(不要直接问"含电池吗?")
357
+ - 可选值:general(普货)、battery(带电)、liquid(液体)、cosmetic(化妆品)、clothing(服装)、powder(粉末)、wood(木制品)
358
+ - 这是通用物流属性,不需要提及任何具体物流商
359
+ 3. **brand**:引导填写品牌(可选,用于物流限制检查)
360
+ 4. 用户可跳过,但告知"会影响物流方案选择和报价准确性"
361
+ 5. 数字产品跳过整个物流属性流程
362
+
363
+ ## 重要提示
364
+
365
+ - **国际化策略** - 平台默认语言是英文(en-US)。当用户同时提供中英文内容时,用英文创建商品,中文通过 `i18n` skill 添加翻译。当用户要求"国际化"时,确保英文在主表,其他语言通过 i18n 添加。详见 i18n skill。
366
+ - **库存管理统一使用 inventory skill** - 设置目标值用 `inventory set --id XX --quantity N`,增减库存用 `inventory adjust --id XX --quantity N`。**有变体的产品不能直接设置主产品库存**(会被拒绝),必须逐个设置变体的库存。
367
+ - **商品描述支持 Markdown 格式**,可以使用标题、列表、加粗、链接等排版
368
+ - 所有命令默认 JSON 输出,便于 AI 解析
369
+ - 图片需要先上传获取 `media_id`,再关联到商品
370
+ - 变体的 `attributes` 使用 JSON 格式
371
+ - 标签使用逗号分隔的字符串
372
+ - 支持的图片格式:JPG, PNG, WebP(最大 10MB)
373
+ - 使用 `--help` 查看命令详细参数
374
+ - 删除商品会同时删除所有变体和图片关联
375
+ - 价格单位默认为美元(USD),可通过后台配置修改
376
+ - **重量单位:kg**(如 0.5 表示 500g)
377
+ - **尺寸单位:cm**(length/width/height)
378
+ - 集合 slug 必须唯一,用于 URL,使用英文和连字符
379
+ - 集合封面支持三种方式:`--media-id`(推荐)、`--url`、`--path`