community-group-buying-supply-chain

社区团购供应链与采购管理全链路技能包。涵盖供应商开发、资质审核、评分卡、采购谈判、仓储管理、配送履约及配套工具。适用于平台采购负责人、供应链管理者。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "community-group-buying-supply-chain" with this command: npx skills add nic-yuan/local-community-buying-04-supply-chain

模块四:供应链与采购

模块边界说明 本模块聚焦"货从哪来",即供应商开发、采购谈判、仓储管理、物流配送。 选品决策 → 模块一(选品策略) 团长运营 → 模块二(团长运营) 获客留存 → 模块三(获客与留存) 营销促销 → 模块六(营销与促销) 各模块边界独立,不重叠。


知识库

4.1 供应链在社区团购中的核心地位

社区团购的竞争,本质是供应链的竞争:

  美团优选 → 美团配送体系支撑
  多多买菜 → 拼多多农产品供应链支撑
  兴盛优选 → 湖南本地供应链支撑

没有供应链优势,一切获客/运营手段都是空中楼阁。

供应链三大核心指标:
  1. 成本:进价 vs 市场价,差距越大利润空间越大
  2. 稳定:能不能持续供货,断货是最大风险
  3. 品质:货质量稳定,不出食品安全事故

4.2 供应商分级体系

供应商按贡献和稳定性分为四级,每级有明确量化指标:

供应商分级量化标准:

┌─────────────────────────────────────────────────────────────────────────────┐
│  级别    占比      月供货额      准时率      损耗率      账期      管理      │
│ ─────────────────────────────────────────────────────────────────────       │
│  S级    5-10%    ≥ ¥100万     ≥ 98%      ≤ 5%       T+14     月度战略会  │
│  A级    15-20%   ¥30-100万    ≥ 95%      ≤ 8%       T+7      季度Review  │
│  B级    50-60%   ¥5-30万      ≥ 90%      ≤ 12%      单次结   月度数据审 │
│  C级    10-15%   < ¥5万       ≥ 85%      ≤ 15%      现结     单次评估   │
└─────────────────────────────────────────────────────────────────────────────┘

---

S级:战略供应商
  → 占比:5-10%(每品类保留1-2个)
  → 核心指标:月供货额 ≥ ¥100万,准时率 ≥ 98%,损耗率 ≤ 5%
  → 特征:独家合作/产地直采/品牌联名,有行业稀缺性
  → 待遇:账期优先(T+14)/ 专人对接 / 联合营销基金
  → 管理:月度战略会议,共同制定季度销售计划,优先新品首发

A级:核心供应商
  → 占比:15-20%
  → 核心指标:月供货额 ¥30-100万,准时率 ≥ 95%,损耗率 ≤ 8%
  → 特征:稳定供货 / 质量合格 / 价格有竞争优势
  → 待遇:账期正常(T+7)/ 标准对接 / 营销资源倾斜
  → 管理:季度 Review,S/A级供应商占比目标 20-30%,末尾10%降级或淘汰

B级:常规供应商
  → 占比:50-60%(平台主力层)
  → 核心指标:月供货额 ¥5-30万,准时率 ≥ 90%,损耗率 ≤ 12%
  → 特征:按需供货 / 配合度高 / 品类常见
  → 待遇:单次结算 / 平台规则统一约束
  → 管理:月度数据Review,连续2个季度不达标降为C级

C级:应急供应商
  → 占比:10-15%
  → 核心指标:月供货额 < ¥5万,准时率 ≥ 85%,损耗率 ≤ 15%
  → 特征:临时补货 / 季节性商品 / 新品测试供应商
  → 待遇:现结(无账期)/ 无优先权
  → 管理:单次合作评估,试销通过可升级B级

---

升级路径:
  C级 → B级:连续2个季度月供货额 ≥ ¥5万 + 准时率 ≥ 90% → 自动升级
  B级 → A级:年供货额累计 ≥ ¥300万 + 准时率 ≥ 95% + 损耗率 ≤ 8% → 采购决策会评审
  A级 → S级:年供货额累计 ≥ ¥1000万 + 战略价值评估 → 高管战略会审定

4.3 采购定价策略

采购定价三角:

        供货价
        (供应商)
           △
           │
     市场价 ─┴─ 账期

理想状态:供货价 < 市场价 30% + 账期 ≥ T+7

---

定价策略(三种):

策略1:源头直采(成本最低)
  → 产地合作社/工厂直接谈,跳过中间商
  → 适合:大宗农产品(蔬菜/水果/肉类)
  → 成本优势:15-40%

策略2:产地批发(成本适中)
  → 产地批发市场集中采购
  → 适合:季节性商品(粽子/月饼/年货)
  → 成本优势:10-25%

策略3:品牌经销商(成本较高)
  → 通过区域经销商拿货
  → 适合:标品(饮料/零食/日用品)
  → 成本优势:5-15%,但品质稳定

定价策略场景化应用

品类推荐策略核心要点议价优先级
大宗农产品(叶菜/茄果)源头直采锁定合作社,签长期框架协议供货价 > 账期
季节性农产品(草莓/樱桃)产地批发提前锁货,分批交货降低风险损耗责任 > 价格
品牌标品(饮料/方便面)品牌经销商拿区域独家,经销商返点谈返利账期 + 返点
白牌标品(纸巾/日化)1688工厂按单采购,MOQ从低开始测试价格 > MOQ
进口商品口岸进口商批量采购谈折扣,账期45天内资金占用成本

各平台账期参考

平台账期说明
美团优选T+7 至 T+14账期最长,但规则严,罚款多
多多买菜T+5 至 T+10账期短,供应商需谨慎让利
兴盛优选T+7账期稳定,供应商信任度高,愿意让利 8-12%
淘菜菜T+7 至 T+10中等账期,考核准时交货率

4.4 供应商议价技巧

供应商谈判三步法:

第一步:摸底(不先开口)
  → 让供应商先报价,摸清对方底价
  → 了解供应商当前库存积压情况(急于出货 = 可压价)
  → 询问其他平台合作价格(货比三家)

第二步:压价(有理有据)
  → 出示竞品报价(最低价参考)
  → 承诺采购量换取折扣(量换价原则)
  → 账期换价格:接受更短账期 → 换取更低供货价
    例:T+14 → T+7,价格可降 2-3%

第三步:锁定(落袋为安)
  → 合同写明价格有效期(避免随行就市涨价)
  → 谈最惠客户条款:若给其他平台更低价格,需同步给本平台
  → 谈保底采购量:若承诺月销10万,供应商需给最优惠价格

压价目标参考(vs 市场价):
  农产品源头直采:25-40%
  农产品批发:15-25%
  白牌标品:15-20%
  品牌标品:5-12%
  账期压缩换价:每压缩7天,价格可降1-2%

4.5 各平台供应链对比

美团优选

供应链模式:平台主导型
核心特点:
  → 平台统一采购,供应商只管送货到仓
  → 自有配送体系(美团配送)降低物流成本
  → 供应商话语权弱,平台规则严

供应商结构:
  → 全国性供应商:占 60%(统一采购)
  → 区域性供应商:占 30%(区域补货)
  → 独家供应商:占 10%(差异化商品)

账期:T+7 至 T+14(行业较长)
核心优势:配送体系成熟,损耗率低(5-7%)

多多买菜

供应链模式:农产品上行型
核心特点:
  → 聚焦农产品,产地直采比例高(40%+)
  → 供应商门槛低,白牌供应商为主
  → 平台规模大,议价能力强

供应商结构:
  → 产地合作社:占 40%(农产品)
  → 白牌工厂:占 35%(标品)
  → 品牌商:占 25%(少量)

账期:T+5 至 T+10(相对较短)
核心优势:农产品价格极低,但损耗率偏高(7-10%)

兴盛优选

供应链模式:区域深耕型
核心特点:
  → 供应商本地化,减少长途运输
  → 区域小型工厂/合作社为主
  → 供应链稳定,不受全国波动影响

供应商结构:
  → 本地供应商:占 65%(本地小型工厂/合作社)
  → 区域品牌商:占 25%
  → 全国供应商:占 10%(补充品)

账期:T+7(稳定,供应商信任度高)
核心优势:损耗率最低(4-6%),供应链本地化

方法论

4.6 供应商开发 SOP

供应商开发五步法:

Step 1:源头锁定
  ┌─────────────────────────────────────────────┐
  │  品类          优先渠道                       │
  │  ─────────────────────────────────          │
  │  农产品        一亩田 / 惠农网 / 产地合作社    │
  │  食品标品      1688工厂店 / 糖酒会 / 中食展   │
  │  品牌商品      区域经销商 / 品牌方直接对接      │
  │  进口商品      口岸进口商 / 跨境供应链          │
  └─────────────────────────────────────────────┘

Step 2:资质审核(必须全部通过)

  必要资质(缺一不可):
  ├── 营业执照(有效期内)
  ├── 食品经营许可证(预包装/散装/生产许可证)
  ├── 产品检测报告(近3个月内,批批检测)
  ├── 商标注册证或授权书(品牌商品必须)
  └── 法人身份证

  加分资质:
  ├── ISO 9001(质量管理)
  ├── ISO 22000(食品安全管理)
  ├── 绿色/有机食品认证
  └── 出口食品备案

  ⚠️ 注意:资质造假 = 直接永久黑名单,报警处理

Step 3:样品测试
  → 要求提供 3-5 件样品
  → 评估维度:
  │   外观(颜色/大小/完整度)
  │   口感(生鲜必须试吃)
  │   包装(是否适合配送/保质期)
  │   性价比( vs 市场同类品)

Step 4:商务谈判
  核心条款:
  ├── 进价:目标低于市场价 20%+
  ├── 账期:目标 T+7 以上
  ├── MOQ:最低起订量,越低越好
  ├── 退换货:滞销品/尾货处理机制
  ├── 营销分摊:爆品推广费用谁出
  └── 独家:差异化商品是否愿意独家

Step 5:合同签署
  合同必须包含:
  ├── 商品清单 + 价格表(有效期明确)
  ├── 质量标准(外观/口感/包装/检测要求)
  ├── 交货地点/时间/验收标准
  ├── 付款账期和方式
  ├── 质量保证 + 违约金条款
  ├── 退换货处理流程
  └── 违约责任界定

  合同有效期:通常 3-6 个月,到期重新谈判

4.7 供应商评分卡(正式版)

供应商评估五维度(总分100分):

维度权重评估要点
价格竞争力25%进价 vs 市场价、MOQ灵活度、账期接受度
质量稳定性25%来料合格率、抽检通过率、资质齐全度
交货能力20%准时交货率、交货速度、缺货处理
服务配合15%响应速度、投诉处理、退换货配合
合作意愿15%配合积极性、营销支持、独家合作可能

评级标准:

评级总分区间管理策略
S≥ 90战略合作,优先供货,专人对接
A80-89核心合作,标准管理,季度Review
B70-79常规合作,月度数据Review
C60-69观察合作,连续2个C则降级或淘汰
D< 60淘汰,6个月内不合作

4.8 仓储管理体系

仓储模式选择:

中心仓模式(CDC):
  → 全国/区域设大仓,供应商送货到大仓
  → 平台负责分拣 → 网格仓 → 团长自提点
  优点:规模化成本低,适合标准化商品
  缺点:层级多,损耗和时效难控

前置仓模式(PC):
  → 大仓分拨到各社区前置仓
  → 覆盖 3-5 公里范围,当日达
  优点:时效快,用户体验好
  缺点:成本高,需要密集覆盖

店仓一体:
  → 团长店面既是销售点又是仓储点
  → 用户下单 → 团长从店内取货
  优点:零额外仓储成本,适合小社区
  缺点:品类受限,库存有限

各平台仓储模式:
  美团优选:中心仓 + 网格仓(2级),次日达
  多多买菜:中心仓直发(1级),次日达
  兴盛优选:区域仓 + 自提点(2级),部分当日达
  淘菜菜:中心仓 + 前置仓(2级),当日达为主

仓储损耗控制

损耗控制关键节点:

节点1:入库验收(减少 2-3% 损耗)
  → 抽检比例:批次 > 100件抽 10%,< 100件抽 5%
  → 外观不合格品当场退换,不入库

节点2:分拣包装(减少 1-2% 损耗)
  → 分拣人员培训标准化,减少人为损耗
  → 包装材料:抗压纸箱 + 保鲜膜(生鲜)

节点3:在库管理(减少 1-2% 损耗)
  → 遵循"先进先出"原则
  → 临期品:提前 3 天预警,优先推送销售
  → 温控:生鲜冷藏 0-4℃,冻品 <-18℃

节点4:出库配送(减少 1-2% 损耗)
  → 配送路径优化,减少搬运次数
  → 到团长时间:生鲜 < 24小时,标品 < 48小时

行业损耗率参考:
  蔬菜品类:5-8%(优秀) / 8-12%(一般)
  水果品类:3-6%(优秀) / 6-10%(一般)
  肉禽水产:2-5%(优秀) / 5-8%(一般)
  标品(包装食品):<1%

工具集

Tool 1: 供应商评分卡(完整版)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
供应商评分卡(完整版)
五维度评估:价格竞争力 / 质量稳定性 / 交货能力 / 服务配合 / 合作意愿
输出:S/A/B/C/D 五级评级 + 改进建议 + 历史评分追踪
"""

from dataclasses import dataclass, field
from typing import List, Dict
import json
from datetime import datetime


@dataclass
class SupplierEvaluation:
    """供应商评估数据"""
    name: str
    category: str  # 品类

    # 价格竞争力(25分)
    price_advantage: float = 0.0    # 相对市场价优势 0-10
    moq_flexibility: float = 0.0    # MOQ灵活度 0-5
    payment_terms: float = 0.0      # 账期接受度 0-10

    # 质量稳定性(25分)
    quality_consistency: float = 0.0  # 来料合格率 0-10
    inspection_pass_rate: float = 0.0  # 抽检通过率 0-10
    cert_completeness: float = 0.0  # 资质齐全度 0-5

    # 交货能力(20分)
    on_time_delivery: float = 0.0  # 准时交货率 0-10
    delivery_speed: float = 0.0    # 交货速度 0-5
    shortage_handling: float = 0.0  # 缺货处理 0-5

    # 服务配合(15分)
    response_speed: float = 0.0    # 响应速度 0-5
    complaint_handling: float = 0.0  # 投诉处理 0-5
    return_cooperation: float = 0.0  # 退换货配合 0-5

    # 合作意愿(15分)
    cooperation_enthusiasm: float = 0.0  # 配合积极性 0-5
    marketing_support: float = 0.0   # 营销支持 0-5
    exclusivity_potential: float = 0.0  # 独家合作潜力 0-5

    # 历史记录
    history: List[Dict] = field(default_factory=list)

    def calculate_scores(self) -> Dict:
        """计算各维度得分和总分"""
        price_score = (
            (self.price_advantage / 10) * 15 +
            (self.moq_flexibility / 5) * 5 +
            (self.payment_terms / 10) * 5
        )

        quality_score = (
            self.quality_consistency * 2.5 +
            self.inspection_pass_rate * 1.0 +
            self.cert_completeness * 1.0
        )

        delivery_score = (
            self.on_time_delivery * 2.0 +
            self.delivery_speed * 1.0 +
            self.shortage_handling * 1.0
        )

        service_score = (
            self.response_speed * 1.0 +
            self.complaint_handling * 1.0 +
            self.return_cooperation * 1.0
        )

        willingness_score = (
            self.cooperation_enthusiasm * 1.0 +
            self.marketing_support * 1.0 +
            self.exclusivity_potential * 1.0
        )

        total = price_score + quality_score + delivery_score + service_score + willingness_score

        return {
            "价格竞争力(25分)": round(price_score, 1),
            "质量稳定性(25分)": round(quality_score, 1),
            "交货能力(20分)": round(delivery_score, 1),
            "服务配合(15分)": round(service_score, 1),
            "合作意愿(15分)": round(willingness_score, 1),
            "总分(100分)": round(total, 1),
        }

    def get_grade(self) -> str:
        """评级"""
        scores = self.calculate_scores()
        total = scores["总分(100分)"]
        if total >= 90:
            return "S"
        elif total >= 80:
            return "A"
        elif total >= 70:
            return "B"
        elif total >= 60:
            return "C"
        else:
            return "D"

    def get_improvement_suggestions(self) -> List[str]:
        """生成改进建议"""
        suggestions = []
        checks = [
            ("价格竞争力", self.price_advantage, 10, "价格优势"),
            ("MOQ灵活度", self.moq_flexibility, 5, "MOQ"),
            ("账期接受度", self.payment_terms, 10, "账期"),
            ("质量稳定性", self.quality_consistency, 10, "质量"),
            ("来料合格率", self.inspection_pass_rate, 10, "合格率"),
            ("资质齐全度", self.cert_completeness, 5, "资质"),
            ("准时交货率", self.on_time_delivery, 10, "交货"),
            ("交货速度", self.delivery_speed, 5, "速度"),
            ("缺货处理", self.shortage_handling, 5, "缺货"),
            ("响应速度", self.response_speed, 5, "响应"),
            ("投诉处理", self.complaint_handling, 5, "投诉"),
            ("退换货配合", self.return_cooperation, 5, "退换"),
            ("配合积极性", self.cooperation_enthusiasm, 5, "积极性"),
            ("营销支持", self.marketing_support, 5, "营销"),
            ("独家合作潜力", self.exclusivity_potential, 5, "独家"),
        ]

        for name, score, max_score, label in checks:
            pct = score / max_score
            if pct < 0.5:
                suggestions.append(f"[WARNING] {name}:{score}/{max_score},需重点改进(<50%)")
            elif pct >= 0.9:
                suggestions.append(f"[OK] {name}:{score}/{max_score},优秀(>90%)")

        return suggestions

    def to_dict(self, include_suggestions: bool = True) -> Dict:
        scores = self.calculate_scores()
        result = {
            "供应商名称": self.name,
            "品类": self.category,
            "评级": self.get_grade(),
            "总分": f"{scores['总分(100分)']}/100",
            "维度得分": {
                k: f"{v}/权重满分"
                for k, v in scores.items()
            },
            "详细得分": {
                "价格竞争力(25分)": scores["价格竞争力(25分)"],
                "质量稳定性(25分)": scores["质量稳定性(25分)"],
                "交货能力(20分)": scores["交货能力(20分)"],
                "服务配合(15分)": scores["服务配合(15分)"],
                "合作意愿(15分)": scores["合作意愿(15分)"],
            },
        }
        if include_suggestions:
            result["改进建议"] = self.get_improvement_suggestions()
        return result


def compare_suppliers(suppliers: List[SupplierEvaluation]) -> List[Dict]:
    """供应商横向对比排序"""
    results = []
    for s in suppliers:
        d = s.to_dict(include_suggestions=False)
        d["总分数值"] = float(d["总分"].split("/")[0])
        d["评级"] = s.get_grade()
        results.append(d)

    results.sort(key=lambda x: x["总分数值"], reverse=True)

    for i, r in enumerate(results):
        r["排名"] = i + 1
        r.pop("总分数值", None)

    return results


def run():
    print("=" * 60)
    print("供应商评分卡")
    print("=" * 60)

    name = input("供应商名称:").strip() or "测试供应商"
    category = input("品类:").strip() or "时令水果"

    print("\n--- 价格竞争力(25分)---")
    try:
        pa = float(input("  价格优势(0-10):").strip() or "7")
    except ValueError:
        pa = 7
    try:
        moq = float(input("  MOQ灵活度(0-5):").strip() or "3")
    except ValueError:
        moq = 3
    try:
        pt = float(input("  账期接受度(0-10):").strip() or "6")
    except ValueError:
        pt = 6

    print("\n--- 质量稳定性(25分)---")
    try:
        qc = float(input("  质量稳定性(0-10):").strip() or "8")
    except ValueError:
        qc = 8
    try:
        ip = float(input("  来料合格率(0-10):").strip() or "8")
    except ValueError:
        ip = 8
    try:
        cc = float(input("  资质齐全度(0-5):").strip() or "4")
    except ValueError:
        cc = 4

    print("\n--- 交货能力(20分)---")
    try:
        otd = float(input("  准时交货率(0-10):").strip() or "8")
    except ValueError:
        otd = 8
    try:
        ds = float(input("  交货速度(0-5):").strip() or "4")
    except ValueError:
        ds = 4
    try:
        sh = float(input("  缺货处理(0-5):").strip() or "3")
    except ValueError:
        sh = 3

    print("\n--- 服务配合(15分)---")
    try:
        rs = float(input("  响应速度(0-5):").strip() or "4")
    except ValueError:
        rs = 4
    try:
        ch = float(input("  投诉处理(0-5):").strip() or "3")
    except ValueError:
        ch = 3
    try:
        rc = float(input("  退换货配合(0-5):").strip() or "3")
    except ValueError:
        rc = 3

    print("\n--- 合作意愿(15分)---")
    try:
        ce = float(input("  配合积极性(0-5):").strip() or "4")
    except ValueError:
        ce = 4
    try:
        ms = float(input("  营销支持(0-5):").strip() or "2")
    except ValueError:
        ms = 2
    try:
        ep = float(input("  独家合作潜力(0-5):").strip() or "3")
    except ValueError:
        ep = 3

    supplier = SupplierEvaluation(
        name=name,
        category=category,
        price_advantage=pa,
        moq_flexibility=moq,
        payment_terms=pt,
        quality_consistency=qc,
        inspection_pass_rate=ip,
        cert_completeness=cc,
        on_time_delivery=otd,
        delivery_speed=ds,
        shortage_handling=sh,
        response_speed=rs,
        complaint_handling=ch,
        return_cooperation=rc,
        cooperation_enthusiasm=ce,
        marketing_support=ms,
        exclusivity_potential=ep,
    )

    result = supplier.to_dict()

    print(f"\n{'='*60}")
    print(f"【{result['供应商名称']}】({result['品类']})")
    print(f"评级:{result['评级']}   总分:{result['总分']}")
    print(f"\n各维度得分:")
    for k, v in result["详细得分"].items():
        print(f"  {k}:{v}")

    print(f"\n改进建议:")
    for s in result["改进建议"]:
        print(f"  {s}")


if __name__ == "__main__":
    run()

Tool 2: 采购成本计算器

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
采购成本计算器
输入:供应商报价 + 市场价 + 账期 + 损耗率
输出:真实采购成本 + 利润空间分析
"""


def calculate_procurement_cost(
    supplier_price: float,       # 供应商报价(元)
    market_price: float,         # 市场价(元)
    payment_days: int,           # 账期(天)
    loss_rate: float,            # 损耗率(0-1)
    logistics_cost: float = 0.0,  # 物流成本(元)
    platform_margin: float = 0.15,  # 平台抽佣率
    leader_margin: float = 0.12,   # 团长佣金率
):
    """
    计算真实采购成本和利润空间

    Returns:
        dict: 成本分析报告
    """
    # 基础成本
    base_cost = supplier_price + logistics_cost

    # 损耗摊销
    loss_cost = base_cost * loss_rate

    # 真实成本(加损耗)
    true_cost = base_cost + loss_cost

    # 资金占用成本(账期成本)
    # 年化资金成本按 5% 计算
    daily_financing_rate = 0.05 / 365
    financing_cost = base_cost * daily_financing_rate * payment_days

    # 真实采购成本
    total_procurement_cost = true_cost + financing_cost

    # 价格优势
    price_advantage_pct = (market_price - supplier_price) / market_price * 100

    # 毛利空间
    target_selling_price = market_price * 0.85  # 定价为市场价85%
    gross_profit = target_selling_price - total_procurement_cost
    gross_margin = gross_profit / target_selling_price * 100

    # 盈亏平衡售价
    breakeven = total_procurement_cost / (1 - platform_margin - leader_margin)

    return {
        "基础采购成本": round(base_cost, 2),
        "损耗摊销": round(loss_cost, 2),
        "资金占用成本(账期)": round(financing_cost, 2),
        "真实采购成本": round(total_procurement_cost, 2),
        "价格优势": f"{price_advantage_pct:.1f}%(vs 市场价)",
        "目标售价(市场价85%)": round(target_selling_price, 2),
        "毛利空间": round(gross_profit, 2),
        "毛利率": f"{gross_margin:.1f}%",
        "盈亏平衡售价": round(breakeven, 2),
        "是否可行": "✅ 可行" if gross_margin >= 15 else "⚠️ 毛利偏低" if gross_margin >= 10 else "❌ 毛利不足",
    }


def run():
    print("=" * 55)
    print("采购成本计算器")
    print("=" * 55)

    try:
        sp = float(input("供应商报价(元):").strip() or "8.5")
    except ValueError:
        sp = 8.5

    try:
        mp = float(input("市场价(元):").strip() or "12.0")
    except ValueError:
        mp = 12.0

    try:
        days = int(input("账期(天):").strip() or "7")
    except ValueError:
        days = 7

    try:
        loss = float(input("损耗率(如 0.05 表示 5%):").strip() or "0.06")
    except ValueError:
        loss = 0.06

    try:
        logistics = float(input("物流成本(元,可直接回车跳过):").strip() or "0")
    except ValueError:
        logistics = 0

    result = calculate_procurement_cost(sp, mp, days, loss, logistics)

    print(f"\n{'='*55}")
    print("采购成本分析报告")
    print(f"{'='*55}")

    print(f"\n成本明细:")
    print(f"  基础采购成本:{result['基础采购成本']:.2f} 元")
    print(f"  损耗摊销:{result['损耗摊销']:.2f} 元")
    print(f"  资金占用成本:{result['资金占用成本(账期)']:.2f} 元")
    print(f"  真实采购成本:{result['真实采购成本']:.2f} 元")

    print(f"\n利润分析:")
    print(f"  {result['价格优势']}")
    print(f"  目标售价(85折):{result['目标售价(市场价85%)']:.2f} 元")
    print(f"  毛利空间:{result['毛利空间']:.2f} 元")
    print(f"  毛利率:{result['毛利率']}")
    print(f"  盈亏平衡售价:{result['盈亏平衡售价']:.2f} 元")
    print(f"\n结论:{result['是否可行']}")


if __name__ == "__main__":
    run()

Tool 3: 库存周转分析器

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
库存周转分析器
输入:SKU库存数据 + 销售数据
输出:周转天数/呆滞品预警/补货建议
"""


def calculate_turnover_metrics(
    sku: str,
    current_stock: float,      # 当前库存(件/千克)
    daily_avg_sales: float,    # 日均销量
    lead_time: int,            # 补货周期(天)
    min_stock_days: int = 3,  # 最低库存天数(触发补货预警)
    max_stock_days: int = 14,  # 最高库存天数(呆滞预警)
):
    """
    计算库存周转指标

    Returns:
        dict: 周转分析报告
    """
    if daily_avg_sales <= 0:
        return {
            "SKU": sku,
            "当前库存": f"{current_stock:.0f}",
            "日均销量": "0(无销量)",
            "库存天数": "N/A",
            "月周转次数": "N/A",
            "库存状态": "⚠️ 无销量",
            "补货建议": "无销量商品,建议下架或重新推广",
            "补货点": "0 件",
            "安全库存": "0 件",
            "建议补货量": "0 件",
        }

    stock_days = current_stock / daily_avg_sales  # 库存天数
    turnover_rate = 30 / stock_days if stock_days > 0 else float("inf")  # 月周转次数

    # 补货点(ROQ公式简化版)
    reorder_point = daily_avg_sales * lead_time
    safety_stock = daily_avg_sales * min_stock_days
    reorder_quantity = daily_avg_sales * (max_stock_days - min_stock_days)

    # 状态判断
    if stock_days < min_stock_days:
        status = "🔴 紧急补货"
        action = f"立即补货!当前库存仅够 {stock_days:.1f} 天"
    elif stock_days < lead_time:
        status = "🟠 即将断货"
        action = f"需在 {stock_days:.0f} 天内补货,建议量 {reorder_quantity:.0f} 件"
    elif stock_days <= max_stock_days:
        status = "🟢 正常"
        action = f"库存正常,当前库存够用 {stock_days:.1f} 天"
    else:
        status = "🟡 呆滞预警"
        action = f"库存过多(够用 {stock_days:.1f} 天),减少进货,优先清库存"

    return {
        "SKU": sku,
        "当前库存": f"{current_stock:.0f}",
        "日均销量": f"{daily_avg_sales:.1f}",
        "库存天数": f"{stock_days:.1f} 天",
        "月周转次数": f"{turnover_rate:.1f} 次",
        "库存状态": status,
        "补货建议": action,
        "补货点": f"{reorder_point:.0f} 件",
        "安全库存": f"{safety_stock:.0f} 件",
        "建议补货量": f"{reorder_quantity:.0f} 件",
    }


def batch_analysis(data: list):
    """批量分析多个SKU"""
    results = []
    for item in data:
        r = calculate_turnover_metrics(**item)
        results.append(r)

    # 分类统计
    status_count = {"紧急补货": 0, "即将断货": 0, "正常": 0, "呆滞预警": 0, "无销量": 0}
    for r in results:
        for k in status_count:
            if k in r.get("库存状态", ""):
                status_count[k] += 1

    return {
        "明细": results,
        "汇总": status_count,
        "呆滞品": [r for r in results if "呆滞" in r.get("库存状态", "")],
        "断货预警": [r for r in results if "断货" in r.get("库存状态", "") or "紧急" in r.get("库存状态", "")],
    }


def run():
    print("=" * 55)
    print("库存周转分析器")
    print("=" * 55)

    sku = input("SKU名称:").strip() or "测试SKU"

    try:
        stock = float(input("当前库存(件):").strip() or "200")
    except ValueError:
        stock = 200

    try:
        sales = float(input("日均销量(件):").strip() or "30")
    except ValueError:
        sales = 30

    try:
        lead = int(input("补货周期(天):").strip() or "3")
    except ValueError:
        lead = 3

    result = calculate_turnover_metrics(sku, stock, sales, lead)

    print(f"\n{'='*55}")
    print(f"【{result['SKU']}】库存分析报告")
    print(f"{'='*55}")
    print(f"\n基础数据:")
    print(f"  当前库存:{result['当前库存']} 件")
    print(f"  日均销量:{result['日均销量']} 件/天")
    print(f"  库存天数:{result['库存天数']}")
    print(f"  月周转次数:{result['月周转次数']}")

    print(f"\n状态:{result['库存状态']}")
    print(f"建议:{result['补货建议']}")
    print(f"\n补货参数:")
    print(f"  补货点:{result['补货点']} 件")
    print(f"  安全库存:{result['安全库存']} 件")
    print(f"  建议补货量:{result['建议补货量']} 件")


if __name__ == "__main__":
    run()

案例库

案例1:多多买菜农产品供应链损耗控制

问题:农产品损耗率高,拖累利润

原因分析:
  1. 包装简陋:田间纸箱直接运输,磕碰损耗大
  2. 链路太长:产地 → 大仓 → 网格仓 → 团长,损耗逐级累积
  3. 分拣粗糙:来不及精细分拣,好坏混装

改进措施:
  1. 产地预冷:蔬菜采摘后 2 小时内入冷库
  2. 标准化包装:托盘+保鲜膜,减少磕碰
  3. 精准订单:减少"卖不完"的浪费

数据对比:
  改进前:损耗率 12-15%
  改进后(2023年):损耗率 6.5-8%
  节省成本:约节省 2-4% 的 GMV,相当于数千万元

案例2:兴盛优选本地供应商深度绑定

成功点:本地供应商长期合作,供应链极其稳定

具体做法:
  1. 合同一年一签,账期稳定,供应商信任平台
  2. 提前付款:优质供应商可申请预付款(5-10%)
  3. 联合营销:平台出补贴,供应商出折扣,合作推广新品
  4. 技术赋能:给供应商提供库存管理系统(免费)

数据支撑:
  供应商稳定性:95%(年流失率 < 5%)
  准时交货率:98%(行业最高)
  采购成本:比美团低 8-12%(账期更稳定,供应商愿意让利)

核心逻辑:
  → 账期稳定 = 供应商愿意让利
  → 预付款 = 供应商全力配合
  → 数字化赋能 = 供应商效率提升 = 成本下降

案例3:美团优选中心仓到网格仓的损耗控制

成功点:两级仓配体系,平衡成本与效率

体系设计:
  中心仓(CDC):
  → 接收全国/区域供应商的大批量货物
  → 进行质量抽检、分拣、归类
  → 发往各城市的网格仓

  网格仓(Grid):
  → 覆盖半径 10-20 公里
  → 从中心仓接收货物,再次分拣
  → 直接配送到团长自提点

数据支撑:
  两级体系 vs 一级体系(直接到团):
  成本:低 15-20%(规模效应)
  时效:慢 12-24 小时
  损耗:高 2-3%(多一次装卸)
  结论:适合规模化的标准品,生鲜不建议超过两级

案例4:某平台"伪造有机认证"供应商事故的教训

背景:2021年某中型平台(年GMV约2亿)供应商审核漏洞导致事故

事件经过:
  Step 1:供应商入驻
    → 某农业合作社入驻,声称有"有机食品认证"
    → 资质审核时:上传了模糊的证书扫描件
    → 审核人员:仅检查"有证书",未核实真实性
    → 入驻完成,开始供货

  Step 2:销售扩张
    → 打着"有机蔬菜"旗号,定价高于普通蔬菜 30%
    → 平台默许其使用"有机"标签进行营销
    → 3个月内月销量突破 ¥80 万

  Step 3:东窗事发
    → 监管部门抽查:农药残留超标
    → 进一步调查:该供应商的有机认证已于半年前被吊销
    → 消费者投诉:多位家长反映孩子食用后出现不适

事故处置:
  直接损失:
    → 商品下架 + 召回:约 ¥120 万(含运输/处理)
    → 用户赔偿:约 ¥85 万(含医疗费/退款)
    → 监管罚款:¥200 万 + 整改通知
    → 平台声誉:百度搜索指数下跌 35%(持续2个月)

  根因分析:
    → 资质审核形同虚设(仅检查"有/无",未验证真实性)
    → 有机认证查询网站未核实(cqc.org.cn可免费查证)
    → 商品页面违规使用"有机"标签(违反《广告法》)
    → 采购人员与供应商存在利益关联(未发现)

整改措施:
  1. 资质核查升级:
    → 所有证书必须在发证机构官网实时查验
    → 有机认证:必须在"食品农产品认证信息系统"(food.cnca.gov.cn)核查
    → 建立证书有效期自动预警(提前30天提醒续期)

  2. 采购合规制度:
    → 采购人员轮岗制度(每年轮岗,防止利益关联)
    → 供应商入库须经两人以上交叉审核
    → 建立供应商黑名单共享机制(行业互通)

  3. 商品页面合规:
    → "有机"等标签必须有对应认证证书才可使用
    → 法律合规部门定期抽检商品页面文案

核心教训:
  → 供应商资质审核不能走过场,必须100%核实
  → 有机/绿色等标签是敏感词汇,滥用违反《广告法》
  → 认证造假成本低,必须主动核实,不能仅依赖证书照片
  → 采购腐败是供应链最大风险之一,必须有制衡机制

案例5:某平台"核心供应商断供危机"

背景:某中型平台(年GMV约5亿)因单一供应商依赖引发断供危机

事件经过:
  → 某肉类供应商A(月供货额约¥200万,占品类40%)
  → 因与平台发生账期纠纷(延迟付款15天)
  → 供应商A停止供货,同时断供另两家同类平台(集体行动)

应急处理:
  48小时内:
    → 启动备用供应商紧急补货(但备用供应商月供能力仅¥80万,不足部分缺货)
    → 平台CEO亲自出面与供应商A协商,达成部分恢复供货协议
    → 用户端:已下单用户全额退款,额外补偿¥10无门槛券

损失估算:
  → GMV损失:缺货期间日均损失约¥35万(断供7天 ≈ ¥245万)
  → 补偿成本:退款+优惠券 ≈ ¥18万
  → 紧急采购溢价:临时找备用供应商,采购成本增加约8%(≈¥16万)
  → 声誉损失:部分用户转向竞品(无法精确量化)

根因分析:
  ① 同品类供应商数量不足:最大供应商占比40%(红线应≤30%)
  ② 没有备用供应商:紧急时无可用替代
  ③ 账期管理不善:延迟付款触发供应商集体行动
  ④ 合同条款缺失:没有"供应商断供应急"条款

整改措施:
  ① 同品类备份供应商≥2家,单一供应商占比≤30%
  ② 账期到期前3天自动提醒,到期日必须付款(不可延误)
  ③ 合同中增加"断供应急条款":供应商断供需提前30天通知
  ④ 建立供应商关系预警机制:账期逾期超7天自动升级

核心教训:
  → 供应商依赖是最大的供应链风险
  → 账期准时支付是供应商关系的基本尊重
  → 备用供应商必须提前培育,不能等危机时再找

附录:供应链检查清单

月度供应链健康检查:

□ 1. 供应商稳定性:月流失供应商是否 < 5%?
□ 2. S/A级供应商占比:是否达到 20-30%?
□ 3. 采购成本:主要 SKU 采购价 vs 市场价是否有优势?
□ 4. 账期健康:是否在 T+7 以上?(供商抱怨 = 预警)
□ 5. 资质合规:S/A级供应商资质是否 100% 有效?
□ 6. 损耗率:各品类损耗率是否在目标范围内?
□ 7. 库存周转:呆滞品(>30天未动销)是否 < 5% SKU?
□ 8. 补货预警:是否每日检查断货风险 SKU?
□ 9. 新品测试:试销新品是否有数据复盘(7天/30天)?
□ 10. 黑名单:是否有新增黑名单供应商?

红线预警:
  → 食品安全事故(任意一起 = 全平台下架)
  → 供应商集体断货( > 3 家 = 供应链危机)
  → 损耗率突然上升 > 3% = 需立即排查原因

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Weibo Hot Search API

Call GET /api/weibo/hot-search/v1 for Weibo Hot Search through JustOneAPI.

Registry SourceRecently Updated
General

Weibo Keyword Search API

Call GET /api/weibo/search-all/v2 for Weibo Keyword Search through JustOneAPI with endDay, endHour, q, startDay, and startHour.

Registry SourceRecently Updated
General

Weibo Search User Published Posts API

Call GET /api/weibo/search-profile/v1 for Weibo Search User Published Posts through JustOneAPI with q and uid.

Registry SourceRecently Updated
General

Weibo Post Details API

Call GET /api/weibo/get-weibo-detail/v1 for Weibo Post Details through JustOneAPI with id.

Registry SourceRecently Updated