我如何为 Medusa v2 构建 Lexware Office 集成

发布: (2026年5月3日 GMT+8 18:05)
4 分钟阅读
原文: Dev.to

Source: Dev.to

介绍

我在慕尼黑经营一家花店,最近把整个电商系统迁移到了 Medusa v2。店铺、订阅服务、后台——一切现在都运行在 Medusa 上。

唯一完全缺失的东西是:与 Lexware Office(德国小企业最流行的会计软件)的连接。每笔订单都需要手动创建发票。每天 5–10 笔订单,这工作很快就会让人厌倦。

于是我打造了 LexBridge——一个开源的 Medusa v2 插件,能够自动化整个开票流程。

功能概述

当客户下单时,插件会:

  • 在 Lexware 中查找客户(若不存在则创建新联系人)
  • 根据所有商品行、税率和付款条件生成发票
  • 从 Lexware 下载完成的 PDF
  • 将发票引用存入数据库

所有配置均可通过 Medusa 管理后台完成——安装后无需修改代码。

难点

德国税率

德国对食品/花卉适用 7 % 税率,对其他商品适用 19 % 税率。一次订单中可能包含不同税率的商品。插件支持 taxRateOverride 回调,允许你为每个商品行自定义逻辑。

按支付方式设置付款条件

使用 PayPal 支付的客户应“立即到期”,而使用发票付款的 B2B 客户则应“14 天后到期”。插件可以针对不同支付提供商进行配置。

Lexware API 的怪癖

该 API 的速率限制为 每秒 2 次请求,且经常返回 503 错误。插件通过指数退避和自动重试来处理这些情况。

幂等性

Medusa 可能会多次触发 order.placed 事件。对 order_id 的唯一约束确保每个订单只会生成一张发票。

免费版与专业版

  • 核心功能 – 完全免费且开源(MIT 许可证)。
  • 专业版 – 增加了信用凭证、干运行模式、Webhook 同步和邮件通知等高级功能。这个小额付费层用于支持持续开发,同时保持核心功能对所有人免费。

技术栈

  • Medusa v2 模块,包含自定义服务、订阅者和管理后台 UI
  • 全程使用 TypeScript
  • 使用 AES‑256‑GCM 加密存储在数据库中的 API 密钥
  • Nodemailer 负责 SMTP 邮件发送
  • 管理后台使用 Medusa 原生 UI 组件构建

尝试使用

npm install medusa-lexbridge
  • GitHub:
  • Website:
  • npm package:

如果你在德国/DACH 区域运营 Medusa 商店并且需要对接 Lexware,这个插件可能会为你省下大量手动工作。欢迎提供反馈和贡献代码!

0 浏览
Back to Blog

相关文章

阅读更多 »

自己制作框架,有什么建议吗?

《Making my own framework》的封面图片。有什么建议吗?https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fde...