限制销售用户只能查看特定客户和交易

当销售用户只需处理指定的潜在客户、客户以及关联这些客户的销售交易时,请使用用户权限。销售员记录适用于目标、佣金和销售团队表,但仅分配销售员本身并不会创建记录级别的访问限制。

本指南以销售用户 Avery Stone 为例。Avery 可以处理 Northstar Retail、Summit Digital Stores 以及两个分配的潜在客户,但不能处理销售组合中的其他部分。

开始之前

  • 您需要系统管理员或同等权限来管理用户和用户权限。
  • 用户必须是系统用户,并拥有其工作所需的角色。
  • 首先创建相关的客户和潜在客户。
  • 决定是按客户逐一维护访问权限,还是通过区域等分组主数据来维护。

角色和用户权限执行不同的任务。 角色授予对文档类型的访问权限。用户权限则限制用户可访问该类型中的哪些记录。

1. 为用户分配所需的销售角色

  1. 打开用户并选择该销售用户。
  2. 打开角色与权限
  3. 启用销售用户
  4. 仅当该人员需要执行相应操作时,才添加其他角色。例如,不要仅仅为了让工作区可见而分配销售经理角色。
  5. 保存该用户。

销售用户角色通常根据配置的角色权限管理器提供对销售主数据和交易的访问权限。在后续步骤中添加的用户权限将缩小该访问范围。

2. 打开用户权限

转到用户和权限 > 用户权限,然后选择添加用户权限

您也可以打开该用户,然后使用权限 > 设置用户权限。两种方式都会创建相同的用户权限记录。

3. 允许分配给销售用户的客户

为用户组合中的每个客户创建一个用户权限:

  1. 用户中,选择该销售用户。
  2. 允许设置为客户
  3. 中,选择一个允许的客户。
  4. 保存该用户权限。
  5. 为每个额外的客户重复此操作。

例如,Avery 对 Northstar Retail 和 Summit Digital Stores 分别拥有权限。ERPNext 会合并同一主数据的权限,因此 Avery 可以访问任一客户。

为何这也限制了销售交易

客户与报价、销售订单、交货单和销售发票等文档相关联。当用户的角色应用用户权限时,客户限制会传递到这些关联文档中。

这意味着您通常不需要为每个销售订单或销售发票创建单独的用户权限。维护好客户组合,限制就会跟随客户关联关系生效。

4. 单独添加潜在客户权限

潜在客户还不是客户。因此,客户权限无法决定用户可以访问哪些尚未转化的潜在客户。

为每个分配的潜在客户创建一个单独的用户权限:

  1. 选择同一个销售用户。
  2. 允许设置为潜在客户
  3. 中选择允许的潜在客户。
  4. 保存并为该用户的其他潜在客户重复此操作。

当潜在客户转化后,将生成的客户添加到用户的客户权限中。根据您的保留策略审查旧的潜在客户权限。

5. 将限制应用于关联的文档类型

当客户权限应限制所有包含客户关联的受支持文档时,请保持应用于所有文档类型为启用状态。

仅当权限必须应用于特定文档类型时,才清除此选项。清除后,在适用于中选择该文档类型。例如,将客户权限限制为仅适用于销售订单,则不会在报价、交货单和销售发票上提供相同的限制。

6. 审查完整的组合

打开用户权限列表并按用户筛选。确认每个允许的客户和每个未转化的潜在客户都只出现一次。

在此示例中,Avery 可以访问:

  • Northstar Retail 和 Summit Digital Stores;
  • 关联到这些客户的销售交易;以及
  • 潜在客户 CRM-LEAD-2026-00001 和 CRM-LEAD-2026-00002。

Avery 不应获得包含组合中其他部分的宽泛客户、客户组或区域权限。宽泛的权限会扩大访问范围,而不是覆盖单个客户权限。

7. 在移交账户前验证访问权限

不要假设保存的权限会产生预期的结果。

  1. 打开该用户。
  2. 选择权限 > 查看允许的文档
  3. 检查客户、潜在客户、报价、销售订单、交货单和销售发票。
  4. 确认允许的记录出现,且无关的客户不会出现。
  5. 测试用户实际会使用的列表视图和报表。

作为最终的安全检查,请使用具有相同角色和权限的非管理员测试用户登录。系统管理员和管理员账户可以绕过限制,不适合用于验证销售人员的体验。

访问权限如何确定

配置项 控制内容
销售用户角色 可用的销售单据类型和操作
客户用户权限 用户可以访问的客户及与客户关联的交易
潜在客户用户权限 用户可以访问的特定未转化潜在客户
应用于所有单据类型 允许的值是否限制所有支持的关联单据类型
适用于 将一个用户权限限制在选定的单据类型上
启用严格用户权限 控制具有空白限制链接的记录是否仍然可见

当有多个客户时

单个客户权限精确且易于审计,但当客户组合发生变化时需要维护。如果客户和潜在客户按区域清晰划分,请改为为相应的区域创建用户权限。除非启用了隐藏子级,否则父级区域也可以包含子级区域。

仅当分组主数据与实际访问边界匹配时才使用它。如果客户组主要用于定价或报表,并且包含属于多个销售人员的客户,则不要将其用于访问控制。

客户或区域为空的记录

检查系统设置中的启用严格用户权限。当启用严格权限时,具有空白限制链接的记录将被隐藏。当未启用时,限制链接为空的记录可能仍然可见。

在启用此设置之前,请检查集成和旧数据中是否缺少客户或区域值。测试对所有团队的影响,因为这是一个系统级别的设置。

故障排除

问题 检查内容
用户仍然可以看到所有客户 检查是否存在更宽泛的客户、客户组或区域权限。确认用户的角色已启用应用用户权限。
用户无法打开任何销售交易 确认销售用户角色授予了读取权限,并且交易包含允许的客户。
用户可以看到链接为空的不相关记录 检查缺失的客户或区域值以及启用严格用户权限设置。
分配的潜在客户丢失 单独创建潜在客户用户权限。客户权限不涵盖未转化的潜在客户。
报表显示的数据超出预期 使用受限用户测试报表。检查自定义或脚本报表,确认它们应用了权限感知查询。
经理无法查看销售人员的客户组合 为经理添加所需的更宽泛权限。销售人员层级不会自动取代用户权限。

常见问题解答

将用户链接到销售人员就足够了吗?

销售人员分配支持销售归属、目标和佣金报告。对于记录级别的限制,请使用用户权限。

我必须将每个销售订单都添加到用户权限中吗?

允许该客户,并保持启用应用于所有单据类型。受支持的客户关联交易将继承该限制。

一个销售人员可以有多个客户和潜在客户吗?

可以。为每个允许的值创建一个用户权限,或者当客户组合遵循区域层级时,使用合适的区域。

销售经理可以看到所有记录吗?

可以,如果他们的角色和用户权限授予了更宽泛的访问权限。请单独测试经理,而不是假设销售人员树控制可见性。

  • 用户权限
  • 基于角色的权限
  • 添加用户
  • 销售人员
  • 系统设置

销售周期中项目费率变化百分比

ERPNext 可以验证物料在从销售订单流转到交货单或销售发票时,其价格是否发生变化。当已确认的订单价格在履行和开票过程中应保持一致时,请使用此控制功能。

开始之前

确认:

  • 物料价格及预期的价格表。
  • 有权批准价格例外情况的角色。
  • 您的流程是需要警告还是强制阻止。
  • 应如何处理合法的修改和退货。

此设置不能替代定价治理。请记录价格何时可能发生变化以及谁可以批准。

配置价格验证

  1. 打开销售设置。
  2. 打开物料价格设置部分。
  3. 启用在整个销售周期内保持相同价格
  4. 如果未保持相同价格则执行的操作设置为:
  • 警告:允许在通知用户后保存。
  • 阻止:阻止不一致的价格。
  1. 当选择“阻止”时,如果您的版本提供该字段,请选择允许覆盖此操作的角色。
  2. 保存。

测试控制功能

  1. 使用物料价格创建并提交一个销售订单。
  2. 根据该销售订单创建一张交货单或销售发票。
  3. 点击高亮的铅笔图标以打开完整的物料行。
  4. 更改价格。
  5. 保存并确认 ERPNext 会根据销售设置警告或阻止此更改。

物料代码前的圆点可快速显示库存可用性:绿色表示有库存,红色表示缺货。

当价格合法变更时

使用能够保留审计轨迹的工作流程:

  • 当商业协议在履行前发生变化时,修改已确认的销售订单。
  • 当支持的提交后工作流程适合此变更时,使用“更新物料”。
  • 在更正已提交的发票时,创建贷项通知单或退货单。
  • 仅在政策允许时,使用授权的覆盖功能。

不要为了匹配总额而静默更改下游价格。

定价来源如何相互作用

交易价格可能受到以下因素影响:

  • 物料价格和价格表。
  • 定价规则。
  • 促销方案。
  • 物料级别的加成或折扣。
  • 额外折扣。
  • 货币换算。
  • 在权限允许的情况下手动输入的价格。

相同价格验证会比较映射的销售周期价格。它不会阻止所有可能的上游定价配置。

重要设置

设置 效果
在整个销售周期内保持相同价格 启用与上游价格的比较
操作:警告 显示警告但允许用户继续
操作:阻止 阻止价格更改
覆盖角色 允许授权用户在支持的情况下绕过“阻止”
允许用户编辑价格表价格 控制“价格表价格”字段的编辑,而非整个销售周期策略

故障排除

问题 检查内容
未出现警告 确认下游单据是从销售订单映射而来,并且设置已保存
授权用户无法覆盖 确认配置的角色和用户的已分配角色
价格在映射前已更改 检查物料价格、定价规则、折扣、货币和源单据
退货或贷项更正被阻止 使用适当的退货或修改工作流程
用户混淆了“价格”和“价格表价格” 解释参考价格、加成、折扣和最终交易价格

常见问题解答

此设置是否适用于不相关的独立发票?

它旨在验证关联销售周期中的价格。独立发票没有可比较的销售订单价格。

我应该选择“警告”还是“阻止”?

如果例外情况常见且稍后审查,请使用“警告”。如果必须在保存单据前获得批准,请使用“阻止”。

角色能否覆盖“阻止”?

可以,当您的 ERPNext 版本中提供了覆盖角色字段并已配置时。

此设置会阻止定价规则吗?

不会。定价规则仍然是价格计算的一部分。请测试组合工作流程。

  • 销售设置
  • 销售订单
  • 提交后修改销售订单
  • 定价规则
  • 应用折扣

客户、联系人与地址关系

客户、联系人和地址描述了同一业务关系的不同部分。客户是您销售的对象,联系人是您沟通的对象,地址是用于开票、发货或其他目的的地点。

将它们作为独立的关联记录保存,可以让一个客户拥有多个联系人和多个地点,而无需创建重复的客户账户。

这三条记录如何协同工作

记录 代表 示例
客户 用于报价、订单、发票、付款、信用控制和报告的商业主体 顶峰数字商店
联系人 您与之沟通的个人 摩根·李,采购经理
地址 一个物理或邮寄地点 海港大道开票办公室
> 通常的关系如下所示:

客户
↳ 关联到一个或多个 联系人
↳ 关联到一个或多个 地址

联系人和地址并不存储在客户内部。它们是通过链接连接的独立记录。这一点很重要,因为当关系真实存在时,同一个联系人或地址可以链接到另一个支持的主体。

为什么它们是分开的?

即使公司的人员或地点发生变化,它仍然可以是同一个客户。将记录分开反映了这一现实。

  • 一个客户可以有多个联系人。 采购经理可能接收报价,而应付账款联系人则接收发票。
  • 一个客户可以有多个地址。 总部可能用于开票,而货物则交付到仓库或零售分店。
  • 人员和地点可以独立变化。 您可以更换联系人,或添加一个送货地点,而无需创建另一个客户并分割销售历史记录。
  • 交易可以使用适当的组合。 一份销售订单可以使用一个联系人和发货地址,而同一客户的后续订单则可以使用另一个。

仅当该主体必须被视为独立的商业或会计关系时,才创建另一个客户。不要仅仅因为新员工、新办公室或新交货点就创建新客户。

示例

新星电子贸易公司向顶峰数字商店销售产品。ERPNext 可以按如下方式建模该关系:

  • 客户: 顶峰数字商店
  • 主要联系人: 摩根·李,采购经理
  • 其他联系人: 泰勒·布鲁克斯,应付账款
  • 首选开票地址: 海港大道办公室
  • 首选发货地址: 子午线大道仓库

当用户为顶峰数字商店创建报价或销售订单时,ERPNext 可以获取摩根·李和首选地址。当该交易需要时,用户仍然可以选择泰勒·布鲁克斯或其他关联地址。

如何选择主要记录

主要设置告诉 ERPNext 哪个关联记录应作为常规默认值使用。它们不会阻止用户选择其他关联记录。

主要联系人

在通常应为关联客户获取的联系人上启用是主要联系人。如果客户有多个联系人,请将此设置用于通常接收销售沟通的人员。

联系人也有主要电子邮件和主要电话的选择。这些回答的是不同的问题:

  • 是主要联系人 为关联方选择首选人员。
  • 主要电子邮件主要电话 在该人员的联系人记录中选择首选详细信息。

首选开票和发货地址

一个地址可以标记为首选开票地址首选发货地址,或两者都是。

  • 首选开票地址是发票和开票沟通的常规地点。
  • 首选发货地址是常规的送货目的地。

这些可能是不同的地点。例如,客户可能从其总部支付发票,但在仓库接收货物。

在交易中的选择

当在支持的销售交易中选择客户时,ERPNext 会使用符合条件的关联记录及其主要或首选设置来提供默认值。用户可以将这些默认值替换为链接到同一客户的其他联系人或地址。

当客户有多个关联记录时,请明确设置主要标志。这可以避免依赖碰巧可用的任何符合条件的记录。

更改主要联系人或首选地址会影响未来文档中使用的默认值。它不会重写已提交交易中存储的联系人、地址或已渲染的地址文本。

常见错误

常见错误 更好的做法
为每个分支机构创建新的客户 除非每个分支机构是独立的商业或会计主体,否则应使用关联地址。
在客户名称中填写个人详细信息 创建联系人并将其关联到客户。
仅使用地址类型来选择默认项 明确设置首选账单和发货标志。
假设主要联系人是唯一的联系人 保留所有相关联系人的关联,并根据每笔交易选择适当的联系人。
在默认项更改后编辑已提交的文档 在未来的文档中使用新的默认项。已提交的文档保留其记录的详细信息。

常见问题解答

一个客户可以有多个联系人和地址吗?

的。这是拥有多名员工、多个办公室、仓库或交货地点的组织的常见设置。

联系人或地址可以没有客户而存在吗?

的。两者都可以独立存在,并在之后进行关联。

同一个联系人可以关联到多个客户吗?

是的,当该联系人确实代表多个主体时。请仔细检查主要设置,因为它属于联系人记录。

用户可以覆盖主要选择吗?

的。主要和首选记录提供默认值。用户可以为特定交易选择其他符合条件的关联记录。

  • 客户
  • 联系人
  • 地址
  • 地址模板
  • 潜在客户、联系人和客户之间的区别

优惠券代码

优惠券代码允许客户在购物车商品上享受折扣。

折扣优惠总是令人兴奋的。为了鼓励客户在电子商务网站上购买,优惠券代码功能非常吸引人。

有一些经销商/其他网站会为您的 ERPNext 电子商务网站的产品/商品/服务生成潜在客户。

当潜在客户从其他网站或促销邮件来到您的 ERPNext 网站进行购买时,您应该具备以下能力:

要访问优惠券代码列表,请前往:

首页 > 会计 > 优惠券代码

  1. 前提条件

  1. 要启用优惠券代码功能,请在电子商务设置中启用显示应用优惠券代码

  2. 创建一个启用了基于优惠券代码标志的定价规则。

  3. 如何创建优惠券代码


  1. 前往优惠券代码列表,点击新建。
  2. 输入一个优惠券名称,例如“SAVE 20”。
  3. 优惠券类型下,选择促销或礼品卡。

促销,用于推广通用方案。

礼品卡,用于随机生成优惠券代码并分发给特定客户/用户。 4. 优惠券代码是唯一且只读的全大写代码,根据优惠券类型和优惠券名称生成。

对于优惠券类型,

a) 促销,它会移除所有空格并取前8个字符。例如:SAVE20

b) 礼品卡,它会生成一个11位的随机代码。例如:AP48K7CT9LP

它可以在购物车页面下单前使用,以享受折扣。 5. 选择启用了基于优惠券代码标志的定价规则。 6. 点击保存

  1. 功能

3.1 有效期和使用

  1. 有效起始 – 截止 – 优惠券的有效期
  2. 最大使用次数 – 限制优惠券代码使用次数的上限
  3. 已使用 – 每提交一个带有优惠券代码的销售订单,已使用计数增加1。
  4. 优惠券代码描述 – 可在创建邮件模板时使用,以告知潜在客户有关优惠券代码和方案信息

3.2 优惠券代码可以通过两种方式应用

  1. 通过URL,优惠券代码将自动从URL参数(“cc”)中获取并填入应用优惠券代码文本框,方便用户应用。

http://xyz.erpnext.com/products/golden-ring?cc=SAVE5 2. 显式应用代码,通过填写代码并点击“应用优惠券代码”按钮,如下方购物车页面所示

成功应用优惠券代码后,价格将更新。

  1. 购物车
  2. 定价规则

销售订单部分履行

已提交的销售订单无需在一次交易中完成交货或开票。在 ERPNext 中,您可以通过多个交货单来交付选定的物料和数量,创建多个销售发票,退回已交货的库存,并关闭客户不再需要的余额。

ERPNext 会根据链接到每个销售订单行的已提交单据计算剩余数量。这既保留了一个已确认的订单,又为仓库和开票团队提供了分阶段工作的灵活性。

开始之前

您需要:

  • 一份已提交的销售订单,且至少有一个未结清的物料数量;
  • 创建和提交所需交货、发票、退货及采购单据的权限;
  • 所选仓库中有足够的库存来满足仓库履行的物料;以及
  • 针对直运物料,需设置好供应商和采购流程。

在创建下游单据之前,请确认客户要求的数量和日期。您不能将订单减少到低于已交货、已开票、已拣货或已分配给生产的数量。

一个销售订单,多个交货单

当物料分批、在不同日期或从不同仓库发货时,请使用多个交货单。

  1. 打开已提交的销售订单。
  2. 选择 创建 > 交货单
  3. 在新的交货单中,仅保留正在发货的行。
  4. 输入每行保留物料的交货数量。
  5. 确认来源仓库、过账日期、交货地址和运输商详细信息。
  6. 保存并提交交货单。
  7. 当下一批货物准备好时,从同一销售订单重复此过程。

映射的交货单以仍可交付的数量开始。在提交前,移除不属于当前发货的行,并减少仅部分交货的行的数量

每次提交后,ERPNext 会更新销售订单上的 % 已交付。销售订单将保持 待交货和开票待交货 状态,直到其交货要求完成。

交付选定的行或数量

假设一个订单包含 10 部手机、6 个笔记本电脑扩展坞和 4 副耳机,但第一批货物仅包含 4 部手机和 2 个扩展坞。创建一个交货单,移除耳机行,并将保留的两个数量设置为 4 和 2。

物料代码前的圆点可快速显示库存可用性:绿色表示物料有库存,红色表示缺货。

当您需要的字段(如仓库、序列号详细信息或行级参考)未显示为表格列时,请选择物料行末尾的铅笔图标

不要仅仅为了记录部分发货而更改原始订购数量。销售订单应继续显示客户确认的内容;交货单则记录当前已发出的货物。

一个销售订单,多个销售发票

您可以独立于实物交货来拆分开票:

  1. 打开已提交的销售订单。
  2. 选择 创建 > 销售发票
  3. 仅保留正在开票的行。
  4. 输入当前要开票的数量。
  5. 检查税费、付款条款、收入科目和成本中心。
  6. 保存并提交发票。
  7. 从同一销售订单创建另一张发票,用于下一个开票阶段。

ERPNext 会根据已提交的发票更新 % 已开票。从销售订单直接创建的发票不会产生库存移动,除非启用了更新库存。当您的流程使用交货单时,如果您希望将已交货的数量和参考信息带入开票,请从相关的交货单创建发票。

避免通过两条途径对同一数量开票。在提交每张发票前,请检查来源参考和剩余数量。

服务和项目的部分履行

服务和项目型公司可以用一个数量为 1 的销售订单行来表示一项业务,然后使用小数数量来记录进度。例如,完成 25% 的工作后开票 0.25,在下一个里程碑开票 0.35,完成时开票剩余的 0.40。如果您的流程单独记录服务交付,请在交货单上使用相同的小数数量。

使用支持小数的计量单位,并确保该计量单位未启用必须是整数。该物料通常应配置为非库存服务物料。每个已提交的单据都会更新同一销售订单的已交付或已开票百分比,因此该订单仍然是整个业务的共同参考。

在使用此方法之前,请在合同中定义每个小数代表什么——例如,已验收的工作量、已完成的里程碑或总服务的百分比。当付款计划纯粹基于日期或里程碑,且不需要部分数量时,请使用付款条款。

查看链接的履行单据

打开销售订单上的关联标签页,查看与其关联的交货单、销售发票、拣货单和采购单据。这是确认已完成多少阶段并打开底层交易的最快方式。

交货单数量可能包含退货,因为销售退货会记录为退货交货单。使用单据列表及其是否退货值来区分出库交货和退回库存。

减少未结数量

当客户和卖家同意减少订购数量,但希望销售订单仍作为控制单据时,请使用更新物料

  1. 打开已提交的销售订单。
  2. 选择更新物料
  3. 将物料数量更改为修订后的总数量——而不是剩余数量。
  4. 检查修订后的总计并保存更新。

例如,如果10部手机已交付7部,而客户现在总共只需要8部,则将销售订单数量更新为8。未结交付变为1。不要输入1作为修订后的订单数量。

ERPNext 会阻止与已交付、已开票、已拣货或已生产数量冲突的减少操作。如果发票提交后商业价值发生变化,请使用贷项通知单处理财务调整,而不是强制将订单减少到已开票数量以下。

关闭未交付余额

当客户不再需要任何未结数量,并且您希望保留原始订单作为已提交状态时,请关闭销售订单。

  1. 确认不应再创建任何交货单或销售发票。
  2. 打开销售订单并选择状态 > 关闭
  3. 确认操作。

状态变为已关闭,ERPNext 将不再将剩余余额视为需要完成的工作。关闭不会取消已提交的交货单或销售发票、退回库存或创建财务调整。需要时请单独完成这些操作。

当商定的订单本身发生变更且修订后的总计应可见时,请使用更新物料。当原始承诺应保持可见但其剩余部分不会完成时,请使用关闭

部分或全部交付后的退货

针对最初移动库存的交货单创建销售退货:

  1. 打开已提交的交货单。
  2. 选择创建 > 销售退货
  3. 仅保留退货行并输入退货数量。
  4. 确认收货仓库。
  5. 保存并提交退货单。

退货交货单使用负数数量,将已接受的库存加回仓库,并减少销售订单的净交付数量。因此,退货可以使之前已完成的交付再次部分未结。

对于已开票的金额,请针对相关销售发票创建贷项通知单。库存退货和财务贷记是相关的业务操作,但它们影响不同的分类账。

混合仓库和直运履行

销售订单可以包含一些从您的仓库供应的物料,以及其他由供应商直接发货的物料。

  • 对于仓库行,设置源仓库,并在每批货物离开您的场所时创建交货单。
  • 对于直运行,标记物料行为供应商交货,并为所选供应商创建所需的采购订单。
  • 保持交货地址和供应商说明准确无误,因为货物会绕过您的仓库。
  • 在创建单据前检查每行的履行路线;不要将直运行包含在正常的仓库交货单中。

当 Nova Electronics Trading 从库存中发货配件,但要求分销商将平板电脑直接发送给客户时,这种混合模式非常有用。销售订单仍然是共同的商业参考,而运营单据则遵循不同的路线。

状态与进度

销售订单指标 含义
已交付 % 通过已提交的交货单交付的净数量,并根据已提交的退货进行调整
已开票 % 通过已提交的销售发票开票的数量或价值,并根据相关贷项进行调整
待交付和开票 交付和开票均未完成
待交付 开票已完成,但交付尚未完成
待开票 交付已完成,但开票尚未完成
已完成 交付和开票要求均已完成
已关闭 剩余余额已被有意关闭

故障排除

问题 检查内容
映射的单据包含不需要的物料 在提交前删除这些行;不要将其设置为任意值
剩余数量与预期不符 关联中检查已提交的交货单、退货单、销售发票和已取消的单据
ERPNext 不允许您减少订单 建议的总数可能低于已交付、已开票、已拣货或已生产的数量
销售订单未完成 请检查已交货百分比已开票百分比;可能其中一方仍有余额。 直运商品出现在仓库发货单中 请检查该商品行的直运设置、供应商及采购单据。 退货导致订单状态变回“待交货” 退货减少了净交货数量;请根据情况结清余额或创建替换交货单。

常见问题

可以在交货前开票吗?

可以。您可以直接从销售订单创建销售发票。是否适合这样做取决于您的会计政策以及是否需要单独记录库存移动。

一张发票可以涵盖多张交货单的数量吗?

可以,前提是发票引用了正确的已交货数量,且不超过剩余可开票数量。提交前请检查关联的源行。

当仅取消余额时,是否应取消销售订单?

通常不需要。根据是否需要保留原始承诺,关闭订单或减少其总数量。仅当整个交易需要撤销且关联单据允许时,才取消销售订单。

退货会自动创建退款吗?

不会。退货交货单仅逆转库存移动。请使用贷项通知单及相应的付款流程进行财务冲销。

可以重新打开已关闭的销售订单吗?

当选项可用且您的权限允许时,使用状态 > 重新打开。在创建更多单据前,请重新检查未结数量。

  • 销售订单
  • 交货单
  • 销售发票
  • 销售退货
  • 直运

维护销售订单

维护销售订单

维护销售订单记录了为客户商定的维护服务。它使用销售订单工作流程,同时支持维护相关操作,并允许在不进行库存交货的情况下开具服务发票。

开始之前

创建客户、服务项目以及所需的序列号或安装详细信息。确认您有权访问流程中使用的维护文档。

创建维护销售订单

  1. 打开销售订单并选择添加销售订单
  2. 选择公司和客户。
  3. 订单类型设置为维护
  4. 添加维护项目、数量、费率和服务日期。
  5. 当不需要库存交货时,启用跳过交货单
  6. 检查税费、付款条款、地址和条款。
  7. 保存并提交订单。

当订单包含必须通过交货单交付的货物时,请保持跳过交货单处于禁用状态。

创建维护文档

提交后,使用可用的创建操作。根据已安装的功能和文档状态,这些操作可能包括:

  • 一个维护计划,用于规划定期服务;
  • 一个维护访问,用于记录执行的工作;
  • 一个销售发票,用于向客户收费。

检查生成的文档,并确认客户、项目、日期、指派人员、序列号和服务详细信息。

故障排除

跳过交货单不可见

确认订单类型维护。该复选框是有条件的。

维护操作缺失

确认订单已提交,所需功能已配置,并且您的角色可以创建目标文档。

常见问题解答

维护销售订单可以包含零件吗?

可以,但对于实际离开您仓库的库存项目,请使用交货工作流程。

维护计划是强制性的吗?

不是。当服务必须在计划日期进行时使用它。一次性服务可能只使用您流程所需的文档。

  • 销售订单
  • 维护计划
  • 维护访问

装箱单

装箱清单

ERPNext 销售订单中的装箱清单显示了当客户订购产品套装时,必须交付的各个库存物料。它将捆绑的父级物料拆解为用于库存履行的组件明细列表。

装箱清单仅在销售订单包含产品套装时出现。

开始之前

在创建销售订单之前,请先创建产品套装。该套装应包含:

  • 一个出现在客户订单上的非库存父级物料;
  • 套装中包含的库存物料;
  • 每个组件所需的数量。

维护组件物料的库存和仓库详细信息。

生成装箱清单

  1. 创建销售订单并选择客户。
  2. 物料下添加产品套装的父级物料。
  3. 输入订购数量和销售价格。
  4. 为产品套装物料选择一个交货仓库
  5. 保存销售订单。
  6. 打开装箱清单部分,并查看生成的组件行。

ERPNext 在保存销售订单时生成装箱清单。它会将每个组件的数量乘以产品套装的订购数量。

查看装箱清单字段

字段 含义
父级物料 在销售订单物料表中输入的产品套装物料。
物料编码 产品套装中包含的库存物料。
数量 订购套装所需的组件总数量。
仓库 将从中交付该组件的仓库。
序列号 标识在适用时为该组件选择的序列化单位。
批次号 标识在适用时为批次化组件选择的批次。

为产品套装选择的交货仓库会被复制到其装箱清单行中。必要时,组件可以使用不同的仓库。

选择装箱清单行末尾的铅笔图标以打开完整行编辑器,并查看表格中不可见的字段。

物料编码前的圆点表示仓库可用性:绿色表示物料有库存,红色表示缺货。在履行前检查每个组件。

交付订单并开票

从已提交的销售订单创建交货单。ERPNext 使用装箱清单组件进行库存移动,同时在商业交易中保留产品套装父级物料。

根据您的流程,从销售订单或交货单创建销售发票。查看所选打印格式,以控制客户看到的是父级物料、组件还是两者都显示。

故障排除

装箱清单为空

确认销售订单中的物料是一个有效的产品套装,并且包含有效的组件物料。如果套装是后来创建或更改的,请在草稿销售订单上移除并重新添加父级物料,然后保存。

组件使用了错误的仓库

使用铅笔图标打开组件行,并选择正确的仓库。在交付前确认该仓库有足够的库存。

组件缺货

选择另一个有合适库存的仓库,或者在创建交货单之前完成所需的采购或制造流程。

常见问题

产品套装父级物料会创建库存移动吗?

装箱清单中的组件物料驱动库存移动。父级物料代表销售给客户的套装。

组件可以来自不同的仓库吗?

可以。当组件将从不同地点履行时,请查看并更改各个装箱清单行上的仓库。

  • 销售订单
  • 产品套装
  • 交货单
  • 仓库

形式发票

形式发票 是在货物交付或最终(税务)发票开具之前,发送给客户的一份初步的、不具约束力的发票。它通常用于请求预付款、支持信用证或海关文件,或向客户提供订单费用的正式说明。

ERPNext 中,形式发票是针对销售订单创建的。它纯粹是一份信息性文档:它不会过账任何会计(总账)或库存分录,不影响销售订单的交货或开票状态,也不会消耗订购数量。您可以根据需要,针对一个销售订单创建任意数量的形式发票。

要创建形式发票,您必须先启用该功能,然后从已提交的销售订单中创建。


1. 启用形式发票

该功能默认是关闭的。要开启它,请前往:

销售设置 > 交易

选择启用形式发票

您可以选择设置一个默认形式发票打印格式,该格式将在创建形式发票时被预先选中。

启用形式发票

命名系列

用于形式发票的命名系列可以在以下位置配置:

销售设置 > 文档命名 > 形式发票

默认情况下,形式发票使用 PRO-.YYYY.- 系列命名。


2. 创建形式发票

打开一个已提交的销售订单,然后点击:

创建 > 形式发票

将打开一个对话框,您可以在其中配置形式发票。

形式发票创建对话框

该对话框包含以下字段:

  • 系列:此形式发票的命名系列。
  • 打印格式信笺抬头:控制打印出的形式发票的外观。来自销售设置的默认打印格式会被预先选中;您可以为每个形式发票覆盖它。
  • 基于:您是按数量还是按金额指定每一行(见下文)。
  • 项目:销售订单行。每一行都预先填充了其剩余值(已订购数量减去已开形式发票的数量)。

为您想要包含的行输入数量或金额(将某行设置为 以排除它),然后点击创建。形式发票即被创建,其 PDF 会生成并附加,销售订单的形式发票选项卡会自动打开。

2.1 基于:数量

这是默认选项。输入每个项目的数量;金额会根据销售订单的费率自动计算(Amount = Quantity × Rate)。

当形式发票代表订购项目的部分(或全部)发货时,例如分阶段交货,请使用此选项。

2.2 基于:金额

基于切换为金额,以直接输入每行的货币金额数量金额都是可编辑的,费率由它们推导得出(Rate = Amount ÷ Quantity)。

对于基于价值或预付款的形式发票,例如“此订单的 30% 预付款”,请使用此选项。

2.3 打印时隐藏项目数量

基于金额时,会出现一个额外选项打印时隐藏项目数量。启用它可以从打印的形式发票中省略数量和费率列,这样只显示项目和金额。这会生成一份简洁的、基于价值的文档,适用于您不想披露单价的情况。

3. 数量/金额警告

形式发票的数量和金额强制执行;形式发票是信息性的。但是,如果某行的形式发票数量或金额(本次形式发票加上之前已开具的任何形式发票)超过了订购值,则会在项目表下方显示一条警告。您仍然可以创建形式发票;该警告仅用于标记此情况。


4. 形式发票选项卡

一旦销售订单至少存在一个形式发票,销售订单上就会出现一个形式发票选项卡。它列出了针对该订单开具的每个形式发票,显示编号、日期、总计和状态。

形式发票列表

在此列表中,您可以:

  • 查看 PDF:打开附加的形式发票 PDF。
  • 发送电子邮件:将形式发票 PDF 通过电子邮件发送给客户。
  • 新建:创建另一个形式发票。

5. 打印和电子邮件

每个形式发票在创建时都会自动生成并附加其 PDF,使用选定的打印格式和信笺抬头。您可以:

  • 形式发票选项卡(查看 PDF)或从形式发票记录中打开 PDF。
  • 使用选项卡中的发送电子邮件,或形式发票记录上的标准打印/电子邮件选项,将其通过电子邮件发送给客户。

形式发票 PDF

6. 取消形式发票

要作废一份形式发票,请打开该形式发票记录并取消它。取消操作会将形式发票标记为已取消,但会保留其 PDF 文件以供参考,并且已取消的形式发票仍会列在“形式发票”选项卡中(显示为红色已取消状态),以便您保留完整的审计追踪。已取消的形式发票将不再计入警告所使用的形式发票总数量/金额。


  1. 销售订单
  2. 销售发票
  3. 销售设置

销售订单类型:销售、维护、购物车

销售订单是客户确认的销售商品或服务的承诺。在 ERPNext 中,订单类型帮助系统理解订单提交后应遵循何种销售流程。

ERPNext 包含三种标准的销售订单类型:

  • 销售
  • 维护
  • 购物车

每种类型都使用相同的销售订单文档,但后续流程略有不同。

1. 销售订单类型:销售

当客户通过常规销售流程购买商品或服务时,请使用“销售”类型。这是最常见的订单类型。

销售订单通常在客户接受报价后开始,或者当销售团队直接记录已确认的客户订单时开始。

典型示例:

  • 向客户销售库存商品
  • 销售成品
  • 销售需要开票的服务
  • 销售需要在开票前发货的产品

典型销售流程

Lead / Opportunity
        |
        v
Quotation
        |
        v
Sales Order: Sales
        |
        +------------------+
        |                  |
        v                  v
Pick List           Material Request
        |                  |
        v                  v
Delivery Note       Purchase / Manufacture
        |
        v
Sales Invoice
        |
        v
Payment Entry

具体路径取决于公司的运营方式。如果商品有库存,团队可以创建拣货单和交货单。如果商品需要采购或制造,销售订单可以帮助创建物料需求单、采购订单、工单或生产计划。

销售发票可以在交货后、交货前或独立创建,具体取决于公司政策和配置。

何时使用

当订单通常会导致交货、开票或两者兼有时,请使用“销售”类型。

2. 销售订单类型:维护

当客户订单涉及售后服务、维修、年度维护、支持访问或定期维护时,请使用“维护”类型。

当主要活动不仅仅是发货,而是为客户执行服务工作,此订单类型非常有用。

典型示例:

  • 年度维护合同
  • 设备维修访问
  • 预防性维护
  • 客户支持访问
  • 与已安装产品相关的服务工作

典型维护流程

Customer Service Requirement
        |
        v
Quotation: Maintenance
        |
        v
Sales Order: Maintenance
        |
        +------------------------+
        |                        |
        v                        v
Maintenance Schedule      Maintenance Visit
        |                        |
        v                        v
Planned Service Dates     Service Completion
        |
        +------------+
                     v
              Sales Invoice
                     |
                     v
              Payment Entry

当服务需要在计划日期进行时,使用维护计划。维护访问用于记录实际完成的工作。订单仍可通过销售发票进行开票。

何时使用

当客户购买需要安排、访问、跟踪或随时间完成的服务工作时,请使用“维护”类型。

3. 销售订单类型:购物车

当销售订单来自电子商务或网站结账流程时,请使用“购物车”类型。

此订单类型仍然是销售订单,但它通常始于客户在线下单,而非内部销售团队手动创建订单。

典型示例:

  • 网站订单
  • 电子商务结账
  • 客户自助服务订单
  • 使用优惠券或积分点的在线订单

典型购物车流程

Website / Portal
        |
        v
Shopping Cart Checkout
        |
        v
Sales Order: Shopping Cart
        |
        +------------------+
        |                  |
        v                  v
Payment / Advance     Pick and Pack
        |                  |
        v                  v
Sales Invoice       Delivery Note
        |                  |
        +--------+---------+
                 v
          Order Completed

购物车订单可能包含网站特定信息,例如积分点、优惠券、运费或在线支付信息。订单提交后,履行和开票步骤与常规销售订单类似。

何时使用

当订单源自网站或电子商务流程时,请使用“购物车”类型。

快速比较

订单类型 最佳用途 常见后续单据
销售 商品或服务的常规销售 拣货单、交货单、销售发票、物料需求单、工单、生产计划
维护 服务、维修、支持、定期访问 维护计划、维护访问、销售发票
购物车 网站或电子商务订单 销售发票、交货单、付款分录

如何选择正确的销售订单类型

当订单属于正常销售和履行流程的一部分时,请选择“销售”。

当客户订购了需要安排、访问或完成跟踪的服务工作时,请选择“维护”。

当订单来自网站或客户门户结账时,请选择“购物车”。

在所有情况下,销售订单仍然是确认客户订购了什么、以什么价格以及什么条款的核心单据。订单类型仅用于指导销售流程中的后续步骤。

销售退货

要在 ERPNext 中处理来自现有销售发票的销售退货,打开原始已提交的发票,点击“创建”>“退货”,并将物料数量设置为负数。保存并提交以冲销会计分录、生成贷项通知单并更新库存。

分步退货流程

按照以下工作流程轻松处理客户退货:

  1. 找到发票:前往销售发票列表,打开客户退货所对应的原始已提交销售发票。
  2. 发起退货:点击发票右上角的 创建 按钮,然后选择 退货
  3. 调整数量:系统会生成一张新的销售发票/退货草稿。将退货物料的 数量 字段更新为负值。如果只退回部分数量,请编辑负数以反映具体的退货数量。
  4. 更新库存:如果退货商品实际退回仓库,请确保勾选 更新库存 复选框。您可能需要指定正确的 仓库批次号序列号
  5. 保存并提交:核对费率、税费和客户详细信息,然后点击 保存提交

提交后,ERPNext 将自动创建贷项通知单,以贷记客户的应收账款余额、借记相应的收入或税务科目,并增加您的库存余额。