ERPNext电商集成

ERPNext 很容易与再 commerce 和电子商务平台集成,因为 ERPNext 中的业务数据可以通过 Frappe Framework REST API 获取。产品、客户、订单、发票、付款、发货、退货和库存变动都以 DocTypes 形式存储,而 DocTypes 可以通过标准 API 端点进行读取或更新。

这使得 ERPNext 成为处理翻新、二手、租赁、回购、转售或逆向物流流程的再 commerce 平台的实用后端。商店前端可以专注于客户体验,而 ERPNext 则负责管理库存、会计、履约、采购、退货和报表。

为什么集成很简单

  • 默认提供 REST API:外部系统无需直接访问数据库即可创建和更新 ERPNext 记录。
  • 商务记录已经存在:物料、客户、销售订单、销售发票、交货单、付款凭证、库存凭证和仓库都是 ERPNext 的标准记录。
  • 可以添加再 commerce 数据:诸如成色、等级、序列检查、翻新状态、保修、回购来源和转售渠道等字段可以通过自定义字段或 DocTypes 添加。
  • 同步可以自动化:Webhooks、计划任务和后台工作进程可以在系统之间同步订单、库存、付款状态、发货更新和退货信息。

常见的集成流程

  • 目录同步:将物料详情、价格、图片、成色和库存可用性从 ERPNext 发送到平台。
  • 订单同步:当订单下达时,在 ERPNext 中创建销售订单或销售发票。
  • 库存同步:当库存被预留、售出、退回、翻新或重新上架时,更新平台信息。
  • 履约同步:将发货和物流跟踪信息从 ERPNext 回传到平台。
  • 退货和回购:使用库存凭证、采购收货单、质量检验或自定义 DocTypes 跟踪入库商品。

现成的市场应用选项

在构建自定义连接器之前,请先检查现有的 Frappe Marketplace 应用是否已经覆盖了所需的工作流程:

  • 电子商务集成:适用于 ERPNext 的电商市场集成。
  • WooCommerce 连接器:与 WooCommerce 同步物料、库存、客户、地址、销售订单、销售发票和付款凭证。
  • ERPNext 物流:适用于 ERPNext 的物流集成,对履约和跟踪很有用。
  • Frappe Paystack:适用于 ERPNext 和 Frappe 的支付网关集成。

何时构建自定义连接器

当再 commerce 平台具有独特流程(如设备分级、序列化翻新、以旧换新定价、保修跟踪、特定市场的上架规则或逆向物流)时,应构建自定义连接器。在大多数情况下,连接器将平台事件映射到 ERPNext 文档,并通过 REST API 安全地调用。

最佳实践

  • 将 ERPNext 作为库存和会计数据的唯一真实来源。
  • 使用稳定的外部 ID 来匹配 ERPNext 记录与平台记录。
  • 记录每次同步尝试,以便重试失败的更新。
  • 使用权限受限的 API 密钥,并在上线前在测试环境中进行测试。
  • Frappe REST API
  • 销售订单
  • 物料
  • 库存凭证
  • Frappe Cloud 市场

门店落地页

为您的应用启用购物车后,您可以使用网页构建器为您的
商店创建一个自定义着陆页。


自定义商店着陆页

1. 如何创建自定义商店着陆页

  1. 按照此处提到的步骤创建一个网页。
  2. 为您的页面设置一个路由(例如:/store)。
  3. 将内容类型选择为 页面构建器
  4. 在页面构建块表格中点击“添加行”。
  5. 选择一个网页模板。

ERPNext 附带了一套强大的标准网页模板,可用于创建您的网页。

上图中页面的配置如下所示:


商店页面构建块

  1. 添加值。

点击每个块右侧的“编辑值”按钮,并在对话框中输入值,以
设置每个部分的内容。

对构建您的商店着陆页有用的网页模板包括:

  • 主横幅轮播:
    最多可创建 5 张幻灯片。每张幻灯片的图片、标题、主要操作、对齐方式和主题
    均可配置。

    主横幅轮播配置

  • 产品分类卡片:
    最多可配置 8 张产品分类卡片。每个产品分类将链接到一个
    项目组。
    请确保在项目组表单中勾选了 在网站上显示 选项,以便
    生成产品分类的路由。


产品分类配置

  • 项目卡片组:
    此部分可用于展示您的精选项目。最多可配置 12 张卡片。
    每张卡片将链接到一个项目。如果勾选了 精选
    该项目将占据 2 列的空间。


项目卡片配置

  1. 发布您的网页。

只有在勾选了“已发布”选项时,网页才会被发布。
页面发布后,点击侧边栏上的 在网站上查看 或访问配置的路由
来查看页面效果!


发布您的网页

  1. 将其设置为您的主页。

按照此处的步骤将此页面
设置为您的网站主页。

安装RediSearch以启用快速电商搜索

实验性功能

ERPNext 的电子商务模块可选使用 RediSearch 来实现搜索功能,该功能可通过 电子商务设置 进行配置。

一旦安装并配置完成,RediSearch 将用于增强电子商务网站的搜索功能。这包括模糊搜索、自动补全、结果排序以及可自定义的字段索引等功能。

前提条件

  1. Frappe 框架 + ERPNext 环境
  2. Redis 6+

安装说明

$ git clone --recursive https://github.com/RediSearch/RediSearch.git
$ cd RediSearch
$ sudo make setup # Remove `sudo` on macOS
$ make build

请注意:最新版本的 RediSearch 需要 Redis 7.1+,而截至 2023 年 8 月 1 日,snap 仓库中可用的稳定版 Redis 为 7.0。因此,需要从源码编译 Redis 才能使 RediSearch 与 Redis 兼容。

另外请注意,ERPNext 需要 Redis 6+,因此使用 Redis 7.1+ 可能会导致问题。请谨慎使用 Redis 7.1+。

成功完成上述步骤后,将在 redisearch.so 目录中生成一个名为 RediSearch/build 的二进制文件。

将此二进制文件移动到 /etc 目录,然后重启您的 Frappe 服务器:

sudo mv build/redisearch.so /etc/

现在,打开位于 config 目录(在 bench 目录内)中的 redis_cache.conf 文件。在 save "" 行之前添加以下行,然后重启 bench 服务器:

loadmodule /etc/redisearch.so

这将在启动时加载 redisearch 模块。您可以通过在 redis-cli -p 13000 中运行以下命令来检查模块是否成功加载(假设端口为 13000,这是 frappe 配置中 redis 的默认端口):

> MODULE LIST

并且 search 应该是模块之一。

您也可以在正在运行的 redis 实例上加载该模块,方法是在 redis-cli 中运行以下命令:

> MODULE LOAD /etc/redisearch.so

我们将 redisearch.so 模块放置在 /etc 目录中,但它可以放在文件系统的任何位置。我们使用此目录是因为将来 loadmodule 行会自动填充到配置文件中,并且它会假定二进制文件位于 /etc 目录中。

更详细的说明可以在这里找到。

电商搜索

所有产品列表页面都包含一个搜索栏,用户可以通过它快速搜索网站商品或商品组。搜索栏还会保存最近的搜索记录,方便您点击并再次使用。

RediSearch

实验性功能:需要 Redis 6 或更高版本

默认情况下,ERPNext 执行简单的数据库搜索,但您可以选择使用 RediSearch 来实现超快速搜索。您可以参考 RediSearch 的安装文档。

前往 > 电商设置 > 商品搜索设置 > 勾选启用 RediSearch

未启用 RediSearch 时的设置

如果未安装 RediSearch,商品搜索设置界面将如下所示:

可配置字段

除了快速搜索之外,您还可以配置希望搜索功能考虑的字段。在搜索索引字段文本框中添加逗号分隔的字段,即可使这些字段变为可搜索。

例如:将品牌添加到这些字段中,即可按品牌进行搜索。输入品牌名称(如“Apple”)后,系统应返回品牌为“Apple”的结果。

搜索结果将基于搜索索引字段文本框中列出的所有字段的值。

支持以下类型的字段:链接表格多选数据小文本文本编辑器

评价与评分

反馈对于衡量所售产品的公众评价非常重要。您可以通过在网站商品页面添加评论和评分来衡量产品的表现。要启用此功能,请前往:

电子商务设置 > 附加组件 > 启用评论和评分

完成此操作后,每个网站商品页面都将提供对产品发表评论的功能。

谁可以发表评论?

系统中同时是客户的用户将能够看到撰写评论按钮。这些用户还必须具有客户角色才能被允许添加评论。

系统会自动计算平均评分,并显示汇总信息。

心愿单

ERPNext 为用户提供了在其网上商店启用心愿单功能的选项。要启用此功能,请前往:

电商设置 > 附加功能 > 启用心愿单

用户可以通过以下位置的心愿单图标将网站商品添加到心愿单:

商品列表页面

网站商品详情页

如上图所示,导航栏中提供了心愿单页面的链接。用户可以从心愿单中移除商品,或将商品移至购物车。


心愿单页面

此功能要求用户必须登录。访客用户将根据电商设置中的访客显示设置部分被重定向。

按类别选购

ERPNext 自带一个按分类购物/shop-by-category)页面,用户可以根据自己的需求直接导航到相关产品,而无需立即使用筛选器。

要设置此页面(选项卡中的)分类,请前往:

电商设置 > 筛选器和分类

筛选器和分类部分,确保已启用启用字段筛选器(分类)。分类从网站物料字段表中提取。字段筛选器(如物料组、品牌等)会在此页面上作为分类复用。

完成此操作后,您将相应地在按分类购物页面(/shop-by-category)上看到选项卡。

此外,您还可以通过电商设置中的按分类购物部分,为此页面添加幻灯片(如上所示)。

获取分类中的记录

物料组

由于物料组具有树形结构,其处理方式略有不同。当以下条件全部满足时,才会获取物料组记录:

  • 物料组中已启用在网站显示字段
  • 物料组是最顶层的组节点(已启用是组且父级为“所有物料组”)或最顶层的叶节点(已禁用是组且父级为“所有物料组”)

每个卡片都会链接到相应的物料组页面。

其他分类

其他分类的记录会直接获取,不受限制。如果您也想在此处隐藏某些记录(例如在品牌中),可以添加自定义的在网站显示字段,系统将过滤掉已禁用此字段的记录。

通过链接字段链接到网站物料的自定义文档类型,也可以与物料组、品牌等一起包含在此处。

购物车

除了列出产品,ERPNext 还支持通过购物车进行销售。

要启用购物车,请前往:

电子商务设置 > 购物车

您甚至可以在自定义路径(例如 /store)为您的商店构建一个着陆页
了解更多。

1. 商品类型

购物车对于有变体和无变体的商品,其工作方式有所不同。

1.1 无变体的商品

无变体的商品拥有专属的产品页面和一个添加到购物车按钮。


无变体的商品

1.2 有变体的商品

由于商品模板不能直接购买,因此提供了一个配置按钮,用于
选择具体的变体并将其添加到购物车。


有变体的商品

2. 购物车询价

如果禁用了结算功能,当您的客户将商品添加到购物车后,他们可以点击
请求报价按钮来获取该商品的报价。系统会生成一份报价单。

3. 购物车结算

您可以在电子商务设置的“结算设置”部分启用结算功能。


购物车结算

按项目组分类的产品列表

/all-products 中的产品列表类似,ERPNext 也提供按物料组(Item Group)划分的产品列表页面。您可以将这些页面链接到您的落地页,方便用户直接访问。

设置物料组页面

要为某个物料组(例如“产品”)提供产品列表页面,请执行以下操作:

物料组列表 > 产品

  • 启用 在网站中显示
  • 向下滚动到 网站筛选器 部分,添加与电子商务设置类似的字段和属性筛选器。
  • 您还可以在富文本编辑器中添加描述,该描述将作为横幅显示在产品列表上方。

现在,如果您点击当前文档左上角图片上方的 在网站上查看 链接,您将被重定向到 产品 物料组的列表页面。

产品可见性

假设物料组 产品 下有子物料组 移动服务手机

产品 页面上可见的网站商品包括:

  • 物料组为 产品 的商品
  • 网站物料组 表中包含 产品 的商品。

物料组为 移动服务手机 的网站商品将显示在各自对应的页面上。这些页面会链接到 产品 页面中。

子物料组(如 移动服务手机)将作为标签(胶囊按钮)显示在 产品 页面搜索栏上方。

产品列表

ERPNext 提供了一个产品列表页面,您的客户可以在此浏览您的
产品。如果您的系统中已发布网站商品,该页面默认启用。

您可以通过访问 /all-products 路由来查看产品列表。例如,
https://apple.erpnext.com/all-products

在新版产品列表中,操作按钮仅在鼠标悬停于卡片上时才会显示。

这里有两种视图可供切换:

产品列表视图

列表视图可以包含更多附加信息,例如简短描述,该描述可在网站商品的网站简短描述字段中填写。

产品列表视图

产品网格视图


产品网格视图

筛选器

此页面还会在产品旁边显示筛选器。这里可以看到三种类型的筛选器:字段筛选器属性筛选器折扣筛选器

  • 字段筛选器属性筛选器可以在电商设置的“筛选器和分类”部分进行配置。
  • 折扣筛选器会根据产品上应用的折扣自动生成,无需任何配置。