ERPNext 的设计目标是与其它应用程序集成。由于 ERPNext 构建在 Frappe 框架之上,业务记录通过一致的 REST API 暴露出来。这使得将 ERPNext 与外部系统(如 CRM 平台、物流供应商、订单管理系统、再商务平台、Google 服务、银行系统、支付网关以及内部业务应用程序)连接变得非常简单。
为什么 ERPNext 易于集成
大多数 ERPNext 业务对象都是 DocType。客户、物料、销售订单、采购订单、销售发票、交货单、付款条目、库存条目、项目以及许多其它记录都遵循相同的文档模型。Frappe 自动为 DocType 提供 REST API 访问,因此集成可以通过可预测的端点读取、创建、更新和删除记录。
这意味着第三方应用程序不需要为每个 ERPNext 模块单独定制 API。一旦外部系统知道 DocType 和字段名称,它就可以使用标准的 HTTPS 请求和 JSON 数据与 ERPNext 交换数据。
在 ERPNext 中添加的自定义字段会成为 DocType 元数据的一部分,并立即可用于集成。例如,如果企业在销售订单上添加了自定义字段 marketplace_order_id 或在交货单上添加了 courier_tracking_id,第三方应用程序就可以通过用于标准字段的同一 REST API 发送和接收这些值。
当 ERPNext 连接到需要自己的标识符、状态、引用或运营数据的外部系统时,这一点尤其有用。自定义字段让团队能够扩展 ERPNext,而不会破坏标准数据模型。
REST API 如何工作
Frappe 为 DocType 提供 REST API 端点。第三方应用程序可以使用 API 密钥和 API 密钥进行身份验证,然后调用端点来列出文档、获取特定文档、创建新记录、更新现有记录,或在权限允许的情况下删除记录。
常见的集成模式包括:
- 从 ERPNext 读取: 获取客户、物料、价格、库存水平、发票或付款状态。
- 写入 ERPNext: 创建潜在客户、客户、销售订单、采购订单、交货单、付款条目或支持工单。
- 更新 ERPNext: 发送物流更新、对账参考、银行交易 ID、市场订单 ID 或履行状态。
- 响应 ERPNext 事件: 使用 Webhook 在文档被创建、更新、提交或取消时通知其它应用程序。
集成示例
- CRM: 在 ERPNext 和销售 CRM 之间同步潜在客户、商机、客户、报价和跟进状态。
- 物流: 将交货单或发货请求发送到快递平台,并将跟踪号接收回 ERPNext。
- 订单管理: 将订单从订单管理系统推送到 ERPNext 作为销售订单,然后将履行和发票状态发送回去。
- 再商务平台: 同步产品目录、客户订单、库存可用性、退货、翻新状态和付款。
- Google 服务: 将 ERPNext 与 Google Workspace、Google 日历、Google 表格或报告工作流连接。
- 银行和支付系统: 导入银行交易、更新付款参考、对账付款,或连接收款工作流。
典型集成流程
- 确定涉及的 ERPNext DocType,例如客户、物料、销售订单、交货单、销售发票、付款条目或自定义 DocType。
- 映射 ERPNext 和外部应用程序之间的字段,包括业务流程所需的任何自定义字段。
- 在 ERPNext 中创建一个集成用户,仅授予集成所需的角色和权限。
- 为该用户生成 API 凭据,并安全地进行 API 调用身份验证。
- 使用 REST API 端点根据需要创建、获取、更新或删除记录。
- 使用 Webhook 或后台作业进行事件驱动的同步、重试和异步处理。
良好实践
- 使用专用的集成用户,而不是管理员账户。
- 应用基于角色的权限,以便集成只能访问其需要的记录。
- 将外部 ID 存储在自定义字段中,以便更轻松地进行对账和故障排除。
- 将集成设计为幂等的,以便重试请求不会创建重复记录。
- 对于高容量工作流,使用 Webhook 或队列,而不是让所有操作都同步进行。
- 记录请求 ID、外部引用和错误消息,以便快速追踪失败。
相关主题
- Frappe REST API
- 基于令牌的身份验证
- Webhook
- 通过 API 插入文档
- 自定义字段