按业务类型划分的会计工作流程

最短的 ERPNext 工作流并不总是最好的。分销商可能需要独立的订单、交货、发票和付款控制。咨询公司可能只需要订单、发票和收据。零售商可能在柜台合并库存、开票和收款。

选择与您的业务必须批准、履行、审计和报告的里程碑相匹配的工作流。文档在软件中可以是可选的,但在您的流程中仍然是必需的。

选择您所需的里程碑

在选择工作流之前,请回答以下问题:

  1. 在开票之前,您是否需要记录客户或供应商的承诺?
  2. 是否有实物库存移动?
  3. 运营部门是否必须与财务部门分开确认交货或收货?
  4. 开票是基于数量、时间、里程碑、使用量还是定期计划?
  5. 付款是即时的、预付款的还是赊账的?
  6. 货物是经过您的仓库、直接在两方之间流转,还是不以库存形式存在?

以下单据类型代表不同的里程碑:

单据 里程碑 总账影响
报价单 商业报价
销售订单或采购订单 已确认承诺
交货单或采购收货单 实物履行 使用永续盘存制进行库存分录
销售发票或采购发票 开票和到期金额
付款分录 资金流动与分配

标准商品销售

flowchart LR
    Q["Quotation, optional"] --> SO["Sales Order"]
    SO --> DN["Delivery Note"]
    DN --> SI["Sales Invoice"]
    SI --> PE["Payment Entry"]

最佳适用场景:批发、分销、设备销售,以及销售、仓库、开票和收款发生在不同时间的业务。

优势:每个团队确认自己的里程碑;部分交货和部分开票易于跟踪;销售订单显示已交货和已开票百分比;库存和应收账款在正确阶段记录。

权衡:需要完成和对账更多的单据。用户必须从订单或交货单创建下游单据,以保持履行链条的关联。

配置:维护库存物料和仓库,如果库存移动需要过账到总账,则启用永续盘存制,设置物料的收入和费用默认值,并配置应收账款、税金和销货成本科目。

销售订单是一种承诺,通常不过账到分类账。交货单减少库存并确认成本。销售发票记录收入、税金和应收账款。付款结清未结金额。

使用单独的采购订单、采购收货单、采购发票和付款周期来补充库存。

带库存更新的直接发票

flowchart LR
    SI["Sales Invoice with Update Stock"] --> PE["Payment Entry"]

最佳适用场景:小型商店、简单的柜台销售,以及同时交货和开票但不需要完整 POS 工作流的低复杂度业务。

优势:一份单据记录收入、应收账款、库存减少和销货成本。无需单独完成交货单。

权衡:仓库和财务没有独立的确认点。当拣货、发货、交货证明或部分履行需要独立控制时,此方法不太适用。

配置:维护库存物料和仓库,配置永续盘存制和物料科目,然后在销售发票上启用更新库存。如果付款是即时的,通过付款分录或所选开票流程支持的付款字段进行记录。

该发票同时影响总账和库存分类账。单独的销售订单仍然是可选的。如果您直接创建发票,则没有可以跟踪其交货或开票进度的订单。请参阅带更新库存的销售发票以了解组合路径。

零售和销售点销售

flowchart LR
    POS["POS Invoice"] --> P["Immediate payment"]
    POS --> SL["Stock and accounting ledgers"]

最佳适用场景:客户在同一交互中接收货物并付款的零售店和柜台。

优势:物料选择、定价、税金、库存更新、开票和收款都集成在面向结账的界面中。POS 结算整合并核对班次活动。

权衡:不适用于长履行周期、协商项目开票或复杂的信用控制。退货和班次结算需要一致的收银员流程。

配置:创建 POS 配置文件,选择公司、仓库、价格列表、付款方式、税金和适用用户。确认开闭店流程和现金差异责任。

基于服务或项目的销售

flowchart LR
    Q["Quotation, optional"] --> SO["Sales Order, optional"]
    SO --> SI["Sales Invoice by milestone, time, or quantity"]
    SI --> PE["Payment Entry"]

最佳适用场景:咨询公司、代理机构、实施合作伙伴、维护提供商以及不交付库存商品的项目型企业。

优势: 避免生成不必要的库存单据。销售订单可以承载商业范围并跟踪开票进度。项目、任务和工时表可以收集交付工作量和成本。

权衡: 进度取决于对里程碑、时间或数量的严格更新。销售发票仅证明开票行为,而非工作验收,除非您的流程单独记录了审批环节。

配置: 创建非库存服务项目、收入与费用科目、付款条款,以及需要核算利润的项目。当发票基于已批准的工时生成时,使用基于工时表的开票方式。

对于里程碑开票,使用一个服务项目,其数量设置为 1.000。通过三张发票分别开具 0.2500.5000.250,代表项目进度的 25%、50% 和 25%。将费率设置为等于合同总价值。ERPNext 使用小数数量来跟踪销售订单中已开票的部分。

对于非库存服务,通常无需生成交货单。直接创建销售发票是有效的,但如果没有关联订单,则不会更新销售订单的开票进度。

周期性服务或订阅

flowchart LR
    S["Subscription or recurring source"] --> SI["Recurring Sales Invoices"]
    SI --> PE["Payment and reconciliation"]
    SI --> DR["Deferred revenue recognition, when configured"]

最佳适用场景: 软件订阅、顾问服务、会员资格、支持计划、租赁及其他周期性服务。

优势: 自动生成定期发票,并能将开票与收入确认分离。付款条款、提醒和应收账款报告支持催款流程。

权衡: 计划日期、取消、升级、按比例分配、付款失败及税率变更需要明确的运营规则。自动创建发票并不能保证款项回收。

配置: 设置订阅、计划、客户默认值、税费、到期日及周期性处理。当收入需在服务期间内确认而非全部在发票日期确认时,配置递延收入。

直运销售

flowchart LR
    SO["Sales Order with Supplier delivers to Customer"] --> PO["Purchase Order to Supplier"]
    SO --> SI["Sales Invoice to Customer"]
    PO --> PI["Purchase Invoice from Supplier"]

最佳适用场景: 供应商直接向客户发货的分销商和在线卖家。

优势: 避免货物经过您的仓库进行收货和发货。销售和采购单据保持关联,便于追踪利润和供应商履约情况。

权衡: 您对库存、包装、交货时间和交货证明的实际控制力较弱。供应商和客户的地址及沟通信息必须准确。由于公司未实际收货,常规的仓库库存台账无法反映这些货物。

配置: 将相关项目标记为供应商供货,在适用时设置默认供应商,在销售订单项目中选择供应商直接交付给客户,并从该销售订单创建采购订单。遵循直运工作流程,确保单据保持关联。

销售发票记录客户收入和应收账款。采购发票记录供应商成本和应付账款。销售订单和采购订单属于承诺,不产生会计分录。

按订单生产

flowchart LR
    SO["Sales Order"] --> WO["Work Order"]
    WO --> SE["Stock Entries for manufacture"]
    SO --> DN["Delivery Note"]
    DN --> SI["Sales Invoice"]
    SI --> PE["Payment Entry"]

最佳适用场景: 根据确认的需求生产成品的制造商。

优势: 连接需求、物料计划、生产、成品库存、交货、开票和利润核算。生产库存分录将组件价值转入成品项目。

权衡: 必须准确维护物料清单、仓库、工单、估值、废料及在制品流程。回溯的库存分录可能触发估值重算。

配置: 设置库存项目、仓库、物料清单、工作中心、工序及生产默认值。根据需要,从销售订单或生产计划发起原材料需求申请。

销售订单产生需求,但不生成会计分录。生产库存分录影响库存价值。交货记录销售成本,发票记录收入和应收账款。

采购驱动的服务与费用流程

flowchart LR
    PO["Purchase Order, optional"] --> PI["Purchase Invoice"]
    PI --> PE["Payment Entry"]

最佳适用场景: 专业服务、租金、水电费、软件及其他无需实物入库的采购。

优势: 避免生成无操作价值的采购收货单。采购订单仍可在供应商发票到达前提供预算或审批控制。

权衡: 没有单独的货物接收确认环节。团队需要其他方式来验证服务在发票审批前已被接受。

配置: 使用非库存项目或相应的费用科目、供应商付款条款、税费、成本中心、项目及审批工作流。采购发票记录费用或资产价值以及供应商应付账款。

多公司及内部交易流程

flowchart LR
    A["Company A sales document"]  B["Company B purchase document"]
    A --> LA["Company A ledger"]
    B --> LB["Company B ledger"]

最佳适用场景: 拥有独立法人实体且相互交易的集团。

优势: 每个实体保持独立且平衡的审计轨迹,同时关联单据减少重复录入。合并报表可提供集团整体视图。

权衡: 公司、内部客户和供应商、价格、税费、币种以及应收或应付账户必须保持一致。合并不能替代贵公司会计政策要求的任何抵销或法定流程。

配置: 将相关方标记为内部方,将其映射到公司,配置内部往来账户,并使用内部公司发票或内部公司日记账分录。在生产环境中使用自动化之前,请先对双方进行测试。

决定哪些单据是可选的

不要只问 ERPNext 是否允许跳过某张单据。要问如果跳过它,会失去哪些控制。

如果跳过 你将不再拥有
报价单 客户承诺前的一份带版本记录的报价
销售订单 记录已承诺数量、交货和开票进度的核心记录
交货单 独立的仓库确认和库存交货证明
采购订单 采购前的承诺、授权以及已订与已开票的跟踪
采购收货单 独立的收货确认和已收未开票的应计项目

对于简短的工作流,直接创建下游单据可能是正确的。但这不会更新被省略或未关联的上游单据。如果存在订单,请从该订单创建其交货单、收货单或发票,以便 ERPNext 更新相关的百分比和状态。

实施建议

从每个业务线的一个主要工作流开始。记录其必填字段、审批、交接、退货和例外情况。然后测试:

  • 完全履行和部分履行;
  • 预付款、部分付款和合并付款;
  • 退货和贷项通知单;
  • 税费和币种差异;
  • 取消和修改;
  • 月末对账和报告。

只有在用户能够清楚识别何时适用时,才引入较短的备选工作流。在批准会计结果之前,请查看交易如何影响分类账。

  • 会计入门
  • 交易如何影响分类账
  • 销售发票
  • 采购发票
  • 付款分录
  • 直运销售

理解借方与贷方

借方和贷方是每笔会计分录的两个方面。它们并不代表好与坏,也不代表资金流入和流出。它们描述的是金额如何改变一个账户。在 ERPNext 中,每笔会计交易的借方总额和贷方总额必须相等。

你可以在不手动输入大多数借方和贷方的情况下使用 ERPNext。但理解它们仍然有助于你查看会计账簿、正确配置账户以及诊断意外的余额。

从会计等式开始

资产负债表建立在以下等式基础上:

资产 = 负债 + 所有者权益

收入增加利润,从而增加所有者权益。费用减少利润,从而减少所有者权益。这给出了五类账户的正常行为:

账户类别 代表内容 增加方式 减少方式 常见示例
资产 公司拥有或控制的资源 借方 贷方 现金、银行存款、应收账款、存货、设备
负债 公司欠付的金额 贷方 借方 应付账款、贷款、应交税费
所有者权益 所有者的剩余权益 贷方 借方 资本、留存收益
收入 一个期间内赚取的价值 贷方 借方 销售收入、服务收入
费用 一个期间内消耗的价值 借方 贷方 租金、工资、销售成本

一个有用的记忆技巧是:资产和费用通常在借方增加;负债、所有者权益和收入通常在贷方增加。

通常这个词很重要。一个账户可能包含双方的分录。客户付款会贷记应收账款,因为它减少了资产。销售退货会借记销售收入,因为它减少了收入。

借方和贷方不是付款方向

考虑三个事件:

  1. 客户支付一张发票。银行存款被借记,因为银行存款资产增加。应收账款被贷记,因为客户欠付的金额减少。
  2. 你向供应商付款。应付账款被借记,因为负债减少。银行存款被贷记,因为银行存款资产减少。
  3. 你用现金购买一台笔记本电脑。设备被借记,因为资产增加。银行存款被贷记,因为另一项资产减少。

因此,同一个银行存款账户可以根据其余额是增加还是减少而被借记或贷记。

常见的 ERPNext 交易如何实现平衡

示例使用简化值并省略了四舍五入。你公司中的账户名称可能有所不同。

赊销

Nova Electronics Trading 开具一张金额为 1,000 美元加 80 美元税款的销售发票,并将在以后收款。

账户 借方 贷方
应收账款 1,080
销售收入 1,000
应交税费 80
合计 1,080 1,080

应收账款增加,因为客户欠付更多。收入和应交税费也增加。已提交的销售发票会根据其项目、税费和配置的账户自动创建这些分录。

收到客户付款

客户支付 1,080 美元。

账户 借方 贷方
银行存款 1,080
应收账款 1,080
合计 1,080 1,080

银行存款增加,客户的债务减少。付款条目还会将此金额链接到发票,使其未结余额变为零。

赊购

Nova 收到一张金额为 600 美元的办公设备供应商发票。

账户 借方 贷方
办公设备 600
应付账款 600
合计 600 600

设备资产和供应商负债同时增加。如果该采购属于运营费用,则借方应记入费用科目。

向供应商付款

科目 借方 贷方
应付账款 600
银行存款 600
合计 600 600

负债和银行存款资产同时减少。

向客户交付库存

假设一台售价为 1000 美元的笔记本电脑,其估价成本为 700 美元。在永续盘存制下,交货时需将成本与销售分开记录:

科目 借方 贷方
销售成本 700
库存资产 700
合计 700 700

销售成本作为费用增加;库存作为资产减少。此分录可来自交货单或更新库存的销售发票。

在供应商发票之前收到库存

当货物在开票前收到时:

科目 借方 贷方
库存资产 700
已收未开票库存 700

采购收货单记录库存和一项临时负债。后续的采购发票借记“已收未开票库存”,贷记“应付账款”。这清除了收货应计项目,并建立了供应商余额。

记录即时支付的费用

Nova 支付 120 美元用于互联网服务。

科目 借方 贷方
互联网费用 120
银行存款 120

费用增加,银行存款资产减少。这可以通过采购发票后付款,或根据所需的控制和凭证通过适当的付款或日记账工作流来记录。

记录折旧

科目 借方 贷方
折旧费用 100
累计折旧 100

折旧费用增加。累计折旧是一个备抵科目,正常余额在贷方,因此它减少了资产的账面净值,而不改变其原始成本科目。

备抵科目与异常余额

备抵科目用于抵销另一个科目,同时保持单独可见。常见示例包括累计折旧、销售退回、采购退回和折让。

科目也可能出现非预期的余额,但这并不一定意味着错误:

  • 客户应收款出现贷方余额,可能表示预收款或多付款。
  • 供应商应付款出现借方余额,可能表示已支付的预付款。
  • 银行存款出现贷方余额,可能表示透支。
  • 收入科目可能因贷项通知单或更正而被借记。

在断定符号错误之前,请调查原始凭证和业务含义。

参与方与科目如何协同工作

ERPNext 通常为多个客户使用一个共享的应收科目,为多个供应商使用一个共享的应付科目。每笔分类账分录上的参与方类型参与方用于标识谁的余额发生了变化。

这就是会计科目表不需要为每个客户设置一个分类账科目的原因。应收账款和应付账款报表结合了科目过账、参与方和付款参考,以显示发票级别的未结金额和账龄。

维度不会改变借方和贷方

成本中心、项目或其他会计维度用于标记分录以便分析。它不会替代科目,也不会改变金额是借方还是贷方。

例如,一个租金费用科目可以分摊到零售、在线销售和行政成本中心。总分类账保持平衡,而损益表可以按管理报告需求进行筛选或分组。

ERPNext 中复核分录

提交交易后:

  1. 打开原始单据。
  2. 选择 查看 > 会计分类账
  3. 确认借方和贷方总额相等。
  4. 检查每个科目是否与经济业务匹配。
  5. 核实应收或应付行中的往来单位。
  6. 审查成本中心、项目、财务账簿及其他适用维度。
  7. 打开总分类账,查看科目上下文中的分录。

使用试算平衡表确认所选期间内借方总额与贷方总额保持相等。相等证明数学平衡,但并不能证明每个科目选择都是正确的。

何时使用日记账分录

在需要进行真正的会计调整时使用日记账分录,例如预提、准备、重分类、期初余额和已批准的核销。

对于常规操作,优先使用专用交易单据:

  • 销售发票用于客户开票
  • 采购发票用于供应商开票
  • 付款分录用于收款、付款和内部转账
  • 交货单、采购收货单或库存分录用于库存移动
  • 资产交易用于资本化、折旧、销售和处置

专用单据会自动计算税金、更新未结金额、保留业务参考信息,并执行手动日记账分录可能绕过的验证。

常见错误

错误 更好的方法
将借方视为收到的款项 识别科目类别,然后判断该科目是增加还是减少。
将贷方视为负数金额 将借方和贷方理解为分录的两边,而非正负号。
为每个客户创建一个应收科目 使用共享的应收科目,并通过往来单位来识别客户,除非需要单独设置科目。
用不相关的日记账分录修正发票 尽可能更正、退回、取消或修改原始单据,以确保业务和会计记录一致。
仅检查总额是否平衡 同时核实科目、往来单位、日期、维度、参考信息、税金和币种。

常见问题

为什么银行收款显示为借方?

银行是资产。收到款项会增加该资产,资产增加记借方。

为什么销售收入是贷方?

收入会增加利润和权益。因此,收入科目通常通过贷方增加。

可以输入负数的借方吗?

ERPNext 通常通过分录的另一方来体现相反效果。请遵循相关单据的退货或冲销流程,而不是强行输入负值。

每笔交易是否只影响两个科目?

  1. 复式记账要求总额相等,而非恰好两行。一张包含多种税金、收入科目、折扣和库存影响的发票可能会生成多笔总账分录。
  • 会计入门
  • 交易如何影响分类账
  • 科目表
  • 日记账分录
  • 总分类账
  • 会计报告

交易如何影响分类账

当提交会计或库存交易时,ERPNext 会创建分类账分录。原始单据描述了业务中发生的情况;生成的条目记录了其财务影响。理解这种联系有助于您验证设置、调查余额,并为工作流选择正确的单据。

flowchart LR
    A["Draft document"] -->|"Submit"| B["Submitted document"]
    B --> C["GL Entries"]
    B --> D["Payment Ledger Entries"]
    B --> E["Stock Ledger Entries, when applicable"]
    C --> F["Financial reports"]
    D --> G["Outstanding and ageing reports"]
    E --> H["Stock balance and valuation reports"]

交易何时影响账簿

草稿通常没有分类账影响。提交时,ERPNext 会验证过账日期、公司、货币、科目、成本中心、维度、总额和借贷平衡。如果验证成功,则会创建适用的条目。

过账日期 决定了会计期间。单据的创建日期和提交时间可能不同。如果涉及库存,过账时间 也会影响用于库存估值的顺序。

如果允许取消,取消已提交的交易会逆转其分类账影响。ERPNext 不会简单地删除原始历史记录。这支持不可变分类账,并使过账和冲销的顺序可追溯。要更正并替换单据,请取消它并创建一个修正副本。

分类账服务于不同目的

分类账 主要目的 常见来源
总分类账 按科目记录借方和贷方金额 发票、付款、日记账分录、库存交易、资产、工资
付款分类账 跟踪应收应付参考、分配和未结金额 发票、付款、贷项通知单、日记账分录
库存分类账 按物料和仓库跟踪数量、入库率、估值率和库存价值 收货、发货、库存条目、更新库存的发票

一份单据可能影响多个分类账。例如,更新库存的销售发票在总分类账中记录收入和应收款,在库存分类账和总分类账中减少库存,并在付款分类账中创建客户的未结金额。

常见交易影响

以下条目显示了正常模式。实际科目名称来自公司、物料、物料组、仓库、业务伙伴和税务配置。

销售发票

提交销售发票通常记录:

科目 借方 贷方
客户应收款 发票总额
收入 净销售额
销项税应付 税额

客户的未结金额保持开放,直到被支付、分配、核销或冲销。

如果启用了更新库存,同一张发票也会减少库存:

科目 借方 贷方
销售成本 估值成本
库存资产 估值成本

如果没有更新库存,交货单通常会分别记录库存和成本影响。

采购发票

提交采购发票通常记录:

科目 借方 贷方
费用或资产 净采购额
可抵扣进项税 税额
供应商应付款 发票总额

当与采购收货单一起使用永续盘存时,采购发票可以清空已收货但未开票科目,而不是再次借记库存。这可以防止同一收货被重复资本化。

付款条目

收款付款条目通常借记银行或现金,并贷记客户应收科目。付款付款条目借记供应商应付科目,并贷记银行或现金。内部转账在两个现金或银行账户之间转移价值。

付款分配与现金过账是分开的。一笔付款可以:

  • 结算一张发票;
  • 分摊到多张发票;
  • 部分结算一张发票;
  • 保持未分配以供日后使用;
  • 记录为针对订单的预付款。

使用付款对账将现有付款或贷项连接到发票,而无需再次记录资金。

贷项通知单和借项通知单

退货销售发票,通常称为贷项通知单,会根据所选退货选项冲销或减少销售、税金、应收款和库存的影响。退货采购发票,通常称为借项通知单,会根据所选退货选项冲销或减少采购、税金、应付款和库存的影响。

尽可能针对原始发票创建退货。关联引用可提高可追溯性,并更新原始单据的已退货和未结金额。

日记账分录

日记账分录用于过账由授权用户输入的借方和贷方行。它适用于预提、准备、重分类、期初分录、核销、账户间转账以及其他没有更具体交易类型的调整。

不要仅仅为了节省时间而用通用的日记账分录替代销售发票、采购发票或付款单。专门的单据包含客户/供应商、税金、物料、到期日、库存行为以及操作参考信息,这些是手工分录可能无法提供的。

交货单和采购收货单

在永续盘存制下:

  • 交货单贷记仓库的库存资产账户,借记销售成本。
  • 采购收货单借记仓库的库存资产账户,贷记已收货但未开票的库存。

这些单据通常不会创建客户应收款或供应商应付款。开票发生在提交发票时。

库存分录和库存盘点

库存分录用于更改物料收货、发货、调拨、生产和重新包装操作的库存数量和价值。调拨可以在仓库账户之间转移价值。生产分录消耗组件价值,并将产生的价值添加到产成品中。

库存盘点用于设置在某个时间点的盘点数量和估价率。当永续盘存制启用时,差额会过账到已配置的库存调整账户。

资产与折旧

购买或资本化一项资产会将其价值记录在资产账户中。已提交的折旧分录借记折旧费用,贷记累计折旧。资产的销售、处置、报废和价值调整会根据资产的当前账面价值和收益创建额外的分录。

工资与费用

工资分录通常借记工资和福利费用,贷记应付工资。向员工付款会清除对银行的负债。费用报销单记录已批准的费用和应付给员工的金额;后续付款会清除该应付款项。

递延收入与费用

当在发票项目上配置了递延会计时,发票首先过账到递延账户。然后,ERPNext 通过计划好的会计分录,在配置的服务期间内确认收入或费用。这会将开票日期与确认期间分离开来。

外币交易

ERPNext 存储客户/供应商或账户的币种金额及其在公司本位币中的价值。发票使用其过账日期的汇率。如果结算使用不同的汇率,差额会作为汇兑收益或损失过账。

汇率重估用于调整符合条件的未结外币余额,以便在选定日期进行报告。重估分录应与支付过程中产生的已实现汇兑差额区分开来。

承诺单据与分类账单据

并非所有已提交的业务单据都会过账会计分录。

单据 业务影响 通常的分类账影响
报价单 向潜在客户或客户提供的报价
销售订单 客户承诺与履行计划 无,但关联的预付款会单独记录
采购订单 对供应商的承诺 无,但关联的预付款会单独记录
交货单 货物已交付 在永续盘存制下产生库存和成本分录
采购收货单 货物已接收 在永续盘存制下产生库存和收货预提分录
销售发票 向客户开票 收入、税金、应收款以及可选的库存
采购发票 供应商开票 费用或资产、税金、应付款以及可选的库存
付款单 资金流动 银行或现金以及客户/供应商账户

即使订单不影响总分类账,它们也会影响运营报告。它们可以预留或计划库存、跟踪履行情况、建立付款计划,并为预付款提供参考。

从单据追踪金额到报表

  1. 打开已提交的交易。
  2. 使用 查看 > 会计分类账 检查其总分类账分录。
  3. 确认借方总额等于贷方总额,并且过账日期、科目、客户/供应商、成本中心、项目和维度都正确。
  4. 如果涉及库存,打开 库存分类账 并比较数量和估价影响。
  5. 在总分类账中查看该科目和凭证。
  6. 当涉及未结金额时,查看应收账款或应付账款。
  7. 打开相关的财务报表,并在需要进一步分析时深入查看该金额。

如果源单据正确但科目错误,请检查公司默认设置、物料和物料组默认设置、仓库科目、往来单位科目、税模板和规则。在过账其他交易前修正配置。

直接创建的下游单据可以改变什么

ERPNext 允许在无订单或收货单的情况下直接创建许多下游单据。直接发票虽然有效,但会丢失上游引用及其操作控制。

  • 直接销售发票向客户开票,但不会更新销售订单的开票百分比。
  • 直接交货单减少库存,但不会更新订单的已交货百分比。
  • 直接采购发票生成应付款,但不会更新采购订单的开票百分比。
  • 直接更新库存的发票将库存和开票合并,因此没有单独的交货或收货单据。

仅当业务不需要省略的承诺、审批、履行或审计里程碑时,才选择较短的路径。请参阅按业务类型划分的会计工作流以选择工作流。

故障排除

问题 检查内容
已提交的单据缺少预期的总账分录 确认该单据是承诺单据还是分类账单据,然后检查永续盘存和库存更新设置。
使用了错误的收入或费用科目 按优先级顺序检查物料、物料组、公司和往来单位的默认设置。
发票已付款但仍显示未结 检查付款分录的引用和分配;必要时对未分配的付款进行对账。
库存台账和总分类账数值不一致 检查回溯库存分录、估值重过账、已取消凭证以及库存与科目余额对比报告。
回溯更正被阻止 检查“冻结截至”日期、会计期间限制、权限以及请求的过账日期。
  • 会计入门
  • 理解借方和贷方
  • 总分类账
  • 付款分录
  • 永续盘存
  • 会计报告

Shopify 集成

Shopify 连接器从 Shopify 拉取订单,并在 ERPNext 中针对这些订单创建销售订单。

在创建销售订单时,如果 ERPNext 中缺少客户或物料,系统将通过从 Shopify 拉取相应详情来创建新的客户/物料。

如何设置连接器?

Shopify 连接器已从 ERPNext 中移出,现在可通过 Frappe Cloud 市场上的 Frappe 应用获取。

旧版 Shopify 连接器用户须知

如果您尚未在 ERPNext 站点上设置 Shopify 连接器,可以直接进入下一步。

如果您正在使用 ERPNext 中提供的旧版 Shopify 集成,则需要在继续之前禁用该连接器。安装应用后,它会将现有数据(例如物料的唯一 product_id)迁移到单独的文档类型。完成新集成配置后,您可以通过进入“电子商务集成日志”文档类型来确认迁移状态。

应用安装

  • 如果您在 Frappe Cloud 上托管 ERPNext 站点,可以通过进入站点仪表板快速安装该应用。该应用在 Frappe Cloud 市场中可用。
  • 如果您的站点由 Frappe 托管,请提交支持工单以在您的站点上安装该应用。
  • 如果您自行托管 ERPNext,可以使用 Frappe bench 安装该应用。有关安装 Frappe 应用的详细信息,请参考 bench 文档。 bench get-app ecommerce_integrations --branch main

在 Shopify 中创建自定义应用

  1. 点击菜单栏中的“应用”

  2. 点击为您的商店开发应用以创建自定义应用

  3. 创建新应用

  4. 填写详细信息并创建应用。每个应用都有自己的 API 密钥、密码和共享密钥

  5. 为应用授予以下权限。

  • 草稿订单 – 读取和写入
  • 订单 – 读取和写入
  • 位置 – 读取
  • 客户 – 读取
  • 分配的履行订单 – 读取和写入
  • 产品 – 读取和写入
  • 产品列表 – 读取和写入
  • 库存 – 读取和写入

您的最终管理员权限范围应如下所示:

  1. 在您的站点上安装该应用

在 ERPNext 中设置 Shopify:-

在 Shopify 上创建私有应用后,在 ERPNext 的 Shopify 设置中设置应用凭据和其他详细信息。

要访问 Shopify 设置,请转到:
超级搜索栏 > Shopify 设置

  1. 从 Shopify 的私有应用中填写 Shopify 站点 URL、访问令牌和 API 密钥。

  2. 设置客户、公司和库存配置。

  1. 设置同步配置。
    系统从 Shopify 拉取订单并在 ERPNext 中创建销售订单。您可以配置 ERPNext 系统以捕获针对订单的付款和履行信息。

  2. 设置税务映射器。
    为您在 Shopify 中应用的每种税费和运费准备税费和运费映射器。您可以从 Shopify 管理页面找到您的税费名称。

设置完所有配置后,启用 Shopify 同步并保存设置。这将向 Shopify 注册 API,系统将开始 Shopify 和 ERPNext 之间的订单同步。

同步来自 Shopify 的旧订单

完成 Shopify 配置并启用 Shopify 同步后,您还可以将 Shopify 中的旧订单同步到 ERPNext。此同步将在后台进行,根据您的订单数量可能需要几个小时。

  1. 启用“同步旧 Shopify 订单”
  2. 输入需要同步订单的起始和结束日期

库存同步

您可以更新从 Shopify 同步的物料在 Shopify 中的库存。库存同步通过计划任务每小时执行一次。自上次同步以来发生变化的物料库存水平将被推送到 Shopify。ERPNext 仓库的库存水平与 Shopify 位置一一对应。

  1. 要启用库存同步,请点击复选框,这将显示一个表格,用于将 ERPNext 仓库与 Shopify 位置进行映射。
  2. 选择同步频率。建议频率为 30 到 60 分钟。
  3. 点击“获取 Shopify 位置”按钮,在表格中填充 Shopify 位置。
  4. 将每个位置与 ERPNext 仓库关联。
  5. 保存设置。

注意:此连接器假定 ERPNext 是库存水平信息的主要来源,对 Shopify 库存水平所做的任何更改,如果 ERPNext 库存水平发生变化,都将被 ERPNext 覆盖。

注意:Shopify 不支持小数数量。如果在 ERPNext 中发现小数数量,Shopify 上的库存水平将通过向下取整设置为最接近的整数。

物料同步

您可以通过勾选“将新的 ERPNext 物料上传到 Shopify”来启用将新的 ERPNext 物料同步到 Shopify。

您也可以在更新 ERPNext 物料时同步更新 Shopify 物料。

以下字段将被上传/更新:

ERPNext 字段 Shopify 字段
物料名称 标题
物料编码 SKU
描述正文 描述
物料组 产品类型
单位重量 重量
重量单位 重量单位

默认情况下,所有物料在 Shopify 上均标记为“草稿”,且不会在任何商店中发布。

提供此功能的目的是为了与 Shopify 同步物料。无法实现所有字段的一一对应。通过此方法在 Shopify 上创建物料后,该物料将与 ERPNext 关联,从而避免重复。您之后可以在 Shopify 上修改物料以添加更多详细信息。

注意:此功能不支持数据导入,也不适用于变体/模板物料。

订单取消

此连接器按以下方式处理各种取消场景:

  1. 如果 Shopify 上的订单被取消,且该订单没有关联的发票或交货单,则 ERPNext 销售订单将被取消。
  2. 如果 ERPNext 销售订单有关联的文档,则 Shopify 上的订单状态将添加到相应文档中。用户需根据此信息自行取消并准备相应的文档。

Plaid 集成

ERPNext 提供通过名为 Plaid 的服务同步银行账户的功能。请查看 Plaid 常见问题解答,确认您的国家是否受支持。

如果您的实例已连接到 Plaid,您就可以同步银行账户交易,而无需手动导入 CSV 或 XLSX 文件。

设置

为了让 ERPNext 访问 Plaid,您需要将以下三个参数添加到您的 site_config.json 文件中。

  • plaid_env
  • plaid_public_key
  • plaid_secret

激活

要在实例上激活 Plaid,请点击 Plaid 设置文档类型中的“启用”按钮。

激活后,您可以直接从银行对账仪表板创建新账户。

创建银行账户

要将您现有的银行账户之一链接到 ERPNext,请点击“链接新银行账户”,然后按照 Plaid 提供的步骤操作。

银行同步

要将银行账户与 ERPNext 同步,请选择一个账户,然后点击“操作”按钮,选择“同步此账户”。

同步基于“银行账户”文档类型中的“最后集成日期”。

如果出于任何原因您想重新进行同步,可以更改此日期并再次同步该账户。
由于所有银行交易都带有特定的交易 ID,因此同步只会是增量式的。

自动同步

您可以通过在 Plaid 设置中选择“每小时同步所有账户”,允许 Plaid 每小时自动将您的银行账户与 ERPNext 同步一次。

上传备份到亚马逊S3

注意:如果您是 Frappe Cloud 用户,系统会自动为您创建站点内和站点外备份:https://frappecloud.com/docs/sites/backups

前提条件

  • 电子邮件账户

要接收备份成功或失败的通知邮件,请先创建一个电子邮件账户

创建 S3 存储桶并设置访问权限

  1. 创建一个新的 S3 存储桶。

在存储桶设置中,启用“阻止所有公共访问”以保持数据私密。您可以根据需要启用加密、版本控制或对象锁定(请参考 Amazon 的文档)。
2. 打开身份与访问管理(IAM)。
3. 为服务“S3”创建一个新策略,允许“ListBucket”和“PutObject”操作。

或者,使用 JSON 编辑器:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::*/*",
                "arn:aws:s3:::YOUR TARGET BUCKET"
            ],
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "YOUR SERVER IP"
                }
            }
        }
    ]
}
  1. 创建一个用于编程访问的新用户。

  1. 将您创建的策略附加到新用户。
  2. 复制用户的访问密钥和秘密密钥。

要自动删除旧备份或将它们移至更便宜的存储类别,请查看生命周期管理。

使用 Minio 创建 Hetzner 存储桶

大写字母是您可以自由选择的变量。在此示例中,我们使用区域 nbg1(纽伦堡)。

  1. 在 Hetzner 控制台 https://console.hetzner.com/projects/YOUR_PROJECT/security/s3-credentials 中,创建一些 S3 访问凭证:密钥和秘密密钥。
  2. 安装 Minio
  3. 配置 Minio 以访问您的 Hetzner 存储桶:mc alias set MY_ALIAS https://nbg1.your-objectstorage.com YOUR_S3_KEY YOUR_S3_SECRET
  4. 创建一个启用了对象锁定的存储桶:mc mb MY_ALIAS/BUCKET_NAME --with-lock --region nbg1。这可以确保您不会意外删除备份。
  5. 将对象锁定期限设置为 90 天:mc retention set GOVERNANCE 90d --default MY_ALIAS/BUCKET_NAME
  6. 检查所有配置是否正确:mc retention info --json --default MY_ALIAS/BUCKET_NAME
  7. S3 备份设置中输入配置:
  8. 端点 URL:https://nbg1.your-objectstorage.com/
  9. 存储桶名称:BUCKET_NAME
  10. 访问密钥 IDYOUR_S3_KEY
  11. 访问秘密密钥YOUR_S3_SECRET

设置 ERPNext

  • 打开S3 备份设置
  • 勾选“启用自动备份”。
  • 粘贴来自 AWS 的访问密钥和秘密密钥。
  • 设置一个电子邮件地址,以便在备份失败时接收通知。如果您也希望收到成功备份的邮件,请启用“发送成功备份邮件”。
  • 指定您在步骤 1 中创建的存储桶名称。
  • 选择您希望进行备份和上传备份的频率。范围可以从每月到每天。如果您只想手动备份,请将频率设置为“无”。

从已启用版本控制的存储桶中恢复已删除文件

  • 列出所有文件版本:mc ls -r --versions MY_ALIAS/BUCKET_NAME/
  • 下载特定版本:mc get --vid TARGET_VERSION_ID MY_ALIAS/BUCKET_NAME/20260415_162402/20260415_162402-company_frappe_cloud-database.sql.gz ~/Downloads

Google Drive 集成

ERPNext 提供了与 Google Drive 的集成功能,以便所有用户可以将数据备份到 Google Drive。

如何设置 Google Drive 集成

为了允许 ERPNext 将备份上传到 Google Drive,您需要授权 ERPNext 将文件上传到 Google Drive。Google Drive 集成通过以下步骤进行设置:

  • 通过 Google 设置创建 OAuth 2.0 凭据。
  • 在 Google Drive 列表中,点击“新建”。输入用于保存备份到 Google Drive 的备份文件夹名称、备份频率以及接收备份状态通知邮件的收件人邮箱,然后保存。现在点击 授权 Drive 访问权限,以授权 ERPNext 将文件推送到 Google Drive。
  • 授权完成后,您可以将备份保存到 Google Drive。

如何使用 Google Drive 集成

注意:如果您是 Frappe Cloud 用户,系统会自动为您创建本地和异地备份:https://frappecloud.com/docs/sites/backups

将备份上传到 Google Drive

  • 一旦 Google Drive 集成成功,您可以将系统备份以及所有公共和私有文件上传到 Google Drive。
  • 要将数据备份到 Google Drive,请点击 进行备份。备份过程将在后台运行,您将收到有关备份状态的通知。

注意:如果压缩后的备份大小超过 1GB(吉字节),系统将把最新的可用备份上传到 Google Drive,而不会生成新的备份文件。