关于 vendor-management
vendor-management 是面向电商运营团队的供应商管理技能,涵盖采购订单、收货、供应商门户和绩效评估,并按业务规模提供工具选择与流程指导。
主要功能
- 01按业务规模选择管理工具
- 02创建并发送采购订单
- 03通过邮件或门户确认订单
- 04记录收货与库存差异
- 05计算供应商绩效指标
适用场景
- 01集中协调多个供应商
- 02自动化表格采购订单流程
- 03接入新的代发货供应商
- 04准备季度供应商绩效回顾
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill vendor-management安装后在 Claude Code 中输入/vendor-management确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
tile.jsonevals/goods-receipt-and-vendor-scorecard/criteria.jsontask.mdevals/po-submission-and-vendor-portal-auth/criteria.jsontask.mdevals/vendor-database-schema-design/criteria.jsontask.md详细介绍
供应商管理
概览
供应商管理涵盖向供应商创建并发送采购订单、跟踪收货情况、运行供应商绩效评分卡(准时率、满足率、缺陷率),以及维护供应商门户,让供应商确认采购订单并提供追踪号码。对于大多数商家,QuickBooks/Xero 可以处理采购订单和供应商跟踪;而供应商门户也可以简单到为规模较小的业务采用基于电子邮件的工作流。
何时使用此技能
- 管理 5 家或更多供应商,需要使用集中式系统取代基于电子邮件的协调方式时
- 商品团队手动在电子表格中创建采购订单,并需要自动化时
- 接入新的代发货供应商,需要结构化的集成流程时
- 准备与供应商进行季度业务回顾,需要绩效指标时
- 构建多供应商市场,每位卖家都需要自己的控制面板时
核心说明
步骤 1:确定你的平台并选择合适的供应商管理工具
| 店铺阶段 | 推荐工具 | 原因 |
|---|---|---|
| 小型(营收低于 $1M) | QuickBooks Online 或 Xero + 基于电子邮件的采购订单 | QuickBooks 可处理采购订单、供应商付款和基本收货跟踪;大多数小型商家不需要专门的供应商门户 |
| 中型市场($1M–$20M) | DEAR Inventory(现为 Cin7 Core)或 Unleashed | 两者都支持采购订单、收货和供应商评分卡,并可与 Shopify/WooCommerce/BigCommerce 集成 |
| 企业级 | NetSuite 或 Coupa | 全面的采购套件,提供审批工作流、供应商门户和合规跟踪 |
| 专注代发货 | DSers、AutoDS 或 Spocket | 参阅 @dropshipping-integration 技能,了解针对供应商的代发货工具 |
| 自定义 | 构建采购订单系统 + 供应商门户 | 适用于现有工具无法支持的独特工作流 |
步骤 2:将电商平台连接到供应商管理系统
Shopify
使用 Cin7 Core(原 DEAR Inventory):
- 从 Shopify App Store 安装 Cin7 Core 连接器,或通过 Cin7 Core 集成设置进行安装
- Cin7 Core 会同步 Shopify 商品和库存 — Shopify 库存水平会反映 Cin7 显示的“现有库存”
- 在 Cin7 Core 中创建采购订单 → Purchase → Add Purchase
- 收到货物后(标记为 Received),Shopify 库存会自动更新
使用 QuickBooks Online 处理采购订单:
- 通过 QuickBooks Online 应用或 A2X 连接器,将 QuickBooks 连接到 Shopify
- 在 QuickBooks Online 中创建采购订单 → Expenses → Purchase Orders
- 收到货物后:在 QuickBooks 中打开采购订单,然后点击“Receive”记录收货
- 收货后手动更新 Shopify 库存(或使用 Cin7 Core 自动完成此操作)
WooCommerce
使用 ATUM Inventory Management(采购订单模块):
- 从 WordPress.org 安装 ATUM Inventory Management(采购订单功能需使用高级版)
- 前往 ATUM → Purchase Orders → Add PO
- 选择供应商、添加商品并设置预计交货日期
- ATUM 会自动通过电子邮件将采购订单发送给供应商
- 货物到达后:在 ATUM 中将采购订单标记为已收货 → WooCommerce 库存会自动更新
使用 Cin7 Core:
- 通过 Cin7 Core → Integrations → WooCommerce 集成,将 Cin7 Core 连接到 WooCommerce
- 在 Cin7 Core 中管理所有采购订单和供应商关系;库存会同步回 WooCommerce
BigCommerce
使用 Unleashed:
- 从 BigCommerce App Marketplace 安装 Unleashed 连接器
- 在 Unleashed 中创建采购订单 → Purchases → New Purchase Order
- 收到采购订单对应的货物后,Unleashed 会将库存同步回 BigCommerce
使用 Cin7 Core:
- 在 Cin7 Core 设置中通过 BigCommerce API 集成进行连接
- 工作流与 Shopify/WooCommerce 相同
第 3 步:创建采购订单并发送给供应商
一份完善的采购订单(PO)应包含:PO 编号、商品描述(包括你的 SKU 和供应商的 SKU)、数量、单位成本、预计交货日期和送货地址。
在 QuickBooks Online 中
- 前往 Expenses → Vendors → [Vendor] → 点击 New Transaction → Purchase Order
- 填写:供应商、PO 日期、预计发货日期,以及商品的数量和单位成本
- 点击 Save and Send,即可直接通过 QuickBooks 向供应商发送 PO 邮件
- 在 Expenses → Purchase Orders 中跟踪 PO 状态——未完成的 PO 显示为“Open”,已收货的显示为“Closed”
在 Cin7 Core / ATUM 中
- 前往 Purchase → New Purchase Order
- 选择供应商;系统会从你的供应商目录中自动填入该供应商的商品
- 根据补货数量调整商品数量(参见 @demand-forecasting)
- 设置预计交货日期:将供应商的交货周期加到今天的日期上
- 通过内置的邮件工作流发送 PO——邮件中会附上 PO PDF
使用简单的邮件模板(适用于尚未使用 PO 系统的商家)
Subject: Purchase Order PO-202603-001
Dear [Supplier Contact],
Please find our purchase order details below:
PO Number: PO-202603-001
Order Date: March 12, 2026
Expected Delivery: March 26, 2026
Items:
| SKU | Description | Qty | Unit Cost | Total |
|-----|-------------|-----|-----------|-------|
| YS-1001 | Cotton T-Shirt, White, S | 100 | $8.50 | $850.00 |
| YS-1002 | Cotton T-Shirt, White, M | 150 | $8.50 | $1,275.00 |
Total: $2,125.00
Payment Terms: Net 30
Please confirm receipt of this order and your expected ship date.
Ship to:
[Your warehouse address]
第 4 步:设置供应商门户以确认 PO
对于通过邮件合作的供应商,简单的邮件确认工作流就足够了。对于合作量较大的供应商关系,门户可以提高可见性。
简单的邮件工作流:
- 通过邮件发送 PO,并注明回复截止日期(2 个工作日),请供应商确认:PO 编号、商品、数量和预计发货日期
- 供应商回复后,在你的系统中将 PO 状态更新为“已确认”
- 如果供应商无法满足全部数量,请让其以书面形式确认可供货的部分数量
ATUM Supplier Portal(WooCommerce):
- ATUM Premium 包含面向供应商的门户,供应商可在其中接收 PO、确认 PO 并填写跟踪号码
- 前往 ATUM → Suppliers → [Supplier] → 配置门户访问凭据
Cin7 Core Supplier Portal:
- Cin7 Core 包含供应商门户,供应商可以查看 PO、确认交货日期并上传运输文件
- 在 Cin7 Core → Settings → Suppliers → Invite to Portal 中邀请供应商
第 5 步:跟踪收货情况并更新库存
供应商发货到达时:
- 将装箱单与采购订单进行核对——检查每个商品行的数量
- 识别任何差异:
- **短装:**供应商发出的商品数量少于订购数量 → 将 PO 更新为实际收货数量,并将未交付部分对应的 PO 保持为“未完成”
- **货物损坏:**单独记录;不要将损坏的库存计入可销售库存
- **商品错误:**立即联系供应商并提供照片,以申请贷项通知单
在 QuickBooks 中:
- 打开 PO → 点击“Receive Items” → 输入实际收货数量
- QuickBooks 会自动根据已收货数量创建账单
在 Cin7 Core / ATUM 中:
- 前往 PO → 点击“Receive Stock” → 输入每个商品行的收货数量
- 库存会自动在 Shopify/WooCommerce/BigCommerce 中更新
第 6 步:计算并查看供应商绩效评分卡
每季度运行一次供应商评分卡,以识别表现不佳的供应商并为谈判提供依据。
关键指标:
| 指标 | 定义 | 目标 |
|---|---|---|
| 准时交货率 | 实际收货日期 ≤ 预计交货日期的 PO 占比 | > 90% |
| 供货率 | 所有 PO 的收货总件数 / 订购总件数 | > 95% |
| 缺陷率 | 收到的损坏或错误商品件数 / 收货总件数 | < 2% |
| 交货周期准确度 | 实际交货周期与报价交货周期的对比 | ± 2 天 |
从你的 PO 系统中计算:
在 QuickBooks 中,将 PO 数据导出到电子表格并计算这些指标。在 Cin7 Core 和 ATUM 中,内置的供应商报告会自动提供这些指标。
自定义 / 无头架构——供应商评分卡计算
async function calculateVendorScorecard(params: {
vendorId: string;
periodDays: number;
}): Promise<{
onTimeRatePct: number;
fillRatePct: number;
defectRatePct: number;
overallScore: number; // 0–100
}> {
const since = new Date(Date.now() - params.periodDays * 86400000);
const pos = await db.purchaseOrders.findAll({
vendor_id: params.vendorId,
status: { in: ['received', 'partial'] },
created_at: { gte: since },
});
if (pos.length === 0) return { onTimeRatePct: 0, fillRatePct: 0, defectRatePct: 0, overallScore: 0 };
// On-time: PO received on or before expected delivery date
const onTimeCount = pos.filter(po => po.received_at && po.received_at <= new Date(`${po.expected_delivery}T23:59:59Z`)).length;
// Fill rate: total received / total ordered
const allLines = await db.poLines.findByPoIds(pos.map(p => p.id));
const totalOrdered = allLines.reduce((s, l) => s + l.quantity_ordered, 0);
const totalReceived = allLines.reduce((s, l) => s + l.quantity_received, 0);
// Defect rate: damaged units / total received
const totalDamaged = await db.damagedReceipts.sumByVendorAndPeriod(params.vendorId, since);
const onTimeRatePct = (onTimeCount / pos.length) * 100;
const fillRatePct = totalOrdered > 0 ? (totalReceived / totalOrdered) * 100 : 0;
const defectRatePct = totalReceived > 0 ? (totalDamaged / totalReceived) * 100 : 0;
// Weighted score: on-time 40%, fill rate 40%, defect-free 20%
const overallScore = Math.round(
(onTimeRatePct * 0.4) + (fillRatePct * 0.4) + ((100 - defectRatePct) * 0.2)
);
return { onTimeRatePct, fillRatePct, defectRatePct, overallScore };
}
最佳实践
- 如果年营收低于 100 万美元,使用你的会计软件(QuickBooks、Xero)处理采购订单(PO)——它能在一个工具中整合应付账款(AP)和库存收货;在这个阶段,你不需要单独的供应商门户
- 保守设置预期交付日期——在供应商报价的交货周期基础上增加 2 天缓冲;这样无需改变实际绩效,也能提升准时率指标
- 仔细跟踪部分收货——许多采购订单会分多批发货;按明细记录已收货数量,并保持采购订单开放,直到全部收货
- 在收货时记录缺陷,而不是之后补记——收货时必须记录受损货物并拍照;事后向供应商索赔更难举证
- 每季度与供应商分享评分卡——供应商看到自己的指标后,表现会有所改善;在价格谈判中使用这些数据(“你们上季度的供货满足率降到了 88%”)
常见问题
| 问题 | 解决方案 |
|---|---|
| 采购订单总额与供应商发票不符 | 在采购订单明细级别保存单位成本,绝不追溯更新;价格差异会成为应付账款异常项,标记后等待审核 |
| 供应商将货物送到了错误的地址 | 在每份采购订单和门户确认页面中注明仓库地址;确认收货地址已得到确认 |
| 受损货物尚未从库存数量中扣除,库存就已增加 | 仅为 condition = 'good' 的收货增加库存;受损货物应计入隔离库存,而非可销售库存 |
| 评分卡显示准时率很高,但库存仍然耗尽 | 准时率衡量的是交付日期与预期日期的差异,而非交付日期与实际需求日期的差异;还应单独跟踪“归因于延迟交付的缺货事件”这一指标 |
相关技能
- @dropshipping-integration
- @order-management-system
- @multi-channel-selling
- @demand-forecasting
- @accounts-payable-management