关于 invoice-generation-automation
这项实用技能指导电商商家自动生成和发送发票,并处理合规要求。内容涵盖平台工具选择、品牌化 PDF、增值税字段及会计工作流配置。
主要功能
- 01按平台选择发票工具
- 02自动生成并邮件发送发票
- 03品牌化 PDF 与模板设置
- 04欧盟增值税发票字段指南
- 05会计系统同步建议
- 06发票编号与存储规范
适用场景
- 01自动为已完成订单开具发票
- 02设置 B2B 或订阅发票
- 03准备符合欧盟增值税要求的发票
- 04将发票记录同步至会计软件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ finsilabs/ awesome-ecommerce-skills --skill invoice-generation-automation安装后在 Claude Code 中输入/invoice-generation-automation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
tile.jsonevals/invoice-orchestrator-with-idempotency-an/criteria.jsontask.mdevals/pdf-rendering-with-puppeteer-and-handleb/criteria.jsontask.mdevals/sequential-invoice-numbering-with-no-gap/criteria.jsontask.md详细介绍
发票生成自动化
概述
发票生成自动化可以将每笔已完成的订单自动转换为专业、带品牌标识的 PDF 发票,无需人工操作。对于 B2B 电商,发票是客户采购和会计工作流中必需的法律文件。在许多国家/地区,尤其是欧盟,法律要求使用特定的发票格式,并包含连续编号、增值税号和必填字段。所有主流平台都通过应用和插件支持发票自动化,通常无需编写自定义代码。
何时使用此技能
- 当客户在购买后索要发票,而你仍在手动开具时
- 当你构建的 B2B 电商业务要求在付款前或付款后开具发票时
- 当你需要遵守欧盟增值税发票要求时
- 当你需要与要求保存发票记录的会计软件(QuickBooks、Xero)集成时
- 当订阅账单需要在每个计费周期生成发票时
- 当你需要带品牌标识的专业 PDF,而不是支付处理商提供的默认发票样式时
核心说明
步骤 1:确定你的平台并选择合适的发票工具
| 平台 | 推荐工具 | 说明 |
|---|---|---|
| Shopify | Order Printer Pro 或 Sufio(Shopify App Store) | Shopify 不提供原生发票 PDF;Order Printer Pro 是使用最广泛的免费选项;Sufio 支持欧盟增值税合规、会计同步和自动发送 |
| WooCommerce | WooCommerce PDF Invoices & Packing Slips(免费)或 WooCommerce Germanized(欧盟合规) | 免费插件可生成标准发票 PDF;Germanized 可添加符合德国/欧盟法律要求的发票格式 |
| BigCommerce | Order Confirmation PDF(内置)+ 通过 API 使用 Sufio 或 Invoice Ninja | BigCommerce 会发送默认订单确认单;Sufio 可添加带品牌标识且全面支持欧盟增值税的 PDF |
| 基于 Stripe 的商店 | Stripe Invoicing(内置) | Stripe 可自动生成、发送发票并追踪付款;非常适合 B2B 和订阅账单 |
| 自定义 / Headless | Stripe Invoicing API 或 Docspring / PDFMonkey(用于自定义 PDF 生成) | Stripe Invoicing 可处理完整生命周期,包括催款;PDF API 可处理自定义设计 |
步骤 2:设置自动发票生成
Shopify
选项 A:Order Printer Pro(免费,基础版)
- 从 Shopify App Store 安装 Order Printer Pro
- 前往 Apps → Order Printer Pro → Templates,通过自定义发票 HTML 模板添加徽标、颜色和页脚文本
- 在 Settings 下配置自动打印触发条件——订单履行后,应用可以自动通过电子邮件向客户发送发票 PDF
- 对于欧盟增值税发票:该应用支持添加增值税号并使用合规格式;在 Settings → Tax settings 下启用此功能
选项 B:Sufio(推荐用于 B2B 和欧盟增值税合规)
- 从 Shopify App Store 安装 Sufio(付费,起价约为每月 19 美元)
- 前往 Sufio → Settings → Document templates,上传徽标并自定义字体、颜色和布局
- 在 Sufio → Settings → Automation 下配置发票的创建和发送时机:
- 触发条件:Order paid 或 Order fulfilled
- 操作:生成 PDF 并自动通过电子邮件发送给客户
- 对于欧盟增值税:前往 Sufio → Settings → Tax settings 并启用增值税发票模式——Sufio 会添加必需字段(连续编号、卖方/买方增值税号、逐项税额明细)
- 连接会计软件:前往 Sufio → Integrations,连接 QuickBooks Online 或 Xero——发票会自动同步
WooCommerce
选项 A:WooCommerce PDF Invoices & Packing Slips(免费)
- 从 WordPress.org 安装 WooCommerce PDF Invoices & Packing Slips(由 WP Overnight 开发,是最受欢迎的选项,安装量超过 500,000 次)
- 前往 WooCommerce → PDF Invoices → Documents → Invoice 并进行配置:
- 为以下订单状态启用发票:新订单、处理中、已完成
- 上传公司徽标
- 设置发票编号格式(例如,年份前缀:2026-0001)
- 添加公司详细信息(名称、地址、VAT 号码)
- 在 General 下,启用 Attach to order confirmation email — 订单状态变更时,系统会自动通过电子邮件发送发票
- 如需连续编号(欧盟 VAT 要求):前往 Invoice → Number 并启用连续计数器
选项 B:WooCommerce Germanized(符合欧盟 VAT 法规)
- 安装 WooCommerce Germanized — 此插件可确保全面符合德国/欧盟法规,包括法律要求的发票要素
- 在 WooCommerce → Germanized → General → VAT ID 下配置卖家的 VAT 号码
- 发票设置位于 WooCommerce → Germanized → Invoices — 配置编号、格式和自动化触发条件
同步到会计系统:
- 从 WooCommerce Marketplace 安装 WooCommerce QuickBooks Online 或 WooCommerce Xero
- 订单和发票会自动同步到你的会计系统
BigCommerce
- BigCommerce 默认会发送订单确认电子邮件 — 对 B2C 而言,这可作为基本发票
- 如需带品牌标识的 PDF 发票:从 BigCommerce App Marketplace 安装 Sufio(设置方式同上文中的 Shopify)
- 如需自定义发票模板:前往 Marketing → Email Templates → Order Confirmation,并自定义默认电子邮件模板
- 如需管理 B2B 发票:从 App Marketplace 安装 Apruve 或 Balance — 这些工具可处理带净付款期限的发票,并自动收款
自定义/无头架构
选项 A:Stripe Invoicing(推荐用于 B2B)
Stripe Invoicing 可处理完整的生命周期 — 创建发票、生成 PDF、向客户发送电子邮件、跟踪付款,以及催收未付款的发票:
// Create and send an invoice via Stripe Invoicing
const invoice = await stripe.invoices.create({
customer: stripeCustomerId,
collection_method: 'send_invoice',
days_until_due: 30,
metadata: { order_id: orderId },
custom_fields: [
{ name: 'PO Number', value: poNumber },
{ name: 'Your VAT Number', value: buyerVatNumber },
],
footer: 'Thank you for your business.',
});
// Add line items
for (const item of order.lineItems) {
await stripe.invoiceItems.create({
customer: stripeCustomerId,
invoice: invoice.id,
amount: Math.round(item.total * 100), // cents
currency: 'usd',
description: item.description,
tax_rates: [stripeTaxRateId], // if using Stripe Tax
});
}
// Finalize and send — Stripe generates PDF and emails it automatically
await stripe.invoices.finalizeInvoice(invoice.id);
await stripe.invoices.sendInvoice(invoice.id);
客户会收到 Stripe 托管的发票页面,可通过银行卡、银行转账或其他方式付款。Stripe 会通过 Billing → Settings → Invoice reminders 自动催收(提醒支付未付款的发票)。
选项 B:PDF 生成服务(用于自定义品牌设计)
如果你需要完全掌控 PDF 的设计,可使用 PDFMonkey 或 Docspring:
// Generate a branded PDF using PDFMonkey
const response = await fetch('https://api.pdfmonkey.io/api/v1/documents', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.PDFMONKEY_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
document: {
document_template_id: process.env.INVOICE_TEMPLATE_ID,
status: 'pending',
payload: {
invoice_number: invoiceNumber,
issue_date: new Date().toISOString().split('T')[0],
due_date: dueDateString,
seller: { name: 'Your Company', address: sellerAddress, vat_number: sellerVat },
buyer: { name: customer.company_name, address: billingAddress, vat_number: buyerVat },
line_items: lineItems,
subtotal: order.subtotal,
tax_amount: order.taxAmount,
total: order.total,
},
},
}),
});
const { document } = await response.json();
// Poll for document.status === 'success', then retrieve document.download_url
第 3 步:确保符合欧盟 VAT 发票要求
欧盟 VAT 发票必须包含以下字段(请检查模板中是否都有):
- 连续的发票编号(无缺号)
- 发票日期
- 卖家名称、地址和 VAT 注册号码
- 买家名称和地址;买家的 VAT 号码(适用于欧盟境内的 B2B 跨境交易)
- 商品或服务说明
- 每项商品的单价、数量和行总额
- 每行商品的 VAT 税率和 VAT 金额
- 未含 VAT 的总金额
- VAT 总额
- 含 VAT 的总金额
Sufio 和 WooCommerce Germanized 都会自动处理这些要求。
最佳实践
- 使用连续且无缺号的编号,适用于已注册 VAT 的企业 — 许多税务机关要求编号连续;UUID 不符合规定
- 在创建发票时保存客户和卖家数据快照 — 如果客户之后更改地址,发票必须反映开具时的地址
- 以不可变方式存储发票 — 切勿修改已发送的发票;更正时应开具贷项通知单和替代发票
- 醒目地显示付款链接 — 银行账户信息、ACH 路由信息或立即付款链接应是 B2B 发票上最醒目的元素
- 自动同步到会计系统 — 使用 Sufio 内置的 QuickBooks/Xero 同步功能或 A2X 等工具,避免手动录入数据
常见问题
| 问题 | 解决方案 |
|---|---|
| 发票编号不连续(订单失败后出现间隔) | 使用 Sufio 或 WooCommerce PDF Invoices 等应用,这些应用有自己的连续编号计数器,不受订单状态影响 |
| 同一订单有多张重复发票 | 所有推荐的应用都支持幂等性:创建新发票前会检查该订单是否已有发票 |
| 欧盟增值税发票缺少必填字段 | 使用 Sufio(Shopify/BigCommerce)、WooCommerce Germanized(WooCommerce),或通过 custom_fields 设置增值税号的 Stripe Invoicing |
| PDF 文件太大,无法作为邮件附件 | 发票应用会高效地生成 PDF;问题通常是模板中的图片资源过大导致的,请压缩徽标 |
| QuickBooks/Xero 同步失败但没有提示 | 查看发票应用中的集成日志;大多数应用都有重试机制,并会在同步失败时向你发出提醒 |
| 客户回复发票邮件后没有收到回复 | 将发票发送地址设为有人监控的 [email protected],而不是 noreply@ 地址 |
相关技能
- @accounts-receivable-automation
- @tax-compliance-automation
- @payment-terms-optimization
- @stripe-integration
- @subscription-billing