mcpField
I
invoice-generation-automation

invoice-generation-automation

github.com/finsilabs文档处理6093 次安装6 天前更新
代码仓库

关于 invoice-generation-automation

这项实用技能指导电商商家自动生成和发送发票,并处理合规要求。内容涵盖平台工具选择、品牌化 PDF、增值税字段及会计工作流配置。

主要功能

  1. 01按平台选择发票工具
  2. 02自动生成并邮件发送发票
  3. 03品牌化 PDF 与模板设置
  4. 04欧盟增值税发票字段指南
  5. 05会计系统同步建议
  6. 06发票编号与存储规范

适用场景

  1. 01自动为已完成订单开具发票
  2. 02设置 B2B 或订阅发票
  3. 03准备符合欧盟增值税要求的发票
  4. 04将发票记录同步至会计软件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill invoice-generation-automation

安装后在 Claude Code 中输入/invoice-generation-automation确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

tile.json
evals/invoice-orchestrator-with-idempotency-an/
criteria.json
task.md
evals/pdf-rendering-with-puppeteer-and-handleb/
criteria.json
task.md
evals/sequential-invoice-numbering-with-no-gap/
criteria.json
task.md

详细介绍

发票生成自动化

概述

发票生成自动化可以将每笔已完成的订单自动转换为专业、带品牌标识的 PDF 发票,无需人工操作。对于 B2B 电商,发票是客户采购和会计工作流中必需的法律文件。在许多国家/地区,尤其是欧盟,法律要求使用特定的发票格式,并包含连续编号、增值税号和必填字段。所有主流平台都通过应用和插件支持发票自动化,通常无需编写自定义代码。

何时使用此技能

  • 当客户在购买后索要发票,而你仍在手动开具时
  • 当你构建的 B2B 电商业务要求在付款前或付款后开具发票时
  • 当你需要遵守欧盟增值税发票要求时
  • 当你需要与要求保存发票记录的会计软件(QuickBooks、Xero)集成时
  • 当订阅账单需要在每个计费周期生成发票时
  • 当你需要带品牌标识的专业 PDF,而不是支付处理商提供的默认发票样式时

核心说明

步骤 1:确定你的平台并选择合适的发票工具
平台推荐工具说明
ShopifyOrder Printer Pro 或 Sufio(Shopify App Store)Shopify 不提供原生发票 PDF;Order Printer Pro 是使用最广泛的免费选项;Sufio 支持欧盟增值税合规、会计同步和自动发送
WooCommerceWooCommerce PDF Invoices & Packing Slips(免费)或 WooCommerce Germanized(欧盟合规)免费插件可生成标准发票 PDF;Germanized 可添加符合德国/欧盟法律要求的发票格式
BigCommerceOrder Confirmation PDF(内置)+ 通过 API 使用 Sufio 或 Invoice NinjaBigCommerce 会发送默认订单确认单;Sufio 可添加带品牌标识且全面支持欧盟增值税的 PDF
基于 Stripe 的商店Stripe Invoicing(内置)Stripe 可自动生成、发送发票并追踪付款;非常适合 B2B 和订阅账单
自定义 / HeadlessStripe Invoicing API 或 Docspring / PDFMonkey(用于自定义 PDF 生成)Stripe Invoicing 可处理完整生命周期,包括催款;PDF API 可处理自定义设计
步骤 2:设置自动发票生成

Shopify

选项 A:Order Printer Pro(免费,基础版)

  1. 从 Shopify App Store 安装 Order Printer Pro
  2. 前往 Apps → Order Printer Pro → Templates,通过自定义发票 HTML 模板添加徽标、颜色和页脚文本
  3. 在 Settings 下配置自动打印触发条件——订单履行后,应用可以自动通过电子邮件向客户发送发票 PDF
  4. 对于欧盟增值税发票:该应用支持添加增值税号并使用合规格式;在 Settings → Tax settings 下启用此功能

选项 B:Sufio(推荐用于 B2B 和欧盟增值税合规)

  1. 从 Shopify App Store 安装 Sufio(付费,起价约为每月 19 美元)
  2. 前往 Sufio → Settings → Document templates,上传徽标并自定义字体、颜色和布局
  3. 在 Sufio → Settings → Automation 下配置发票的创建和发送时机:
    • 触发条件:Order paid 或 Order fulfilled
    • 操作:生成 PDF 并自动通过电子邮件发送给客户
  4. 对于欧盟增值税:前往 Sufio → Settings → Tax settings 并启用增值税发票模式——Sufio 会添加必需字段(连续编号、卖方/买方增值税号、逐项税额明细)
  5. 连接会计软件:前往 Sufio → Integrations,连接 QuickBooks Online 或 Xero——发票会自动同步
WooCommerce

选项 A:WooCommerce PDF Invoices & Packing Slips(免费)

  1. 从 WordPress.org 安装 WooCommerce PDF Invoices & Packing Slips(由 WP Overnight 开发,是最受欢迎的选项,安装量超过 500,000 次)
  2. 前往 WooCommerce → PDF Invoices → Documents → Invoice 并进行配置:
    • 为以下订单状态启用发票:新订单、处理中、已完成
    • 上传公司徽标
    • 设置发票编号格式(例如,年份前缀:2026-0001)
    • 添加公司详细信息(名称、地址、VAT 号码)
  3. 在 General 下,启用 Attach to order confirmation email — 订单状态变更时,系统会自动通过电子邮件发送发票
  4. 如需连续编号(欧盟 VAT 要求):前往 Invoice → Number 并启用连续计数器

选项 B:WooCommerce Germanized(符合欧盟 VAT 法规)

  1. 安装 WooCommerce Germanized — 此插件可确保全面符合德国/欧盟法规,包括法律要求的发票要素
  2. 在 WooCommerce → Germanized → General → VAT ID 下配置卖家的 VAT 号码
  3. 发票设置位于 WooCommerce → Germanized → Invoices — 配置编号、格式和自动化触发条件

同步到会计系统:

  1. 从 WooCommerce Marketplace 安装 WooCommerce QuickBooks Online 或 WooCommerce Xero
  2. 订单和发票会自动同步到你的会计系统
BigCommerce
  1. BigCommerce 默认会发送订单确认电子邮件 — 对 B2C 而言,这可作为基本发票
  2. 如需带品牌标识的 PDF 发票:从 BigCommerce App Marketplace 安装 Sufio(设置方式同上文中的 Shopify)
  3. 如需自定义发票模板:前往 Marketing → Email Templates → Order Confirmation,并自定义默认电子邮件模板
  4. 如需管理 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 发票必须包含以下字段(请检查模板中是否都有):

  1. 连续的发票编号(无缺号)
  2. 发票日期
  3. 卖家名称、地址和 VAT 注册号码
  4. 买家名称和地址;买家的 VAT 号码(适用于欧盟境内的 B2B 跨境交易)
  5. 商品或服务说明
  6. 每项商品的单价、数量和行总额
  7. 每行商品的 VAT 税率和 VAT 金额
  8. 未含 VAT 的总金额
  9. VAT 总额
  10. 含 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

评论

支持 Markdown