ERPNext + AtoShip
在 ERPNext 里直接比较各大承运商实时运费、购买面单、批量发货并追踪—— 订单进来就发货,物流单号自动回写到 Sales Order。全部在 ERPNext 内完成,无需在两个后台之间来回切换。
工作原理
「atoship for ERPNext」是一个自托管的 Frappe 应用,它就像 Shopify、WooCommerce 应用发货店铺订单一样, 直接发货你的 ERPNext Sales Order(销售订单)。atoship 是一个轻客户端:所有比价、承运商路由和面单生成 都跑在 atoship 的 v1 API 上,界面里始终只会显示各大真实、知名品牌承运商,绝不显示背后的聚合商。
提交 Sales Order
销售订单进入 ERPNext,等待发货
比价并购买面单
对比各大承运商实时运费,一键或批量购买
物流单号回写并追踪
承运商与物流单号写回 Sales Order,随时追踪

Ship Queue 发货工作台(/app/atoship-ship)—— 所有订单一张表发完。

销售订单里的实时比价 —— 在订单页内比价并直接购买。
安装
这是一个自托管的 Frappe 应用,通过 git 安装——不需要 OAuth 授权,也没有应用市场「连接店铺」的流程。 在你的 Frappe 服务器上运行 bench 命令即可。
第 1 步 — 通过 git 安装 Frappe 应用
在你的 Frappe/ERPNext 服务器(自托管或 Frappe Cloud)上,把 your-site替换成你的站点名,依次执行:
bench get-app https://github.com/atoship/atoship-for-erpnext
bench --site your-site install-app atoship_shipping
bench --site your-site migrate仓库是公开且 MIT 许可的(atoship_shipping 为应用 ID)。 安装完成后,「Atoship Settings」等界面会出现在你的 ERPNext 里。
第 2 步 — 获取 atoship API 密钥
登录你的 atoship 后台,在 设置 里创建一个 API 密钥。用于正式发货请使用ak_live_… 密钥;想先空跑试一试, 可以用 ak_test_… 测试密钥。
请确保你的 atoship 钱包已充值——面单费用从钱包扣款,没有按面单收取的月费。
配置 Atoship Settings
在 ERPNext 中打开 Atoship Settings,完成一次性配置:
- 粘贴上一步创建的 API 密钥
- 点击 Test Connection 验证密钥并确认钱包已连通
- 设置默认的 Ship-From Address(发货地址)
- 设置默认的箱型 / 重量,以及面单格式(label format)
API 密钥
atoship 用它对所有比价与购买请求进行身份验证。ak_live_…会真实购买并从钱包扣款;ak_test_… 只做空跑,不产生费用。
Test Connection
一键校验密钥是否有效、钱包是否已连通。在开始发货前建议先跑一次,确认配置无误。
Ship-From Address(发货地址)
比价与购面单默认使用的发货地址。在 Sales Order 表单和 Ship Queue 里,你仍可以按单切换发货地址。
默认箱型 / 重量与面单格式
设定默认的包裹尺寸、重量和面单格式(如 4×6 热敏或 PDF)。发货时会自动带入,需要时再逐单调整即可。
在哪里使用
安装后,发货能力会出现在 ERPNext 的三个地方——从单张订单到整批发货都覆盖到了。
1. Sales Order 表单
在销售订单页面新增一个 「Ship with atoship」按钮:获取实时运费 → 选择一个 → 购买。 之后即可 Print Label(打印面单)、Update Tracking(更新物流)、Track Package(追踪包裹)。运费会被缓存,重新打开时秒开。
2. Sales Order 列表
勾选多张订单,通过 Actions →「Ship with atoship」 批量购买面单; 列表上还有一个 「Open Ship Queue」 按钮,一键进入发货工作台。
3. Ship Queue(发货工作台)
一个原生页面(/app/atoship-ship),把所有已提交、未发货的订单 汇总到一张表里,成为完整的履约工作台:
- 每行可单独设置发货地址(ship-from),可编辑重量 / 尺寸
- 自动获取一个运费,可随时切换到其它承运商 / 服务
- 签名(signature)与保险(insurance)开关
- 一键 Ship 发货;勾选多行后,用底部固定的批量操作栏一次性全部购买
- 已发货的行显示物流单号 + Print(打印)+ Cancel(作废并退款)
同步的内容
ERPNext → atoship
- Sales Order 单号、日期与金额
- 收货地址与联系人
- 订单行项目(含商品、数量)
- 包裹重量 / 尺寸(可按单覆盖)
- 发货地址(ship-from)
atoship → ERPNext
- 物流单号、承运商 + 服务名称
- 面单 PDF(用于打印 / 重新打印)
- 物流状态与追踪链接
- 作废 / 退款结果
物流单号与承运商会直接回写到对应的 Sales Order 上——发货、追踪、打印都留在 ERPNext 里,无需另装追踪插件。
功能亮点
多承运商比价
同一批包裹同时对比各大承运商的实时运费,挑最合适的下单。
一键 + 批量购买面单
单张订单一键发货,或在 Ship Queue 里勾选多单,用批量操作栏一次性全部购买。
物流单号回写
承运商、服务与物流单号自动写回 Sales Order,团队在 ERPNext 里就能追踪。
签名与保险
发货时按需勾选签名(signature)与保险(insurance),逐单可控。
作废与退款
未使用的面单可一键作废(Cancel),费用退回你的 atoship 钱包。
折扣价 · 无月费
享受 atoship 的折扣运费,从钱包扣款,没有按面单收取的月费。
仅限包裹快递;货运 / LTL(整车 / 零担)不在此集成范围内。
故障排查
Test Connection 失败
请确认 API 密钥是从 atoship 后台原样复制的(不带多余空格),并且服务器能访问公网。 想空跑测试时用 ak_test_…,正式发货再换成ak_live_…。
安装后看不到 Atoship 界面
确认三条 bench 命令都成功执行了,尤其是最后的bench --site your-site migrate。 之后运行 bench --site your-site clear-cache并刷新浏览器。
取不到运费
请确认已设置默认的 Ship-From Address,且订单填写了收货地址、重量与尺寸。缺少重量 / 尺寸时运费会不准确, 可在 Sales Order 表单或 Ship Queue 里逐单补充后再重新获取。
购买时提示余额不足
面单费用从 atoship 钱包扣款。请先在 atoship 后台为钱包充值,再回到 ERPNext 购买面单。
环境要求
- ERPNext v15 或更高版本(自托管或 Frappe Cloud)
- 可执行 bench 命令的服务器访问权限
- 一个 atoship 账户,钱包已充值
- atoship API 密钥(
ak_live_…正式 /ak_test_…测试)
bench get-app 安装。应用 ID:atoship_shipping· ERPNext v15+ · MIT