简介:面向SAP SD模块顾问与后勤运维人员,这份PDF系统讲解了销售寄售业务的配置与操作。内容涵盖寄售补货、寄售结算、寄售退回、寄售退货四类核心单据,并结合自定义订单类型ZKB1、ZKE1、ZKR1、ZKA1,详细说明了销售区域分配、默认交货类型、编号范围、行项目类别和计划行类别的后台配置方法。同时整理寄售发货、开票、库存查询等前端操作步骤,针对VF01/VF02开票报错、发票冻结、获利能力分析值字段分配等常见问题给出排错思路,并分析了寄售模式的优势与资金风险。资源为1个PDF文件,大小1.72MB,内容结构清晰,既可作入门教程,也可作配置参考手册。已有1907人学习下载,适合正在实施或优化SAP寄售流程的顾问参考。
1. 表面上是把货放到客户仓库,实际上连收入确认的时点都换了:销售寄售到底解决什么问题
做销售业务的顾问迟早会遇到这类需求:客户说“货你先放到我仓库,我什么时候用、用了多少,你月底跟我对账再开票”。听上去只是把发货地址改一下,但真在SAP里落地时你会发现,普通销售订单的整套流程在这里是跑不通的——发货过账就会确认收入,可客户还没消耗,货权还在你手里。SAP应对这个场景给出的方案就是销售寄售业务,客户寄售的补货、消耗、结算在系统里有独立的订单类型、项目类别、库存类型和移动类型。这篇笔记就把销售寄售涉及的配置和操作完整串一遍,适合正在做SD模块实施、被寄售需求缠住的顾问,也适合财务同事想搞明白为什么寄售库存挂在特殊库存里。
2. 寄售库存为什么挂在特殊库存里:补货单不记收入、消耗开票才记收入
2.1 客户寄售和供应商寄售是两回事:别把采购侧经验搬到销售侧
SAP里“寄售”这个词覆盖两个方向。一个是你作为买方,供应商把货放在你的仓库,你用了才结算,这叫供应商寄售,挂在MM模块,玩的是采购订单里的寄售信息记录和物料移动类型;另一个是你作为卖方,把货放到客户仓库,客户消耗后你才开票,这叫客户寄售,挂在SD模块,玩的是销售订单、项目类别和特殊库存。很多项目翻车,就是因为团队把两个方向混在一起,拿着采购侧的经验去做销售侧的配置,结果补货订单进得了系统,账务上却完全对不上。
客户寄售和供应商寄售最核心的差别在于物权和结算时点。供应商寄售下,货在你的仓库,物权在供应商那里,你消耗后生成采购凭证去结算;客户寄售下,货在客户的仓库,物权还在你这里,客户消耗后才触发销售结算。前者是“欠别人的货”,后者是“别人帮你存货”,方向相反,账务逻辑也相反,配置入口更是完全不同。
2.2 一次补货、一次消耗、一次开票:寄售业务的完整链路
客户寄售的业务链路拆开看其实是三步,和普通销售订单“订单-交货-开票”的三步长得像,但每一步的业务含义都不同。
第一步是补货。你根据客户的消耗预测或安全库存,创建一个寄售补货销售订单,然后做外向交货、发货过账。注意,这一步不是“卖货”,只是把货物从你的自有库存移到客户寄售库存。物理上货到了客户仓库,但物权还是你的。第二步是消耗。客户实际用了货,把消耗数据告诉你,你在系统里创建一个寄售消耗销售订单并创建交货单、做发货过账,这时候库存才真正减少,成本也在这时结转。第三步是开票。对消耗的货物向客户开具发票,确认应收账款和销售收入,完成结算闭环。
这套链路对业务最直接的价值是,库存存放在客户仓库,但不占用客户的资金,客户按消耗付款,能显著降低客户备货的资金压力,也绑定了供货关系;对你来说,虽然不是发货即确认收入,但能换来稳定的客户库存份额,减少竞争对手插进来的机会。
2.3 物权与记账:补货、消耗、退回时的库存科目和收入确认
寄售流程里财务最关心的是“什么时候记账、记什么科目”。普通销售业务发货过账时结转销售成本、确认应收账款和收入;寄售业务完全不同步。
补货发货过账时,库存从自有库存转移到客户寄售库存,SAP本质上把它当作物料移动来处理。库存金额没有增减,只是换了库存类型,仓库保管科目会变成寄售相关的库存科目。这一步绝对不确认收入,也不产生应收,否则月底客户没消耗你账面却已经卖出去了,整个账就乱了。常见做法是补货时借方挂“发出商品”或寄售库存科目,贷方冲减自有库存。
客户消耗并发货过账时,库存正式减少,系统结转销售成本。这里要特别留意,消耗过账这步结不结转收入,取决于你后台移动类型的科目配置。多数项目会在发货过账时只结转成本,在后续VF01开票时再确认收入和应收账款;也有项目把收入一并放到发货过账时确认,减少月底开票压力。两种做法税务处理差异很大。我一般建议优先采用“消耗过账结转成本、开票确认收入”的方式,和寄售业务“用了才结算”的业务语义保持一致。
退回则反向操作,把客户寄售库存退回自有库存,标准移动类型一般用632,库存金额原路返回。这里不需要开票,也不需要冲销收入,因为补货时压根没有记账收入。理解了这三个动作的账务方向,后面配置里那些订单类型和项目类别参数就有了解释。
3. 寄售订单类型与项目类别配置:从销售订单到交货单的关键参数
3.1 复制标准类型还是从零定义:订单类型ZOR与ZKB的选型
寄售业务的配置入口在SPRO后台,核心思路是先定订单类型,再定订单类型和项目类别的对应关系。SAP标准里其实有演示用的订单类型和项目类别,比如OR、KB这类,但生产项目里我基本不会直接用标准类型,原因很简单:一是标准类型带着一堆你可能不需要的控制参数,改起来容易误伤;二是每个客户的寄售流程细节不同,有的补货要审批,有的消耗单要自动开票,复制一份改成Z开头,升级和传输时更安全、更好追溯。
常见做法是复制OR生成补货订单类型ZOR,复制普通订单类型生成消耗订单类型ZKB。两个类型在VA01新建订单时直接决定用户进入的是补货流程还是消耗流程。补货单由你的仓库或计划员创建,消耗单由销售内勤按客户消耗数据创建,角色清晰,后面配PFCG权限也方便。
定义订单类型时,字段“销售凭证类型”决定了单据编号范围和屏幕格式。补货单和消耗单最好用不同的编号范围,月底对账时一眼就能判断单据类型,不用点进去看明细。这个细节在项目上线后对数阶段特别有用。
SPRO → 销售和分销 → 销售 → 销售凭证 → 销售凭证类型 复制 OR → ZOR(寄售补货订单) 销售凭证类型:ZOR 销售凭证编号范围:01(自定义范围) 复制 OR → ZKB(寄售消耗订单) 销售凭证类型:ZKB 销售凭证编号范围:02(自定义范围)两个订单类型复制完成后,下一步不是马上定义项目类别,而是先把项目类别和订单类型的分配关系配好。SAP里订单类型和项目类别的组合决定了销售订单行项目的行为,同一种物料在补货单里和消耗单里,系统拿到的项目类别不一样,后续的交货、开票、移动类型全都不一样。
3.2 项目类别KON的六个关键参数:特殊库存、交货类型、开票类型
客户寄售的标准项目类别是KON,这是SD模块里做寄售最核心的一张配置表。复制KON为自定义项目类别,还是直接沿用KON,取决于你们要实现多少控制。如果只做标准补货、标准消耗、标准退回,直接沿KON反而省事,SAP预置的参数经过多年验证,比你自己猜的靠谱。
项目类别里需要重点确认的参数有六个:特殊库存标识、一般项目类别、计划行类别、交货相关、开票相关、自动创建交货单。特殊库存标识决定这个项目类别走的是客户寄售库存,这是寄售和普通销售最根本的区别;计划行类别决定交货计划是排程还是按单直接交货;开票相关决定这个行项目能不能开票、开什么发票类型;自动创建交货单则控制补货单保存后是否直接生成外向交货单。
寄售补货的项目类别和寄售消耗的项目类别在配置上有个关键差异:补货单不允许开票,因为补货只是移动货物,不是销售;消耗单必须允许开票,客户消耗的货物要在开票时确认收入和应收。体现在项目类别配置里,就是开票相关字段的取值的不同。
SPRO → 销售和分销 → 销售 → 销售凭证 → 销售凭证的项目类别 复制 KON → ZKON(客户寄售消耗) 特殊库存:客户寄售 一般项目类别:空 计划行类别:CP(按单计划行) 交货相关:B(按单交货) 开票相关:F(立即开票) 科目设置相关:G(不自动生成会计凭证) 复制 ZKON → ZKONR(客户寄售补货) 开票相关:空(禁止开票)这个配置看懂后,寄售的骨架就搭起来了。特别提醒一下,项目类别是SD顾问最容易漏配的地方。订单类型和项目类别的关系配置在单独一张分配表里,如果只在订单类型里改了参数,忘了把项目类别分配到订单类型,或者分配时把项目类别填成了TAN标准项目类别,补货单就会变成普通销售订单,发出货去直接记收入,财务月底对账必炸。检查方法是VA03打开测试订单,查看行项目里的项目类别,如果不是KON或你的自定义ZKON,说明分配有问题。
3.3 操纵计划行与装运点:让补货单自动进VL10C、消耗单不进交货
计划行类别决定交货物流程的自动化程度,这里有一个经常被误解的点:很多人以为消耗单也必须走完整的交货、发货、开票三步。实际上,消耗单确实也创建交货单,但和补货单的逻辑方向不同——补货单的发货过账是把库存放进寄售库,消耗单的发货过账是把寄售库存转出并产生销售成本。所以两张单子都要能创建交货单,但开票行为要区分开。
装运点配置上,寄售补货单的装运点最好和普通订单一致,不要单独设一套装运点,否则VL10C的交货单列表里会出现重复选择界面,用户不知道该挑哪个。装运点在后台“装运点确定”里维护,按发货工厂、装运条件、装载组组合确定。寄售补货单在客户主数据的装运视图里通常要维护“装运条件”,确保系统能自动带出装运点;如果客户主数据没维护,订单保存时系统会要求手工输装运条件,操作员不懂就会乱填,后面交货单创建时找不到装运点,又变成IT工单。
计划行类别在项目类别里定义后,补货单保存时系统自动带出计划行。寄售补货我一般建议把计划行里的“交货时间”和“补货提前期”算进去,让系统能根据客户消耗情况做MRP运算,MD07这个库存监控报表才有意义。很多项目只做配置不做MRP集成,寄售库存补货全靠人工看,结果就是客户那里断货了都不知道,库存监控报表形同虚设。
3.4 定价与科目确定:VKOA里寄售开票的收入和税金科目
寄售的定价过程和普通销售一样挂在定价过程确定里,客户主数据、物料主数据、价格主数据都复用现有逻辑。但有一个差别必须在定价里处理:补货单不产生收入,所以补货单的定价过程里不应该有收入条件类型,否则订单保存时系统会尝试记收入。
常见做法是给寄售补货订单类型指定一个简化的定价过程,只保留成本或净价,不带销项税;消耗订单则走完整的定价过程,包含价格、折扣、税。后台配置在“定价过程确定”里,按销售组织、分销渠道、产品组和单据类型来分配定价过程。这里我不建议过度设计,直接把补货单和消耗单分别挂两个定价过程最直观。
科目确定则集中在VKOA里配置,也就是常说的“科目确定”事务码。寄售消耗开票时的收入科目、销项税科目、应收科目,都在这里按“科目确定过程+客户科目分配组+物料科目分配组”的组合去分配。寄售和普通销售可以共用一套科目确定配置,税务上如果希望寄售消耗的收入单独挂一个科目做统计,就需要在VKOA里给寄售项目类别单独配一组科目分配组。
SPRO → 销售和分销 → 基本功能 → 科目分配 → 收入账户确定 → 科目确定 事务码 VKOA 科目确定过程:KOFI(标准财务) 客户科目分配组:01 国内客户 物料科目分配组:寄售物料专用组 科目表:1000 收入科目:60010101(销售收入-寄售) 销项税科目:22210100(应交税费-销项税) 应收科目:11220100(应收账款)科目确定这步逃不掉,尤其是你公司用了多科目表或者附加科目设置时,VKOA里漏配一项,开票过账就会报“没有找到科目”或者更隐晦的问题——凭证能过账,但科目是空的,月底财务对账时才发现收入挂错了科目。上线前一定要做一次全流程测试,用真实的物料和客户主数据跑一遍补货、消耗、开票,然后去FB03里逐个检查会计凭证的科目是否和财务确认过的一致。
4. 寄售业务日常操作全流程:补货、消耗、退货与库存核对
4.1 用VA01+VL10C完成第一次寄售补货
配置做完,操作就顺理成章了。补货是寄售业务里最频繁的操作,我按一天的实际动作给你拆一遍。
在VA01里创建寄售补货订单,订单类型选ZOR,售达方、送达方都填客户编码,物料、数量、请求交货日期填好。关键点在于行项目保存后,一定要回到订单概览确认行项目类别是ZKONR。如果你复制配置时没把ZKONR分配进ZOR,这里系统会默认成TAN普通项目类别,补货单就成了普通销售订单,后面发货过账记收入,问题就大了。
事务码 VA01 订单类型:ZOR 售达方:C001 物料:M-1000 数量:1000 工厂/库存地点:1000 / 0001 保存后检查行项目类别:ZKONR订单保存后,用VL10C批量生成交货单。VL10C按销售订单、交货到期日筛选出待交货的订单,批量勾选后点“后台执行”,系统自动创建外向交货单。这里有个习惯我建议项目上线前就定下来:补货单不要一张张用VL01N创建交货单,而是让仓库每天定时跑一次VL10C,把当天到期的补货单统一生成交货单,再交给仓库拣配。一个是效率差,另一个是VL01N手动创建时容易选错交货工厂。
交货单生成后,到VL02N里做发货过账。此处的发货过账在SAP里产生物料移动,补货场景标准移动类型是631,库存从自有库存转到客户寄售库存。过账前可以在行项目里核对一下移动类型,如果显示的移动类型不是631,检查一下后台“自动移动类型确定”的配置,或者看看交货单的类型是否被用户改了。
4.2 用消耗订单把寄售库存卖出去:VA01、VL01N与VF01的顺序
客户月底发来一份消耗清单,说“这1000个用了”,这时候做消耗流程。
先到VA01创建消耗订单,订单类型选ZKB,只填客户、物料、数量,项目类别自动带出ZKON。商品消耗单据不需要再关联到补货单,系统会从客户寄售库存里自动扣减。保存消耗订单后,到VL01N创建外向交货单,再到VL02N发货过账。消耗过账时移动类型标准值是633,系统从客户寄售库存中减去对应数量,同时按项目配置结转成本。
事务码 VA01 → 订单类型 ZKB → 输入消耗物料和数量 事务码 VL01N → 按销售订单创建交货单 → 保存 事务码 VL02N → 对交货单做发货过账 事务码 VF01 → 对消耗订单开票 → 保存生成财务凭证这时候去VF01对消耗订单开票。开票完成后,财务侧就把应收账款和收入确认掉了。开票前建议先检查一下条件记录,确保给这个客户的寄售价格不是零。寄售业务里价格维护漏掉是常见事故:补货单不记收入,当时看不出问题,等消耗单开票时发现没价格,系统要么报错,要么开出一张零金额发票,月底财务要手工调账,非常痛苦。
整个消耗流程最好在一个工作日内连续做完,尽量不要“先创建订单、明天再交货”。寄售库存是客户的资产吗?不是,是你的,但物理上放在客户那里,长期不处理消耗单,库存账实差异越来越大,月底和客户对账时你连谁对谁错都说不清楚。
4.3 寄售退货与回收:移动类型632怎么用
寄售场景下退换货有两类。一类是客户用不完要退回,那就在SD里做反向操作,创建退货销售订单或者直接用VL01N创建退货交货单,过账时移动类型取632,把客户寄售库存退回自有库存。另一类是客户退回有质量问题的货、要求换货,这就要先做632退回,再走一遍补货流程,不能在原消耗单上直接冲销,原因很简单:消耗单已经结了成本开了票,冲销会牵扯到开票冲销和税务红字,麻烦得多。
在MIGO里如果直接用移动类型632做退回,要注意凭证里要指定客户寄售库存对应的特殊库存和客户代码,否则系统不知道该从哪个客户的寄售库扣减。这个特殊库存字段在移动凭证里不显眼,用户很容易忽略,一忽略系统就报“库存不足”或者退回到自己的非限制库存里去了。我在项目里习惯是给仓库单独做个操作说明,明确告诉他们退货用VL01N做退货交货单,不要直接跑到MIGO里去输移动类型。
4.4 用MMBE和MD07核对寄售库存与补货信号
寄售库存的实时核对靠MMBE。进入MMBE输入物料和工厂,展开库存概览,你会看到一行客户寄售库存,数量就是当前寄存在客户那里的货物总量。这个数字要和客户每个月发来的消耗清单对上。如果对不上,优先查补货单的交货过账记录和消耗单的发货过账记录,看看有没有过账了但没创建销售订单的情况。
补货计划上,我一般会在SAP里把寄售库存纳入MRP运算,这地方有个亮点:MD07这个库存监控报表可以直接看到客户寄售库存的覆盖天数。MRP计算净需求时,系统会把寄售库存当作可用库存的一部份来考虑,如果寄售存量低于安全库存,MRP会给出补货建议。这比人工看消耗数据判断要靠谱得多。
事务码 MMBE 输入物料:M-1000 输入工厂:1000 双击【客户寄售】行查看详细信息 事务码 MD07 选择物料和工厂 查看库存覆盖天数与短缺数量MD07在ECC和S/4HANA里都有,Fiori用户也可以在相关库存分析App里看到同样数据。如果你是S/4HANA项目,客户主数据在BP里维护,销售视图里别忘了把“装运条件”维护好,否则寄售补货的自动交货和装运点确定都会出问题。
5. 寄售实施避坑与排查:三个高发问题、一个验证技巧
5.1 补货过账后库存进了非限制库存,而不是客户寄售库存
现象:补货单在VL02N里发货过账成功,但MMBE查看时库存挂在“非限制库存”,客户寄售库存行没有增加。
原因:这是项目类别没有生效,交货单行项目的项目类别被替换成了普通项目类别TAN,或者订单创建时项目类别压根不是ZKONR。常见于从标准订单复制订单类型时漏掉了项目类别分配,导入订单的批处理程序里没有显式传项目类别。
解决:先看VA03的销售订单行项目,确认项目类别;再去SPRO检查订单类型和项目类别的分配表。LSMW或BDC批量导入补货单时,录屏脚本里一定要把行项目类别字段显式填成ZKONR,不能依赖系统带出。
5.2 消耗单过账报“没有足够的寄售库存”
现象:客户消耗了1000件,VL02N发货过账时系统提示寄售库存不足,无法过账。
原因:MMBE里明明有库存,但消耗订单交货单里的特殊库存没有指向客户寄售库存,系统去普通库存里找货,找不到当然报错。也可能是补货过账时客户代码录错,寄售库存挂在另一个客户代码下。
解决:VL02N交货单行项目里检查特殊库存和客户代码,和补货单订货时的客户一致;再去MMBE双击寄售库存行,核对客户代码和库存地点。这个报错出现时不要急着改交货单,先对库存归属,经常能查出两张单子客户主数据不一致。
5.3 消耗单开票时VF01找不到待开票凭证
现象:消耗订单交货过账都完成了,VF01里没有待开票清单,或者开票时提示“无开票凭证”。
原因:项目类别ZKON里开票相关字段为空,或订单类型的开票参数禁止开票。补货单和消耗单的复制起点选错,导致消耗单继承了补货单“禁止开票”的设置。
解决:检查项目类别ZKON的开票相关字段取的是F还是空;再检查订单类型ZKB的“开票”控制。验证技巧是输入事务码VA03,打开一张消耗订单,到“凭证流”Tab页看是否生成了开票凭证节点,没有说明开票配置有问题。
现在每上一个寄售项目,我都会按照这个顺序做一轮自检:先跑通补货和消耗,再看MMBE库存归属,最后开票查凭证流。流程虽短,但这三个坑基本覆盖了寄售实施里八成的高频问题。希望帮到你。
本文还有配套的精品资源,点击获取