销售周期集成

使用 REST API 集成外部订单管理系统和销售周期的标准白名单方法与流程

1. 销售订单

Frappe 框架为所有 DocType 原生生成 REST API。此方法可用于创建销售周期的第一个文档。如果您从销售订单开始,可以使用标准的 REST API POST 请求来生成订单。示例如下,您可以根据需要在请求体中包含自定义字段和其他文档类型详情。

POST /api/resource/Sales Order

# Body
{
 "doctype": "Sales Order",
 "customer": "Test Customer",
 "company_address": "Test - Billing",
 "customer_address": "Test-Billing-3",
 "items": [{
 "item_code": "Mobile Display",
 "qty": 10,
 "rate": 2000,
 "delivery_date": "2022-11-06",
 "delivery_warehouse": "Stores - GTPL"
 }]
}

2. 交货单

如果您从交货单开始,请使用与上述销售订单相同的方法,只需将文档类型键值替换为 交货单 而不是 销售订单。如果您想从销售订单创建交货单,请使用以下端点。这里的 source_name 参数是销售订单 ID。

POST /api/method/erpnext.selling.doctype.sales_order.sales_order.make_delivery_note

# Body
{"source_name": "SO-2022-00001"}

该端点返回一个交货单 JSON 对象作为响应,其中包含订单中所有待交付的项目。

3. 销售发票

同样,如果您只是创建销售发票,最佳方法是使用标准 REST API。请参考销售订单部分提到的示例。

要从销售订单创建销售发票,请使用以下端点。这里的 source_name 参数是销售订单 ID。

POST /api/method/erpnext.selling.doctype.sales_order.sales_order.make_sales_invoice

# Body
{"source_name": "SO-2022-00001"}

要从交货单创建销售发票,请使用以下端点。这里的 source_name 参数是交货单 ID。

POST /api/method/erpnext.stock.doctype.delivery_note.delivery_note.make_sales_invoice

# Body
{"source_name": "SO-2022-00001"}

这两个端点都返回一个销售发票 JSON 对象,其中包含所有待开票的项目。

4. 针对订单或发票的付款

要针对销售订单或发票生成付款分录,请使用以下端点

POST /api/method/erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry

# Body
{
 "dt": "Sales Invoice",
 "dn": "SI-2022-0001",
 "party_amount": 2000, # Pass if the document doesn't have an `outstanding_amount` field (optional parameter)
 "bank_account": "Bank Name - CAB", # Pass is case want to use other than the default one (optional parameter)
 "bank_amount": 2000, # Paid or received amount depending on the type of payment entry (optional parameter)
 "party_type": "Customer", # If payment entry is against party type other than Customer or Supplier (optional parameter)
 "payment_type": "Pay", # Pay or receive (optional parameter)

}

促销方案

从版本 12 开始引入

促销方案是对一个或多个产品的临时折扣。

促销方案通过在有限时间内降低价格来吸引更多客户,帮助企业取得成功。在 ERPNext 中,可以轻松配置促销方案。促销方案与定价规则相关联,针对每个将生成定价规则的层级系统。

创建促销方案时,系统会创建一个定价规则。一个促销方案可以关联多个定价规则。在 ERPNext 中,促销方案是一种更简单的方法,用于根据不同的参与方和条件管理多个物料/物料组的定价。

要访问促销方案列表,请前往:

首页 > 销售 > 物料与定价 > 促销方案

前提条件

在创建和使用促销方案之前,建议先创建以下内容:

  1. 物料
  2. 物料组
  3. 客户
  4. 供应商

如何创建促销方案

  1. 前往促销方案列表,点击新建。
  2. 输入规则的标题。
  3. 选择应用对象,例如物料编码、物料组、品牌或交易。选择交易将把方案应用于交易的总金额。
  4. 根据“应用对象”,系统将允许您在表格中选择物料编码/物料组/品牌。
  5. 选择方案是用于销售、采购还是两者,并设置参与方信息。
  6. 在价格折扣层级表中,设置价格折扣、产品折扣。
  7. 用户还可以通过选择“在其他对象上应用规则”字段的值,将折扣应用于其他物料编码/物料组/品牌。
  8. 保存。

注意:保存促销方案时,会创建一个新的定价规则。

创建促销方案时的附加字段

混合条件

如果您选择了两个或多个物料,并设置了最小和最大数量。只有当物料的总数量与设置的数量匹配时,才会应用促销方案。例如,您为物料 1 和物料 2 创建了一个促销方案,并将最小和最大数量设置为 30,那么只有当总数量为 30 时,促销方案才会生效。

是否累计

启用此选项允许促销方案累计应用。您需要为此设置“最小金额”和“最大金额”。

考虑一个场景,最小金额为 1,500,最大金额为 2,000。现在,如果创建了一笔 1,400 的交易,则不会应用促销方案。但是,当创建第二笔金额为 600 的发票时,促销方案将被应用。这是因为发票的总(累计)金额达到了 2,000。请注意,折扣将仅应用于超过累计限额的最新交易。

如果客户多次购买某个物料,并且您希望通过折扣/特价来奖励他,此功能会很有用。

功能特点

在其他物料上应用方案

此功能检查第一个物料的条件,但将方案/折扣/费率应用于另一个物料。

例如,在“应用规则于”表格中设置物料1和物料2,并在“在其他对象上应用规则”中设置为物料3。现在,如果交易中包含物料1、物料2和物料3,由于前两个物料存在于交易中,定价规则将应用于物料3。

参与方信息

设置促销方案是用于销售还是采购物料。

根据您的选择,您可以设置适用于以下主数据之一。

  • 客户
  • 客户组
  • 区域
  • 销售合作伙伴
  • 营销活动
  • 供应商
  • 供应商组

有效期

您还可以设置促销方案有效的日期区间。这对于销售促销很有用。如果留空日期,促销方案将没有时间限制。

货币:在此处设置货币将导致促销方案仅在交易中使用相同货币时生效。

价格折扣层级

规则描述:输入描述以记录此促销方案的内容。

数量和金额

指定此促销方案适用时物料的最小数量、最大数量、最小金额或最大金额。

请注意,如果数量或金额低于或超过此处设置的限制,促销方案将完全不适用。但是,如果您启用了“混合条件”或“累计”选项,它将会被应用。

设置折扣/费率

  • 费率:这将是物料的新费率。例如,如果您以 100 的价格销售一个物料,并希望以 112 的价格销售给特定参与方,则选择费率并将费率设置为 112。
  • 折扣百分比:可以设置特定的折扣百分比。例如,对价值 500 的物料给予 10% 的折扣,最终价格为 450。
  • 折扣金额:将应用固定折扣金额。例如,如果您以 100 元出售某商品,并希望以 7 元的折扣出售,则可以使用“折扣金额”选项设置此条件。

设置折扣的筛选条件

  • 仓库:在此处设置仓库后,仅当所选商品来自此处指定的仓库时,促销方案才会生效。
  • 优先级:假设有一个商品组,您希望对该组中的某个特定商品设置特殊规则。这可以通过创建新的促销方案并设置更高的优先级来实现。
  • 建议阈值:系统将根据此阈值通知您调整商品数量以享受折扣。例如,如果最小数量是 10,阈值是 9,系统会提示您再添加 1 件商品以使折扣生效。这也适用于设置的金额。
  • 验证已应用规则:如果输入的价格对该商品无效,系统将不允许您应用不同的费率/折扣。

产品折扣层级

当购买其他商品时,有一件或多件商品免费,则适用产品折扣。此表格中的大多数字段与上一节相同。

其他选项包括:

  • 相同商品:如果您希望在购买某商品时赠送相同的商品(产品折扣),请启用此复选框。如果您希望赠送其他商品,请取消勾选并选择要免费赠送的商品。
  • 应用多个定价规则:要理解这一点,假设一个商品费率为 500。它有两个定价规则 P1 和 P2。P1 应用 10% 的折扣,P2 应用 5% 的折扣。启用此选项将在商品费率上总共应用 15% 的折扣,结果为 425。
  • 计量单位:仅当此处设置的计量单位与交易匹配时,促销方案才会生效。
  • 费率:供应商可能免费提供商品,但可能适用某些税费。在此处输入费率意味着客户需要支付适用的税费。

促销方案类型

价格折扣

在此类促销方案中,用户可以根据产品的最小数量、最大数量、最小金额和最大金额,选择以百分比或金额形式设置折扣。用户还可以配置方案,根据产品的数量或金额设置统一费率。

产品折扣

在此类促销方案中,用户可以在满足最小数量、最大数量、最小金额、最大金额等条件的情况下,选择在购买相同或不同产品时赠送免费产品。

如何配置促销方案(示例)

让我们通过一些示例了解如何在 ERPNext 中配置促销方案。

混合条件方案

客户 A 购买了 10 个 5 卢比的 Britannia 蛋糕包装和 5 个 10 卢比的 Britannia 蛋糕包装。现在,供应商希望给客户 A 10% 的折扣。该供应商还希望给购买了 15 个 5 卢比 Britannia 蛋糕包装的客户 B 10% 的折扣。

因此,供应商希望仅当客户购买了 15 个任意产品或者两种产品的总数量达到 15 时,才对 5 卢比和 10 卢比的 Britannia 蛋糕产品应用折扣。

ERPNext 中配置此方案的步骤如下:

  1. 将“应用于”设置为“商品编码”。
  2. 在“定价规则商品编码”表格中设置商品编码为 5 卢比 Britannia 蛋糕、10 卢比 Britannia 蛋糕。
  3. 启用“混合条件”字段。
  4. 在价格折扣表中,将最小数量、最大数量设置为 15。
  5. 将折扣类型设置为“折扣百分比”,费率为 10。

对其他商品应用折扣

客户 A 购买了 30 个 5 卢比的 Britannia 蛋糕包装和 2 个 15 卢比的 Britannia 蛋糕。供应商希望以统一费率 12 卢比销售 15 卢比的 Britannia 蛋糕产品。这里,15 卢比 Britannia 蛋糕的原价是 15 卢比。

供应商希望仅当客户购买了至少 30 个 5 卢比或 10 卢比的 Britannia 蛋糕产品时,才应用此规则。

在 ERPNext 中配置此方案的步骤如下:

  1. 将“应用于”设置为“商品编码”。
  2. 在“定价规则商品编码”表格中设置商品编码为 5 卢比 Britannia 蛋糕、10 卢比 Britannia 蛋糕。
  3. 将“在其他商品上应用规则”设置为“商品编码”,并将商品编码设置为 15 卢比 Britannia 蛋糕。
  4. 在价格折扣表中,将最小数量设置为 30。
  5. 将折扣类型设置为“费率”,费率为 12。

  1. 定价规则
  2. 客户
  3. 供应商
  4. 商品

计算销售团队激励

您可以使用自定义脚本计算销售团队的激励金额。

可在任何包含销售团队表的销售交易中使用:

cur_frm.cscript.custom_validate = function(doc) { // 计算每笔交易中每个人的激励金额 total_incentive = 0 $.each(wn.model.get(“Sales Team”, {parent:doc.name}), function(i, d) {

// 计算激励金额 var incentive_percent = 2; if(doc.grand_total > 400) incentive_percent = 4;

// 实际激励金额 d.incentives = flt(doc.grand_total) * incentive_percent / 100; total_incentive += flt(d.incentives) });

doc.total_incentive = total_incentive; }

销售员

销售人员是销售您的产品/服务的人员。

ERPNext 中,销售人员以层级结构创建。您可以创建销售人员,并在主销售人员下添加其他销售人员。

要访问销售人员列表,请前往:

首页 > 销售 > 销售 > 销售人员

也可以通过以下路径访问: 首页 > CRM > 设置 > 销售人员

1. 如何创建销售人员

  1. 前往销售人员列表,点击“新建”。
  2. 输入销售人员姓名。
  3. 为销售人员选择员工。
  4. 如果您希望在此销售人员下添加更多销售人员,请勾选“组节点”复选框。
  5. 点击“创建新”。

2. 功能特性

2.1 交易中的销售人员

您可以在销售交易中使用销售人员,例如销售订单、交货单和销售发票。 有关更多详情,请阅读《销售交易中的销售人员》。

2.2 为销售人员分配销售目标

您可以为销售人员分配销售目标并跟踪进度。有关更多详情,请阅读《销售人员目标分配》。

3. 相关主题

  1. 销售订单
  2. 销售人员目标分配
  3. 交货单
  4. 销售发票

公司间发票

公司间往来发票是在属于同一集团的组织之间进行的。

除了为单个公司创建采购发票或销售发票外,您还可以为多个公司创建相互关联的发票。

例如,您可以为“公司 ABC”创建采购发票,并针对此采购发票为另一家“公司 XYZ”创建销售发票,并将它们关联起来。

如何创建公司间发票

设置

  1. 前往:会计 > 主数据 > 客户

  2. 选择您希望用于关联发票的客户。

  3. 启用复选框 是内部客户,如下所示:

  4. 代表公司 字段中添加该客户所代表的公司。这是将为其创建销售发票的公司。

  5. 允许交易对象 表格中,添加您将为其创建采购发票的公司。

  6. 现在,当您针对公司 A 创建采购发票时(客户来自公司 B,卖方是公司 A),它将与使用来自公司 B 的此内部客户为公司 A 创建的销售发票相关联。

  7. 现在,您需要遵循类似的过程来设置用于关联发票的供应商。

  8. 前往:会计 > 主数据 > 选择供应商

  9. 勾选“是内部供应商”。

  10. 代表公司 字段中,添加您在客户的 允许交易对象 表格中添加的公司。

  11. 在供应商的 允许交易对象 表格中,添加客户所代表的公司。这是您将为其创建关联采购发票的公司。

  12. 以下是供应商公司的截图,以避免任何混淆:

创建发票

  1. 现在,创建一个新的销售发票,填写各个字段。
  2. 记住选择作为内部客户的客户以及他购买商品的公司。
  3. 保存并提交发票。 公司间发票
  4. 在创建 公司间发票 之前,您需要执行以下操作:
  5. 公司之间的销售和购买价格应保持一致。
  6. 前往 库存 > 价格表,为公司间交易创建一个新的价格表。
  7. 在此新价格表中同时勾选“销售”和“购买”。
  8. 前往 采购 > 供应商 > 内部供应商,在货币和价格表部分,将价格表设置为刚刚创建的新价格表。
  9. 对内部客户执行相同操作,即将价格表设置为新价格表。
  10. 现在,您可以创建公司间采购或销售发票。
  11. 创建 按钮下拉菜单中,您会找到一个链接 公司间发票,点击该链接后,您将被引导到一个新的采购发票表单页面。
  12. 在此处,供应商和公司将根据您在销售发票中选择的公司自动获取。

记住:每个公司只能有一个内部供应商或内部客户。

  1. 提交发票,完成!现在,两张发票已相互关联。 此外,取消任何一张发票时,关联也会中断。

注意:公司间发票只会影响会计分类账,而不会影响库存分类账。这是因为这些公司属于同一集团公司。

您可以按照相同的过程创建采购发票,然后从已提交的采购发票创建关联的销售发票。

  1. 销售发票
  2. 采购发票
  3. 公司间日记账分录

销售退货

已售商品被退回称为销售退货。

企业经常退回已售出的商品。这些商品可能因质量问题、未在约定日期交付或任何其他原因而被客户退回。

前提条件

在创建和使用销售退货之前,建议您首先创建以下内容:

  • 商品
  • 销售发票或交货单

如何创建销售退货

  1. 首先打开客户退回商品所对应的原始交货单/销售发票。 原始交货单
  2. 然后点击“创建 > 销售退货”,这将打开一张新的交货单,其中“是否退货”选项已勾选,商品、价格和税金均为负数。 针对交货单的退货
  3. 您也可以针对原始销售发票创建退货分录,以便在退货的同时生成贷项通知单,请在退货销售发票中勾选“更新库存”选项。 针对销售发票的退货
  4. 提交退货交货单/销售发票后,系统将增加指定仓库中的库存余额。为保持正确的库存估值,库存余额将根据退回商品的原始采购价格相应增加。 退货库存台账
  5. 对于退货销售发票,客户账户将被贷记,相关的收入和税金账户将被借记,如会计分类账所示。 退货库存台账

如果启用了永续盘存,系统还将针对仓库账户过账会计分录,以使仓库账户余额与库存台账中的库存余额同步。

通过交货单退货对库存的影响

针对交货单创建销售退货时:

  • 原始交货单及其关联的任何销售订单中的退货数量会更新。

  • 如果商品100%退回,原始交货单的状态将更改为已发出退货

  1. 采购退货
  2. 永续盘存

销售合作伙伴

销售合作伙伴是协助您开展业务的人员或公司。

ERPNext 中,销售合作伙伴可以用不同的名称来表示。您可以称他们为渠道合作伙伴、分销商、经销商、代理商、零售商、实施合作伙伴、转售商等。

对于每个销售合作伙伴,您可以定义佣金率。当在交易中选择销售合作伙伴时,其佣金将根据销售订单/发票或交货单的净总额进行计算。

要访问销售合作伙伴,请前往:

首页 > 销售 > 销售合作伙伴

如何创建销售合作伙伴

  1. 前往销售合作伙伴列表,点击新建。
  2. 输入销售合作伙伴名称和佣金率。
  3. 您还可以选择要创建的销售合作伙伴类型,以识别他们是转售商还是零售商等。
  4. 保存。

功能特性

地址与联系方式

您可以添加并跟踪销售合作伙伴的地址和联系方式。这些信息可以在销售合作伙伴的“地址与联系方式”部分中添加:

销售合作伙伴目标

您可以根据数量和金额,为每个物料组和区域分配目标。您可以按区域或月份分配目标,了解更多信息请参阅相关主题

在您的网站上展示销售合作伙伴

要在您的网站上显示合作伙伴的名称,请勾选“在网站上显示”复选框。当您点击“在网站上显示”时,会看到一个字段,您可以在其中上传合作伙伴公司的徽标,并输入合作伙伴的简要介绍,还可以选择添加内部用途/参考的描述。

要查看合作伙伴列表,请前往:

https://yourCompanyName.erpnext.com/partners

通过销售合作伙伴跟踪销售

销售合作伙伴可以积极为您公司的产品/服务生成潜在客户。要跟踪每个销售合作伙伴的表现,请使用如下所示的推荐代码及其 URL:

应将如下所示的 URL 发送给销售合作伙伴,以便他们在其网站/活动中使用。

例如,一个包含“sp”参数的 URL,如 http://xyz.erpnext.com?sp=speed,将捕获通过购物车生成的销售订单中的销售合作伙伴信息。

销售合作伙伴报告

销售合作伙伴佣金摘要

用于获取按销售订单划分的销售合作伙伴佣金数据。

销售合作伙伴交易摘要

用于获取按销售订单物料划分的销售合作伙伴佣金数据。

销售合作伙伴目标差异

此报告将根据销售订单/销售发票/交货单数据,为您提供销售合作伙伴的目标与实际绩效之间的差异。用户可以按期间查看此报告,例如月度、季度、半年度或年度。

  1. 销售人员目标分配
  2. 如何在 ERPNext 中记录支付给销售合作伙伴的佣金?

信用额度

信用额度是您愿意向客户提供的最大信用金额。

信用额度是金融机构或其他贷款人针对特定信贷额度向债务人提供的最大金额。从客户的角度来看,这是他们无需预先支付现金即可获得的最大商品或服务金额。

您可以在客户、客户组和公司中设置信用额度。当提交销售订单或销售发票时,将检查信用额度。

检查信用额度的优先级顺序如下:

  • 在客户中设置的信用额度
  • 在客户组中设置的信用额度
  • 在公司中设置的信用额度

如何设置信用额度

  1. 前往:销售 > 销售 > 客户 > 客户
  2. 在信用额度和付款条款部分,设置信用额度。
  3. 如果您将信用额度保留为默认值(即 0),则不会产生任何影响。
  4. 保存。 客户信用额度

功能

信用控制器

您可以允许具有特定角色的用户覆盖信用额度验证,并在客户的信用额度已完全使用的情况下提交销售订单或销售发票。

要设置信用控制器角色:

  1. 前往:会计 > 设置 > 账户设置
  2. 在信用控制器字段中设置角色。

绕过销售订单的信用额度检查

对于特定客户,您可以设置信用额度根据未结销售发票的累计金额进行检查,而不是根据销售订单。您可以通过勾选客户“信用额度和付款条款”部分中的“绕过销售订单的信用额度检查”复选框来实现。

客户组的信用额度

要在客户组级别设置信用额度:

  1. 前往 销售 > 客户 > 客户组
  2. 打开客户组并设置信用额度。

公司的信用额度

在公司级别设置信用额度后,所有客户将全局应用此信用额度。

要在公司级别设置信用额度:

  1. 前往 会计 > 主数据和账户 > 公司
  2. 打开公司并设置信用额度。
  1. 付款分录
  2. 客户

代发货

代发货 是一种供应链管理方法,零售商不自行备货,而是将客户订单和发货信息转交给制造商、其他零售商或批发商,由他们直接将商品发给客户。

代发货也可能发生在小型零售商(通常面向大众小批量销售)收到单个产品的大订单时。零售商可以安排由制造商或分销商直接将商品发给客户。代发货常见于高价商品。无论何种情况,零售商都不持有库存,仅充当中间人角色。本文将介绍 ERPNext 如何提供无缝的代发货体验。

假设一家公司经营电脑显示器业务。现在,零售商收到了客户 ABC Inc. 的订单,订购 1000 台 DELL 24 英寸显示器。

代发货实操:

物料配置

  • 设置物料并填写必要信息,同时禁用“维护库存”,因为该物料无需入库。
  • 接着,启用“由供应商交付(代发货)”。
  • 设置供应商,后续将针对此订单的履行创建采购订单。

销售流程:

  • 创建销售订单,填写客户、物料、数量、单价、税费等信息。

订单履行:

  • 直接在销售订单单据中,可以为此发货创建采购订单、跟踪交付情况,并向客户开具相应账单。

在 v16 版本之前,用户只能将整个采购订单标记为“已交付”。从 v16 版本开始,如果采购订单包含任何代发货物料,用户在提交后会看到一个新的选项“交付(代发货)”。点击此按钮将打开一个对话框,用户可以在其中输入供应商向客户交付的代发货物料数量。

如果之前因人为错误或自定义设置导致输入的数量有误,用户还可以在“数量变更”字段中输入负数。此按钮将一直可见,直到采购订单达到“已完成”状态或被手动关闭。

整批订单

总括订单是客户在一段时间内,以预先商定的价格供应特定物料的订单。

根据总括订单,可以按照客户提供的交货计划生成销售订单。总括订单有助于客户避免大量存储物料,同时允许他们通过在特定时间段内承诺数量来享受固定价格。

要访问总括订单,请前往:

首页 > 销售 > 销售 > 总括订单

前提条件


在创建和使用总括订单之前,建议您先创建以下内容:

  • 客户或供应商
  • 物料

如何创建销售和采购的总括订单


  1. 前往总括订单列表,点击“新建”。
  2. 在“订单类型”中选择“销售/采购”。
  3. 选择“客户/供应商”。
  4. 通过选择“开始日期”和“结束日期”来指定订单的有效期。
  5. 在物料表格中输入物料代码、数量和价格。您还可以为每个物料注明条款和条件。
  6. 提交。

功能特点


创建销售订单

一旦创建销售订单,“已订购数量”字段将更新。提交总括订单后,您可以通过点击创建按钮下的销售订单来创建新的销售订单。

创建采购订单

一旦创建采购订单,“已订购数量”字段将更新。提交总括订单后,您可以通过点击创建按钮下的采购订单来创建新的采购订单。

创建报价单

提交总括订单后,您可以通过点击创建按钮下的报价单来创建新的报价单。

仪表板

您可以通过仪表板查看针对此总括订单的采购订单、销售订单和报价单。

注意- 可以针对一个总括订单创建多个销售订单、采购订单和报价单。这些销售/采购订单或报价单可以按照常规的销售或采购流程进一步处理。但是,没有关闭总括订单的选项。

  • 销售订单
  • 采购订单