8.5 KiB
8.5 KiB
name, description
| name | description |
|---|---|
| sku-cost-profit-auditor | 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),内容为配件价格表:
# 产品信息
| 字段 | 配件名称 | 价格 |
|------|---------|------|
| **产品编号** | - | - |
| **产品名称** | 飞牛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 识别
- 扫描
产品\<产品线>\订单\下所有图片(若为空,跳至阶段 5) - 对每张图片调用
ocr-extract技能识别文字 - 从识别结果提取:SKU 型号 与 售价(注意区分型号变体,如内存/系统盘差异)
- 按型号聚合订单(记录销量与最新售价)
- 若识别结果模糊或有歧义,暂停并向用户确认,不得自行猜测
阶段 2:SKU 存在性检查
对每个识别出的型号:
- 在
产品\<产品线>\skus\中查找<型号>.md - 已存在 → 进入阶段 4
- 不存在 → 进入阶段 3
阶段 3:新增 SKU
- 在
产品\<产品线>\归档\下递归查找同名<型号>.md - 若归档有:复制该文件到
skus\,作为初始版本;复制完成后删除归档目录中的该 SKU 文件,避免归档与现行 SKU 重复 - 若归档没有:调用
sku-designer技能,参考归档中同子产品线相似配置生成新 SKU md 文件,写入skus\ - 新增的 SKU 暂用订单售价作为建议零售价,成本先按归档/相似配置估算,待阶段 5 采购单修正
阶段 4:核对配件与成本
- 调用
sku-designer技能核对skus\<型号>.md的配件清单是否完整、规格是否匹配 - 总成本 = 各配件价格之和(含运费/包装费/装机费等固定项)
- 校验文件中
总成本字段与各配件之和是否一致,不一致则纠正
阶段 5:采购单处理(若 采购单\ 非空)
- 扫描
产品\<产品线>\采购单\下所有图片/文件 - 调用
ocr-extract识别采购单内容 - 提取:配件名称、规格、单价、(数量)
- 建立「配件规格 → 最新单价」映射
- 遍历
skus\下所有 SKU md,对涉及涨/降价的配件更新单价 - 重新计算每个受影响 SKU 的
总成本 - 识别模糊时同样暂停向用户确认
阶段 6:利润纠正、销量累计与利润分级
对 skus\ 下每个 SKU:
- 利润 = 售价 − 总成本
- 售价取值优先级:① 本次订单识别的售价 ② 原文件
建议零售价 - 若订单中出现了新售价(调价),用新售价覆盖
建议零售价,并同步重算利润
累计销量维护规则:
- 对本次订单识别到的每个 SKU:销量 += 本次订单中该 SKU 的成交数量(一般 1)
- 未在本次订单中出现的 SKU:销量保持不变
- 新增 SKU:销量初始化为本次订单数量
- 销量是累计值,跨批次永久保留,不清零
利润等级分类规则(按单件利润金额):
| 等级 | 利润区间 | 说明 |
|---|---|---|
| 一级 | < 50 元 | 低利润,建议提价或控制成本 |
| 二级 | 50 - 100 元 | 正常利润 |
| 三级 | 100 - 200 元 | 高利润 |
| 四级 | ≥ 200 元 | 超高利润 |
- 每次更新价格表时,根据「利润」列自动计算「等级」列
- 利润变动后等级随之调整(如降价导致利润跌破 50 元,从二级降为一级)
- 合计行额外注明各等级 SKU 数量分布
价格表.md 表头(聚焦价格 + 销量 + 等级):
| 序号 | 产品型号 | 成本 | 售价 | 利润 | 销量 | 等级 |
- 同步更新对应行(成本、售价、利润、销量、等级)
- 合计行注明累计销量总和 + 各等级分布
- 排序规则:按利润等级升序排列(一级 → 二级 → 三级 → 四级),同级内按利润升序,让低利润 SKU 排在前面方便关注
阶段 7:清理已处理输入
- 全部 SKU 更新并经用户确认后,清空
订单\目录中的图片 - 清空
采购单\目录中的图片 - 防止下次重复处理(用户后续放入新数据即触发新一轮)
阶段 8:订单利润综合记录
对本次订单做利润汇总并持久化记录,形成订单级利润台账:
- 对本次订单识别到的每个 SKU:按
利润 = 售价 − 总成本计算单件利润,再按销量计算该 SKU 的订单利润(单件利润 × 本次销量) - 汇总本批订单的总利润(所有 SKU 订单利润之和)
- 将订单利润综合记录写入
产品\<产品线>\订单利润记录.md,字段含:日期、各 SKU 售价/成本/单件利润/销量/订单利润、本批总利润;若文件已存在,按日期追加本批记录 - 输出时向用户展示本次订单的利润汇总:本批总利润 + 各 SKU 明细(型号、售价、成本、单件利润、销量、订单利润)
利润计算公式
总成本 = Σ(配件单价) + 运费 + 包装费 + 装机费 + 其他固定项
利润 = 售价 − 总成本
累计销量 = 历史销量 + 本次订单数量
订单利润 = 单件利润 × 本次销量
本批总利润 = Σ(各 SKU 订单利润)
定价策略(参考)
各产品线 价格表.md 顶部会注明定价策略(如「1037U成本+30元,J1900成本+50元」)。纠正售价时优先遵循该策略;若订单实际售价偏离策略价,以订单实际售价为准并提示用户复核策略。
注意事项
- 只处理非空输入目录:
订单\、采购单\任一为空则对应阶段跳过 - 新增 SKU 必须参考归档:保持命名、配件项、表格风格一致
- 配件价以最新采购单为准:旧价覆盖、不累加
- OCR 不确定时必须确认:不得凭猜测写入 SKU 或价格
- 清理前需用户确认:阶段 7 清空目录前,输出本次变更摘要让用户确认
- 每次处理输出变更摘要:新增了哪些 SKU、更新了哪些配件价、纠正了哪些利润