新增sku-cost-profit-auditor技能动态维护SKU成本利润,优化ocr-extract增强模式与sku-designer序号模板,清理归档重复SKU,修正双盘位电源96W转60W,新增飞牛NAS 7款当前SKU
This commit is contained in:
160
.trae/skills/sku-cost-profit-auditor/SKILL.md
Normal file
160
.trae/skills/sku-cost-profit-auditor/SKILL.md
Normal file
@@ -0,0 +1,160 @@
|
||||
---
|
||||
name: "sku-cost-profit-auditor"
|
||||
description: "Audits and corrects cost and profit data for SKUs in the membank product catalog. Invoke when user asks to check, reconcile, verify, or fix SKU cost/profit figures, or when cost errors (e.g., total cost mismatches) are suspected."
|
||||
---
|
||||
|
||||
# SKU Cost Profit Auditor
|
||||
|
||||
基于每日订单截图与配件采购单,动态维护 SKU 的成本与利润。通过 OCR 识别订单售价、采购单配件价,自动新增缺失 SKU、纠正成本与利润,实现 SKU 主数据的动态闭环维护。
|
||||
|
||||
## 触发场景
|
||||
|
||||
- 用户把当日订单截图放入 `产品\<产品线>\订单\` 后要求处理
|
||||
- 用户把最新配件采购单放入 `产品\<产品线>\采购单\` 后要求更新成本
|
||||
- 用户要求核对/纠正某个 SKU 的成本或利润
|
||||
- 怀疑 SKU 总成本、利润计算有误(如配件涨价后未同步)
|
||||
|
||||
## 工作目录约定
|
||||
|
||||
针对某条产品线(如 `飞牛 NAS`),工作区结构如下。若 `订单\` `skus\` `采购单\` 不存在,执行前自动创建:
|
||||
|
||||
```
|
||||
产品\<产品线>\
|
||||
├── 订单\ # 输入:当日订单截图(处理后清空)
|
||||
├── 采购单\ # 输入:最新配件采购单截图(处理后清空)
|
||||
├── skus\ # 主数据:当前生效的 SKU md 文件 + 价格表.md
|
||||
└── 归档\ # 参考:历史/全部产品线 SKU,新增 SKU 时参考其格式与配置
|
||||
├── <子产品线>\
|
||||
│ ├── sku\<型号>.md
|
||||
│ └── 价格表.md
|
||||
└── ...
|
||||
```
|
||||
|
||||
> 默认产品线为 `飞牛 NAS`。若用户未指定,默认操作该产品线。
|
||||
|
||||
## SKU 文件格式(必须遵守)
|
||||
|
||||
每个 SKU 是一个 md 文件,文件名即型号(如 `3.5金大-双-1037U-4G-128G.md`),内容为配件价格表:
|
||||
|
||||
```markdown
|
||||
# 产品信息
|
||||
|
||||
| 字段 | 配件名称 | 价格 |
|
||||
|------|---------|------|
|
||||
| **产品编号** | - | - |
|
||||
| **产品名称** | 飞牛NAS 3.5金属大 双盘位 1037U | - |
|
||||
| **产品型号** | 3.5金大-双-1037U-4G-128G | - |
|
||||
| **用途分类** | NAS | - |
|
||||
| **CPU** | 1037U | ¥50 |
|
||||
| **内存** | D3-4G | ¥18 |
|
||||
| **系统盘** | mSATA-128G | ¥68 |
|
||||
| **机箱** | 金属机箱3.5寸大 | ¥68 |
|
||||
| **电源** | 电源-96W | ¥18.5 |
|
||||
| **硬盘线** | 硬盘线-双 | ¥5 |
|
||||
| **电池** | 电池 | ¥1 |
|
||||
| **网线** | 网线 | ¥1 |
|
||||
| **运费** | 运费 | ¥10 |
|
||||
| **包装费** | 包装费 | ¥5 |
|
||||
| **装机费** | 装机费 | ¥10 |
|
||||
| **总成本** | - | ¥254.5 |
|
||||
| **建议零售价** | - | ¥285 |
|
||||
| **备注** | 3.5金属大,双盘位,双SATA口 | - |
|
||||
```
|
||||
|
||||
`价格表.md` 汇总当前 `skus\` 下所有 SKU,表头:`序号 | 产品型号 | 成本 | 售价 | 利润 | 利润率 | 备注`,顶部注明定价策略。
|
||||
|
||||
## 命名规则
|
||||
|
||||
SKU 型号格式:`{机箱}-{盘位}-{CPU}-{内存}-{系统盘}`
|
||||
- 例:`3.5金大-双-1037U-4G-128G`、`亚克力-单-i5-3代-8G-128G`
|
||||
|
||||
新增 SKU 时严格沿用同子产品线归档中的命名风格。
|
||||
|
||||
## 工作流
|
||||
|
||||
### 阶段 1:订单 OCR 识别
|
||||
|
||||
1. 扫描 `产品\<产品线>\订单\` 下所有图片(若为空,跳至阶段 5)
|
||||
2. 对每张图片调用 `ocr-extract` 技能识别文字
|
||||
3. 从识别结果提取:**SKU 型号** 与 **售价**(注意区分型号变体,如内存/系统盘差异)
|
||||
4. 按型号聚合订单(记录销量与最新售价)
|
||||
5. 若识别结果模糊或有歧义,**暂停并向用户确认**,不得自行猜测
|
||||
|
||||
### 阶段 2:SKU 存在性检查
|
||||
|
||||
对每个识别出的型号:
|
||||
1. 在 `产品\<产品线>\skus\` 中查找 `<型号>.md`
|
||||
2. 已存在 → 进入阶段 4
|
||||
3. 不存在 → 进入阶段 3
|
||||
|
||||
### 阶段 3:新增 SKU
|
||||
|
||||
1. 在 `产品\<产品线>\归档\` 下递归查找同名 `<型号>.md`
|
||||
2. **若归档有**:复制该文件到 `skus\`,作为初始版本
|
||||
3. **若归档没有**:调用 `sku-designer` 技能,参考归档中同子产品线相似配置生成新 SKU md 文件,写入 `skus\`
|
||||
4. 新增的 SKU 暂用订单售价作为建议零售价,成本先按归档/相似配置估算,待阶段 5 采购单修正
|
||||
|
||||
### 阶段 4:核对配件与成本
|
||||
|
||||
1. 调用 `sku-designer` 技能核对 `skus\<型号>.md` 的配件清单是否完整、规格是否匹配
|
||||
2. 总成本 = 各配件价格之和(含运费/包装费/装机费等固定项)
|
||||
3. 校验文件中 `总成本` 字段与各配件之和是否一致,不一致则纠正
|
||||
|
||||
### 阶段 5:采购单处理(若 `采购单\` 非空)
|
||||
|
||||
1. 扫描 `产品\<产品线>\采购单\` 下所有图片/文件
|
||||
2. 调用 `ocr-extract` 识别采购单内容
|
||||
3. 提取:**配件名称**、**规格**、**单价**、(数量)
|
||||
4. 建立「配件规格 → 最新单价」映射
|
||||
5. 遍历 `skus\` 下所有 SKU md,对涉及涨/降价的配件更新单价
|
||||
6. 重新计算每个受影响 SKU 的 `总成本`
|
||||
7. 识别模糊时同样暂停向用户确认
|
||||
|
||||
### 阶段 6:利润纠正与销量累计
|
||||
|
||||
对 `skus\` 下每个 SKU:
|
||||
- **利润 = 售价 − 总成本**
|
||||
- 售价取值优先级:① 本次订单识别的售价 ② 原文件 `建议零售价`
|
||||
- 若订单中出现了新售价(调价),用新售价覆盖 `建议零售价`,并同步重算利润
|
||||
|
||||
**累计销量维护规则:**
|
||||
- 对本次订单识别到的每个 SKU:销量 += 本次订单中该 SKU 的成交数量(一般 1)
|
||||
- 未在本次订单中出现的 SKU:销量保持不变
|
||||
- 新增 SKU:销量初始化为本次订单数量
|
||||
- 销量是累计值,跨批次永久保留,不清零
|
||||
|
||||
**`价格表.md` 表头(聚焦价格 + 销量):**
|
||||
|
||||
```
|
||||
| 序号 | 产品型号 | 成本 | 售价 | 利润 | 销量 |
|
||||
```
|
||||
|
||||
- 同步更新对应行(成本、售价、利润、销量)
|
||||
- 合计行注明累计销量总和
|
||||
|
||||
### 阶段 7:清理已处理输入
|
||||
|
||||
1. 全部 SKU 更新并经用户确认后,**清空** `订单\` 目录中的图片
|
||||
2. **清空** `采购单\` 目录中的图片
|
||||
3. 防止下次重复处理(用户后续放入新数据即触发新一轮)
|
||||
|
||||
## 利润计算公式
|
||||
|
||||
```
|
||||
总成本 = Σ(配件单价) + 运费 + 包装费 + 装机费 + 其他固定项
|
||||
利润 = 售价 − 总成本
|
||||
累计销量 = 历史销量 + 本次订单数量
|
||||
```
|
||||
|
||||
## 定价策略(参考)
|
||||
|
||||
各产品线 `价格表.md` 顶部会注明定价策略(如「1037U成本+30元,J1900成本+50元」)。纠正售价时优先遵循该策略;若订单实际售价偏离策略价,以**订单实际售价**为准并提示用户复核策略。
|
||||
|
||||
## 注意事项
|
||||
|
||||
- **只处理非空输入目录**:`订单\`、`采购单\` 任一为空则对应阶段跳过
|
||||
- **新增 SKU 必须参考归档**:保持命名、配件项、表格风格一致
|
||||
- **配件价以最新采购单为准**:旧价覆盖、不累加
|
||||
- **OCR 不确定时必须确认**:不得凭猜测写入 SKU 或价格
|
||||
- **清理前需用户确认**:阶段 7 清空目录前,输出本次变更摘要让用户确认
|
||||
- **每次处理输出变更摘要**:新增了哪些 SKU、更新了哪些配件价、纠正了哪些利润
|
||||
Reference in New Issue
Block a user