关于 low-stock-alerts
面向电商库存管理的低库存提醒指导,帮助商家根据平台能力选择内置通知、扩展应用或自定义后台作业。内容还涉及动态补货点、供应商通知和告警去重。
主要功能
- 01比较 Shopify、WooCommerce 和 BigCommerce 方案
- 02配置全局或单品低库存阈值
- 03按销量与供货周期计算补货点
- 04设置供应商通知流程
- 05处理重复告警与季节性阈值
适用场景
- 01减少商品缺货导致的销售损失
- 02从人工库存检查改为自动提醒
- 03结合供货周期安排补货
- 04为多仓商品设置位置级告警
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill low-stock-alerts安装后在 Claude Code 中输入/low-stock-alerts确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
tile.jsonevals/alert-data-model-and-deduplication-logic/criteria.jsontask.mdevals/dynamic-reorder-point-and-demand-forecas/criteria.jsontask.mdevals/supplier-notifications-and-alert-managem/criteria.jsontask.md详细介绍
低库存提醒
概述
当库存低于阈值时,低库存提醒会通知你,以便你在商品售罄前及时补货。所有主要平台都内置了这项功能——Shopify、WooCommerce 和 BigCommerce 都会在库存低于设定水平时发送电子邮件通知。对于按需求设置阈值、自动生成供应商采购订单(PO)或在 Slack 中通知团队等更高级的需求,专用应用无需编写自定义代码即可提供这些功能。
何时使用此技能
- 商品意外售罄,导致错失销售机会时
- 当前库存工作流依赖人工检查,而非自动提醒时
- 想要按需求设置补货点,而不是使用固定阈值时
- 商店的供应商交货周期需要纳入补货时机的考量时
核心说明
第 1 步:确定平台并选择合适的工具
| 平台 | 内置提醒 | 推荐扩展 |
|---|---|---|
| Shopify | 库存降至零时,Shopify 会发送电子邮件通知;阈值控制功能非常有限 | 使用 Stocky(免费,由 Shopify 提供)配置阈值并自动处理采购订单;使用 Back in Stock 通知客户 |
| WooCommerce | 库存低于设定的低库存阈值时,WooCommerce 会向商店管理员发送电子邮件 | 使用 ATUM Inventory Management 设置单个商品的阈值、发送供应商电子邮件并获取补货建议 |
| BigCommerce | 内置按商品设置的低库存提醒,可配置阈值 | 使用 Multi-Location Inventory 应用设置特定地点的提醒 |
| Custom / Headless | 构建后台任务,根据补货点检查库存水平 | 当平台没有原生提醒功能或需要自动发送供应商电子邮件时必需 |
第 2 步:平台专属设置
Shopify
内置低库存通知:
库存降至零时,Shopify 会向商店管理员发送电子邮件,但原生不支持配置阈值。
- 前往 Settings → Notifications → Scroll to Staff order notifications
- 确保已设置管理员电子邮件地址——库存降至 0 时,Shopify 会通知此地址
使用 Stocky 设置每个变体的阈值:
- 从 Shopify App Store 安装 Stocky(免费)
- 打开 Stocky 并前往 Products
- 为每件商品设置 Reorder point(触发提醒的库存水平)
- 设置 Reorder quantity(触发提醒时要订购的数量)
- Stocky 会在仪表板中标记库存低于补货点的商品,并可自动生成采购订单草稿
客户“到货提醒”通知:
- 从 App Store 安装 Back In Stock(付费)或 Klaviyo
- 这些应用会在缺货商品上显示“到货时通知我”按钮
- 库存补充后,自动向已订阅的客户发送电子邮件
WooCommerce
配置全局低库存阈值:
- 前往 WooCommerce → Settings → Products → Inventory
- 在 Low stock threshold 中输入一个数值(例如,
10) - 在 Notification recipient(s) 中输入通知邮箱——多个邮箱之间用逗号分隔
- 当任何商品的库存降至此阈值或以下时,WooCommerce 会发送邮件
设置单个商品的阈值:
- 前往 WooCommerce → Products → [Product] → Inventory tab
- 启用 Manage stock?
- 输入仅适用于此商品的 Low stock threshold(覆盖全局设置)
使用 ATUM 设置高级提醒:
- 安装 ATUM Inventory Management for WooCommerce(免费)
- ATUM 的仪表板会在一个视图中显示所有库存达到或低于补货点的商品
- 在 ATUM → Product Settings 下配置单个商品的补货点
- 当商品需要补货时,ATUM 还可以直接向供应商发送邮件(付费功能)
按需求设置阈值:
- 安装 Inventory Planner(Shopify/WooCommerce),获取基于销售速度的补货建议
- Inventory Planner 会分析你的销售历史,并根据提前期 × 每日销售速度 + 安全库存建议补货点
BigCommerce
设置单个商品的低库存阈值:
- 前往 Products → [Product] → Inventory tab
- 设置 Low stock level 字段
- 当库存低于此阈值时,BigCommerce 会自动向店铺管理员发送邮件通知
配置提醒接收者:
- 前往 Store Setup → Store Settings → Miscellaneous
- 将 Low stock email address 设为采购团队的邮箱
设置特定地点的提醒:
- 安装 Multi-Location Inventory 应用
- 为每个地点设置阈值——如果同一 SKU 存放在多个仓库,这项功能会很有用
自定义平台 / 无头平台
对于自定义平台,请实现一个后台任务,用于检查库存水平是否达到已配置的补货点:
// jobs/checkStockLevels.ts — run every 15-30 minutes via cron
export async function checkStockLevels() {
const levels = await db.inventoryLevels.findMany({
include: { reorderConfig: true, variant: { include: { product: true } }, location: true },
where: { reorderConfig: { isNot: null } },
});
const newAlerts = [];
for (const level of levels) {
const config = level.reorderConfig!;
const available = level.onHand - level.reserved;
// Dynamic reorder point based on sales velocity and lead time
let reorderPoint = config.reorderPoint;
if (config.useDynamicReorderPoint) {
const velocity = await calculateDailySalesVelocity(level.variantId, 30); // 30-day rolling average
reorderPoint = Math.ceil(velocity * config.leadTimeDays * 1.2); // 20% safety stock buffer
}
const alertType = available === 0 ? 'out_of_stock' : available <= reorderPoint ? 'low_stock' : null;
if (!alertType) continue;
// Only create a new alert if the previous one is resolved
const existingAlert = await db.stockAlerts.findFirst({
where: { variantId: level.variantId, locationId: level.locationId, alertType, resolvedAt: null },
});
if (!existingAlert) {
newAlerts.push({ level, config, available, reorderPoint, alertType });
await db.stockAlerts.create({ data: {
variantId: level.variantId, locationId: level.locationId,
alertType, triggeredAt: new Date(), availableAtTrigger: available,
}});
}
}
if (newAlerts.length > 0) await sendAlertNotifications(newAlerts);
}
// Calculate daily sales velocity from order history
async function calculateDailySalesVelocity(variantId: string, windowDays: number) {
const since = new Date(Date.now() - windowDays * 86400000);
const result = await db.orderLineItems.aggregate({
where: { variantId, order: { createdAt: { gte: since }, status: { in: ['completed', 'shipped'] } } },
_sum: { quantity: true },
});
return (result._sum.quantity ?? 0) / windowDays;
}
// Send consolidated alerts — group by supplier to avoid email spam
async function sendAlertNotifications(alerts: Alert[]) {
const bySupplier: Record<string, Alert[]> = {};
for (const alert of alerts) {
const key = alert.config.supplierId ?? 'merchant';
if (!bySupplier[key]) bySupplier[key] = [];
bySupplier[key].push(alert);
}
for (const [supplierId, supplierAlerts] of Object.entries(bySupplier)) {
const to = supplierId === 'merchant' ? process.env.MERCHANT_ALERT_EMAIL : (await db.suppliers.findById(supplierId))?.email;
if (!to) continue;
await emailService.send({ to, template: 'low-stock-alert', data: { alerts: supplierAlerts } });
}
}
第 3 步:计算动态补货点(可选)
固定阈值(例如,“库存达到 10 件时提醒”)设置简单,但可能不准确——日销量为 50 件的商品所需的阈值,远高于每周销量为 2 件的商品。
公式:
Reorder Point = (Daily Sales Velocity × Lead Time Days) × 1.2 (20% safety buffer)
示例:商品日销量为 5 件,供应商提前期为 7 天
- 提前期内的需求:5 × 7 = 35 件
- 加上安全缓冲的补货点:35 × 1.2 = 42 件
对于 Shopify: 使用 Inventory Planner 应用,它会根据销售历史自动计算基于销售速度的补货点。
对于 WooCommerce: ATUM Inventory Management 可以配置供应商提前期,并根据销售速度建议补货点。
第 4 步:自动向供应商发送补货通知
提醒触发后,你需要自动通知采购团队或供应商。
Shopify + Stocky: 当库存低于补货点时,Stocky 会生成采购订单草稿。团队审核后,可以在 Stocky 中将采购订单发送给供应商。
WooCommerce + ATUM(付费): 当商品需要补货时,ATUM 可以直接向配置的供应商发送邮件,其中包含建议补货数量。
邮件工作流(任何平台): 将低库存通知邮箱直接设为供应商的订货收件箱,并在通知模板中包含 SKU、商品名称和建议补货数量。
最佳实践
- 根据供货周期和销售速度设置再订货点 — 对滞销商品来说,固定的 10 件阈值或许合适,但对畅销商品来说可能低得危险;可将上面的公式作为起点
- 避免重复发送提醒 — 平台和自定义解决方案应针对每次事件、每个 SKU 只发送一次提醒,而不是每次库存减少都发送提醒;补货后应将旧提醒标记为已解决
- 合并供应商邮件 — 一封邮件列出同一供应商的 5 个低库存 SKU,远比发送 5 封单独的邮件干扰少
- 在变体级别设置阈值,而不仅仅是在商品级别 — 一件 XL 码只剩 3 件、M 码还有 50 件的衬衫,应仅针对 XL 码发送提醒
- 按季节检查并更新阈值 — 某商品平时每天售出 2 件,旺季时可能每天售出 20 件;应在需求旺季到来前调整阈值
常见问题
| 问题 | 解决方案 |
|---|---|
| 同一 SKU 的提醒反复触发 | 确保平台在补货前针对每次事件仅发送一次提醒;Shopify 和 WooCommerce 默认会正确处理;自定义实现需要添加 resolvedAt 防护 |
| 淡季时动态再订货点过高 | 使用滚动的 30 天窗口计算销售速度;对于季节性明显的商品,可考虑采用不同的季节性配置 |
| 供应商邮件被归入垃圾邮件 | 为提醒邮件使用经过身份验证的发送域名(SPF、DKIM、DMARC);交易邮件服务商(SendGrid、Postmark)有助于提高送达率 |
| 提醒阈值过低 — 误报太多 | 先将阈值设为供应商常规订货量的 2 倍,再根据实际发生的到货前缺货频率进行调整 |
相关技能
- @inventory-tracking
- @multi-warehouse
- @catalog-import-export