关于 payment-terms-optimization
面向 B2B 商务团队的实用技能,指导配置付款期限并管理相关信用风险。内容涵盖不同平台的设置、客户分层、提前付款折扣和催收实践。
主要功能
- 01按平台配置付款期限
- 02设置客户级期限与信用额度
- 03提前付款折扣指南
- 04催款与发票提醒
- 05信用风险与年度审查
适用场景
- 01为 B2B 买家启用账期
- 02按客户群设置不同期限
- 03鼓励提前付款以改善现金流
- 04应对信用损失上升
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill payment-terms-optimization安装后在 Claude Code 中输入/payment-terms-optimization确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
tile.jsonevals/credit-limit-enforcement-at-order-checko/criteria.jsontask.mdevals/early-payment-discount-calculation-and-a/criteria.jsontask.mdevals/risk-scoring-algorithm-and-collections-e/criteria.jsontask.md详细介绍
付款条款优化
概述
付款条款规定了 B2B 客户赊购商品后必须付款的时间:net-30(发票开具后 30 天到期)、net-60、net-90,或“2/10 net-30”等提前付款方案(10 天内付款可享受 2% 折扣)。提供灵活的付款条款是 B2B 商务中的竞争优势——能够降低购买决策的阻力——但也会带来必须谨慎管理的信用风险。
合适的工具取决于你的平台。Shopify Plus、BigCommerce B2B Edition 和多个 WooCommerce 插件都原生支持 net-terms。对于规模较小的配置,将电商平台与开票工具(Invoiced、Stripe Invoicing)结合使用是最实用的方案。
何时使用此技能
- 从仅支持预付款转为向 B2B 客户提供 net-terms,以提高转化率时
- 不同客户群体需要不同条款时(中小企业 net-30,企业客户 net-60)
- 想通过折扣激励客户提前付款,以改善现金流时
- 使用商业账户建立新的批发或分销渠道时
- 信用损失不断增加,需要更严格地执行信用额度时
核心说明
第 1 步:确定你的平台并选择合适的付款条款工具
| 平台 | 推荐工具 | 原生支持 |
|---|---|---|
| Shopify(Standard) | Invoiced 应用或 Balance 应用 | 不原生支持 net-terms;请使用应用 |
| Shopify Plus | Shopify B2B(原生)+ Invoiced(用于高级催收) | Shopify B2B 内置 Net-30/60/90;原生支持信用额度和公司账户 |
| WooCommerce | WooCommerce B2B 插件 + WooCommerce PDF Invoices | WooCommerce B2B 可为每个客户群组设置付款条款 |
| BigCommerce | BigCommerce B2B Edition(原生) | 内置 net-terms、信用额度和公司账户 |
| 自定义 / Headless | Stripe Invoicing + Stripe Billing(用于执行付款条款) | Stripe Invoicing 原生支持 net-30/60/90 |
第 2 步:为每位客户配置付款条款
Shopify Plus(原生 B2B)
- 前往 Shopify Admin → Customers → Companies,为每个 B2B 账户创建公司档案
- 点击公司并前往 Payment methods,设置其付款条款:
- Net 7、Net 15、Net 30、Net 60、Net 90
- 或自定义天数
- 为公司设置 Credit limit——可能导致超出额度的订单被拦截或提交审批
- 公司买家下单时,Shopify 会自动创建一张包含正确到期日的发票,并发送到买家的邮箱
- 买家可以通过发票邮件中的链接付款;Shopify 会自动将订单标记为已付款
Shopify Plus 上的提前付款折扣: Shopify B2B 不原生支持“2/10 net-30”提前付款折扣。请使用 Invoiced 应用设置提前付款折扣条款——在 Invoiced → Settings → Payment Terms → Early Payment Discount 中进行配置。
Shopify(Standard,使用 Invoiced 应用)
- 从 Shopify App Store 安装 Invoiced
- 前往 Invoiced → Settings → Payment Terms,创建付款条款配置:Net 30、Net 60、Net 90、2/10 Net 30
- 在 Invoiced → Customers 中为每位客户分配付款条款
- 使用 net-terms 的客户下达 Shopify 订单时,Invoiced 会自动生成一张包含正确到期日的发票
- 配置催收:前往 Invoiced → Settings → Chasing,设置提醒计划(到期前 1 天、逾期 1 天、逾期 7 天、逾期 14 天)
WooCommerce
- 安装 WooCommerce B2B 插件(由 WooCommerce 提供或使用第三方 B2B 插件)
- 前往 WooCommerce → B2B Settings → Payment Terms,按客户角色或具体客户配置付款条款
- 安装 WooCommerce PDF Invoices & Packing Slips,自动生成带有到期日的发票
- 如需提供提前付款折扣,可使用自定义定价规则(WooCommerce Dynamic Pricing 插件):客户使用代表提前付款选项的优惠券代码时,按百分比打折
在 WooCommerce 中强制执行信用额度:
- 在 B2B 插件设置中,按客户或客户组设置信用额度
- 配置超出额度时的处理方式:阻止订单,或通知管理员审批
- 发票付清后,信用额度会自动释放
BigCommerce B2B Edition
- 在 B2B Edition → Company Management → Payment Methods 中启用净期限付款
- 在 B2B Edition → Companies → [Company] → Credit 中设置:
- 信用额度
- 付款条款(Net 30、Net 60 等)
- 信用状态(已批准、待处理、已暂停)
- 企业买家下单时,BigCommerce B2B Edition 会根据配置的条款生成发票
- 买家可以在其账户门户中查看并支付未结发票
Custom / Headless
使用 Stripe Invoicing 强制执行净期限付款,无需从头构建信用系统:
// Create a customer with payment terms in Stripe
const customer = await stripe.customers.create({
email: customerEmail,
name: companyName,
metadata: { payment_terms: 'net_30', credit_limit: '50000' },
});
// Create an invoice with net-30 terms
const invoice = await stripe.invoices.create({
customer: customer.id,
collection_method: 'send_invoice',
days_until_due: 30, // Net-30
auto_advance: true, // Automatically finalize and send
description: `Invoice for Order ${orderNumber}`,
metadata: { order_id: orderId, po_number: poNumber },
});
// Add line items, then finalize and send
await stripe.invoiceItems.create({ customer: customer.id, invoice: invoice.id, amount: orderTotal, currency: 'usd', description: orderDescription });
await stripe.invoices.finalizeInvoice(invoice.id);
// Stripe auto-sends the invoice and handles dunning reminders via Billing settings
在 Stripe Billing 设置中配置催收: 前往 Stripe Dashboard → Billing → Settings → Invoice reminders,配置自动提醒:到期前 3 天、到期日、到期后 3 天、7 天和 14 天。
强制执行信用额度(自定义):
async function checkCreditAvailability(customerId, orderAmount) {
const customer = await db.customers.findUnique({ where: { id: customerId } });
const openInvoicesTotal = await db.invoices.aggregate({
where: { customerId, status: { in: ['sent', 'overdue', 'partially_paid'] } },
_sum: { amountDue: true },
});
const currentBalance = openInvoicesTotal._sum.amountDue ?? 0;
const availableCredit = customer.creditLimit - currentBalance;
if (orderAmount > availableCredit) {
return { approved: false, availableCredit, shortfall: orderAmount - availableCredit };
}
return { approved: true, availableCredit: availableCredit - orderAmount };
}
第 3 步:优化条款,兼顾现金流和信用风险
为不同客户层级选择合适的条款:
| 客户层级 | 推荐条款 | 原因 |
|---|---|---|
| 新账户(订单数 < 3) | Net 15 或预付款 | 付款记录不足,无法提供信用额度 |
| 稳定客户(连续按时付款 3–12 个月) | Net 30 | 标准 B2B 条款 |
| 战略客户(合作 12 个月以上、交易量大) | Net 60 或“2/10 Net 30” | 奖励忠诚度;提前付款折扣有助于改善现金流 |
| 高风险客户(逾期付款 2 次以上) | 仅接受预付款或 Net 15 | 防范坏账 |
提前付款折扣的经济效益: “2/10 net-30”表示客户在 10 天内付款可享受 2% 的折扣,而不是等到 30 天后付款。对客户而言,这相当于以约 36.7% 的年利率借款——只要客户有任何资金成本,通常都应该享受这项折扣。对你而言,支付 2% 的成本以提前 20 天收款,通常比你的借款成本更划算。
年度信用审查: 每年审查所有信用账户,并设置日历提醒。两年前符合 50,000 美元信用额度条件的客户,如今的情况可能大不相同。对于出现拖延付款趋势的客户,应降低其信用额度。
最佳实践
- 为新的 B2B 客户设置更严格的条款——新账户先采用 net-30 或 net-15;连续按时付款 6 个月后再升级;未经信用检查,绝不要一开始就采用 net-60 或 net-90
- 绝不要向信用冻结账户发货——在订单层面而非仅在开票层面执行信用冻结;货物一旦离开仓库,你就失去了主动权
- 正确设定提前付款折扣——“2/10 net-30”意味着客户承担约 36.7% 的年化成本;应清楚地说明这项优惠的价值
- 根据风险层级调整催收力度——高风险客户逾期 3 天就需要跟进;有良好记录的长期客户则应给予更多宽限
- 记录每项信用决策——保存每次调整信用额度的原因;如果需要向审计人员说明核销原因,这些记录就派上用场了
常见陷阱
| 问题 | 解决方案 |
|---|---|
| 客户下单金额超过其信用额度 | 在确认订单前检查可用信用额度,而不只是在开票时检查;Shopify Plus B2B 和 BigCommerce B2B Edition 原生提供此功能 |
| 超过折扣期限后仍享受提前付款折扣 | 严格记录付款日期;Invoiced 和 Stripe Invoicing 会自动跟踪此信息 |
| 应收账款余额变化时未更新信用额度 | 使用一种工具,在创建发票时扣减可用信用额度,并在付款后恢复额度;Invoiced 和 Stripe 会自动处理 |
| 不同部门通过非正式方式授予不同的付款条件 | 在平台或应收账款工具中集中配置付款条件;销售代表应通过信用系统申请更改付款条件 |
| 坏账核销率高 | 在批准任何账户享受超过 $5,000 的净额付款条件前,实施信用申请流程 |
相关技能
- @accounts-receivable-automation
- @invoice-generation-automation
- @payment-reconciliation-automation
- @stripe-integration