多个供应链系统中有一定的“鄙视链”存在,进销存系统就是其中一个,有很多人想入行供应链产品经理,奈何不知道如何入手。作者以进销存系统为例,探讨入门供应链领域的路径,希望对你有所帮助。
前言
进销存系统,听过的人多,做过的人少。
听过但是没做过大都认为这个系统很简单,多个供应链系统中有一定的“鄙视链”存在,而进销存系统显然是在底层的那个。虽然我也认为进销存系统确实简单,但是产品水平并不一定是通过业务复杂度和系统复杂度来体现的,把一个简单的事情做到极致和完美也是一种高水平的体现。
接下来,我们就来一起看看进销存系统一般都包含什么内容吧。
一、进销存产品结构
采购管理,采购退货,入库管理;
销售管理,销售退货,出库管理;
库存查询,库存流水,调拨,盘点;
二、进销存的核心模块
1.采购管理
当要采购东西的时候,首先得要知道需要采购什么(商品管理),然后向谁采购(供应商管理),接着是以什么价格去采购(采购价格管理),采购多少数量,最后采购的东西要放到哪里去(仓库管理)。
通过上面的一串问题,我们发现,如果要设计采购管理方面的系统功能,那么需要先提前把对应的基础数据给维护起来,于是我们就要先搭建好基础数据管理的模块,这样才能支撑未来的业务数据流转。
有了基础数据之后,我们就可以根据实际的业务流程来设计对应的单据流转了。采购可以分成正向流程和逆向流程,正向流程就是采购到入库的流程,逆向流程就是退供应链的流程,从仓库退货回供应商。
2.销售管理
进销存的销售管理和常见的2C的电商玩法有一些不太一样,主要就是2C的电商一般不太会对客户进行管理,也就是不需要记录客户的信息,因为客户太多了,只需要把一些共性抽出来做用户画像即可。而进销存系统中销售,由于存在一些批发单或者是高价值的单,还有一些赊欠账等,再加上客户数量可能不会太多,所以反而会有客户管理的需求。
3.库存管理
首先是关于库存变化的一些方式,这里我借鉴网上看到的一张图,做了一个高清版,一般来说进销存/ERP/OMS/WMS等都会有包含这里面的一些场景,只不过不同的系统之间会有一些少量的差异而已。
每一次的库存数据变动,无论是增加还是减少,都要生成对应的库存流水。库存流水一般包含如下几个关键字段:
产品/SKU
仓库/门店
变化的数量,是增加还是减少
变化后的数量
变化的原因,是什么业务类型导致的变化
变化的单据,是因为什么单据导致的变化
库存流水最新的一条记录展示的数量,就是库存查询的结果数量。
例如说A001这个产品最新的库存流水是出库了2个,剩余8个库存,那么在查询库存的时候,就会看到深圳仓库中A001的库存是8。
讲到这里,再补充一个我之前在知识星球科普的一个关于盘点的案例,帮助大家更好的理解库存流水和库存查询的关系。
盘点就是实物数据和系统数据进行对比,因为实物是不能调整的(凭空创造或者消失),所以一般的盘点都是按实物为准,然后去调整系统的库存数据。
实物多于系统,那就是盘盈了;实物少于系统,那就是盘亏了。
盘盈了,那盘点结束了之后,就会生成一条多了的库存流水,一般的业务类型是“盘盈”或者“盘盈入库”;盘亏了,那盘点结束了之后,就会生成一条少了的库存流水,一般的业务类型是“盘亏”或者“盘亏出库”;
这里最关键的点就是,盘点完成之后不是直接调整系统库存,例如把100变成98。而是需要插入一条“-2”的库存流水,业务类型是“盘亏出库”,然后通过流水的计算,让库存从100变成了98,最后查询的时候发现系统的库存就变成了98。
记住,所有的库存变化都要和流水挂钩,切不可直接修改库存结果,因为这样未来才好核对,也符合实际的业务需求。
三、从进销存学供应链
听我讲完了进销存的“进”,“销”,“存”业务之后,好像感觉进销存好简单,那作为一个新人应该怎么去验证自己对进销存的掌握情况呢?
当体验完了一整套进销存系统之后,我相信大家又会产生一个新的疑问:这就是供应链?这就是供应链系统吗?我学完了这个之后我就入门供应链了吗?
我的答案是:这就是供应链,但又不全是供应链。
什么是供应链?这个定义很官方,也很庞大,不太好理解。
从这个定义中,我们摘出一些关键词,然后通过这些词来帮助我们更好地理解供应链。
供应链的三流:信息流、实物流、资金流。
供应链涉及的角色有:原料供应商、制造商、分销商、零售商和终端用户。
最近看了一本书,里面提到了供应链五流的概念,我感觉这个定义会帮我们更好的理解供应链。
例如上面提到的采购退货和销售退货,其中就包含了逆向实物流,因为实物要退回;逆向资金流,对应的资金也要退回。而信息本身就是双向流动的,所以不存在正向和逆向的区分。
所以通过上述的定义,我们可以发现,供应链系统其实就是围绕供应链各个环节而产生的信息化管理系统,通过信息系统来帮助我们更好地管理供应链的各个角色,各个环节,各个场景等。
四、总结
关于进销存系统,上面的内容拆解的都很粗糙,如果要拆解的很细,估计得要用视频直播的方式来做了,篇幅非常的大。
如果是0财务经验的产品同学,刚接手财务模块的工作,了解财务的基础知识是非常必要的。
财务最重要的一项工作是通过各种报表数据反映企业目前的经营状况,因此财务模块的终级目标是根据财务同学的要求,出具对应的财务报表。
不论财务是直接将这些报表数据对外提供,还是只是将报表作为数据源再进行二次加工,都要求产品同学能够理解哪些业务数据是重要、有意义的,需要转化为财务数据的。
我自己是在不同平台学习了初级会计的课程,学完后会对财务有个大概的理解。
至于要重点学习哪些内容、学习到什么程度,取决于公司的具体业务,例如我们的业务只有基本的采购、代销入库、销售、库内管理(盘盈亏、报损),当我基本理解了资产/负债/所有者权益、三大报表、进销存业务的会计分录后,就开始进行规划了。
在规划详细的功能之前,需要先确定财务模块的定位。这里的定位指的是,需要产出一个完善的财务系统(类比金蝶、oracle的财务产品),还是只需要将业务数据用财务语言描述出来,能指导企业日常的经营管理即可。
由于本公司的财务统一使用了oracle系统,且财务需要管理的不仅有进销存业务,还有房租、水电、人员工资等,作为业务系统,只需要提供主营业务的财务数据即可,因此我选择了后者。
财务模块的基本模型如下:
图1
财务模块具体有哪些基础信息,需综合考虑以下因素:
(1)取决于财务视角是否需要对这些基础信息进行再加工,例如下图所示。ABCDEFG在业务系统中都是独立的仓库,但是在成本计算时,需要对ABCD四个仓库统一计算成本,这一信息是专门适用财务的,不影响正常的业务运作,我们就会考虑把ABCD的关联关系作为财务模块的基础信息。
图2
(2)取决于财务视角是否需要按照业务对基础信息的定义进行区分。例如图1的供应商、B端客户、C端客户,对于财务来说,都属于往来对象,因此业务系统的这3类基础信息,在财务模块中可以合并为往来对象。
(3)可以参考开发同学的意见,从技术角度考虑冗余的必要性。
成本模块是用于计算库存成本的,不同企业可能采用不同的成本计算方法,这个依据实际业务需求即可。
(1)这里顺便提一下不同的成本计算方法
1.先进先出:期末材料按照最接近的单位成本计算,比较接近市场价格,因此资产负债表可以较为真实地反映财务状况;但是由于本期发出材料成本是按照较早购入材料的成本进行计算的,所以计入产品成本的直接材料费用因此可能被低估,等到这些产品销售出去就会使利润表的反映不够真实[1]。
2.移动加权平均:按照每次出入库商品数量和金额计算平均成本,从长期来看商品的成本是趋于稳定的,也能更好地反应商品的成本,但是计算非常复杂,每发生一次业务就需要对成本进行移动[2]。
3.个别计价法:分别按照各批商品购入时的单位成本计算期末存货成本。适用于数量不多、价值较高的商品[3]。例如钻石制品,而建筑用的水泥、沙子显然不适用这种计算方法。
1.成本计算公式:移动后成本=(|移动前库存金额|+|本次业务发生金额|)/(|移动前库存数量|+|本次业务发生数量|)。
2.成本要按照什么维度进行移动,这个取决于业务方需要对成本管控到什么力度,需要成本来做什么。我们目前是记录到仓库+商品维度,每个商品在一个仓库中,只有一个成本,每一次入库对成本进行移动。也可能有些公司需要对成本记录到仓库+商品+供应商维度,也可能有些公司只需要商品的成本,对所有仓库的商品统一进行移动加权。
3.当根据第1点的计算公式计算出的成本金额产生异常时,例如期末库存数量为0,期末库存金额不为0(异常情况可根据财务和业务的要求自行定义),系统会触发自动调整机制,将成本调整为一个合适的值。
记账模块主要是从财务视角来看企业主营业务涉及到的账款问题,分为应付账款、预付账款、应收账款、预收账款。
3.3.1应付预付
(1)预付账款
1.官方释义:预付账款是指企业按照购货合同的规定,预先以货币资金或货币等价物支付供应单位的款项。是预先付给供货方客户的款项,也是公司债权的组成部分。在日常核算中,预付账款按实际付出的金额入账,如预付的材料、商品采购货款等。对购货企业来说,预付账款是一项资产。
2.简单理解就是预先支付了供应商一笔钱,还没收到货。这笔钱在财务账上就会记为预付账款
(2)应付账款
2.简单理解就是供应商货已经入库了,应该要付给供应商,还没来得及付的款项。
(3)记账与核销
应付账款和预付账款,都分为记账与核销两步。这里需要先梳理一下当前业务系统有哪些单据,是需要分别记录应付和预付的。
系统的逻辑与财务记分录的逻辑类似,这里用预付付款单和采购单作为例子简单说明:
1)预付的付款单,出纳成功付款10,000,会记录预付账款10,000元,此时预付款可用10,000元
2)采购订单下单了1,000,并且商品已入库,会记录应付账款1,000元。
1.应付账款是在什么节点记入。这个与企业采用的会计核算制度,由于本企业采用的是权责发生制,即按照商品的货权和风险转移的节点进行记账,所以是在入库节点。
2.预付账款的可用余额是否需要变更,入库1,000元,如果使用的是之前10,000元的预付款,则实际可用的预付款变为了9,000元。
3)采购订单完成付款,将1000元的应付账款进行核销,此时企业就没有应付了。
3.3.2应收预收
(1)预收账款
1.官方释义:预收账款是指企业向购货方(小店或大客户)预收的购货订金或部分货款。企业在收到这笔钱时,商品或劳务的销售合同尚未履行,因而不能作为收入入账,只能确认为一项负债,即贷记“预收账款”账户。
2.简单理解:钱收了,货还没发出去(正数的预收)。钱已经退了,但是货还没入库(负数的预收)。
(2)应收账款
1.官方释义:应收账款是指企业在正常的经营过程中因销售商品、产品、提供劳务等业务,应向购买单位(小店或大客户)收取的款项,包括应由购买单位或接受劳务单位负担的税金、代购买方垫付的各种运杂费等。应收账款是伴随企业的销售行为发生而形成的一项债权。
2.简单理解:客户向企业买货,货发出去了,需要记一笔应收,表示这是企业应该收回的钱。客户退货,入库完成,记录一笔负数的应收。
与应付预付一样,应付账款和预付账款,也分为记账与核销两步。
这里用销售单作为例子简单说明:
1.客户下了一笔销售订单1,000元,并完成了线上支付,此时订单生成,商品还未发出,会记录预收账款1,000元;
2.这笔销售订单出库后,假设缺货发运,只发了800元的货,会记录800的应收账款;
3.使用800的应收账款核销了1000元预收中的800,且预收账款同时核销了800元的应收账款;
4.当200元退给客户时,使用缺货退款的200元核销1000元预收中的200,至此,预收账款和应收账款核销完成。
剩余的对账模块和财务报表(包括应收/预收的报表)会放在下一篇中讲述。
如何设计进销存系统的财务模块(2)——对账与报表
1.对账
1.1与供应商对账
1.1.1结算周期
与供应商的对账单按照合同的结算周期生成。
1.1.2对账单据
这里会根据商品性质区分不同的单据来跟供应商对账结算。
经销商品由于入库后货权即转移,一般会对结算周期内已入库的采购单、已出库的采退单、已确认的费用单进行对账;代销商品是售卖后货权直接从供应商转移给客户,一般是对结算周期内已出库的销售订单、销售退货单进行对账。
如果是本公司代供应商保管的商品,还应根据合同,对仓库内发生的盘盈亏、报损进行对账。
举个例子:与供应商签订的经销合同结算方式为月结,6月1号会自动将5月出入库的单据生成对账单。假设5月发生的所有经销业务如下表,6月1号的账单初始金额为100-22+180=258.00。
若企业与供应商还签订了返利条款,基于含税进货额返利1%,则企业应从供应商处收取的返利为:258.00*1%=2.58,那么最终对账金额为258.00-2.58=255.42。
注意对账的同时会核对供应商开来的发票,发票可能会有蓝票、票折、折让多种方式,根据业务的需要决定系统是否要设计发票录入的功能。
1.2与客户对账
1.2.1结算周期
与下游客户的对账单也按照合同的结算周期生成。
1.2.2对账单据
一般会对结算周期内已出库的销售订单、已入库的销售退货单、已确认的费用单进行对账;如果是大客户,一般也会签订一些给客户的返利条款,在对账时根据条款的基数和比例计算应返费用即可,逻辑与跟供应商的对账是一样的,只是角色互换一下。
2.财务报表
2.1进销存报表
进销存报表的内容,是根据“期初+本期发生=期末”这个公式制定的,维度可以根据企业的需要自定义,主要包括:
期初库存数量、期初库存金额;本期入库数量、本期入库金额、本期出库数量、本期出库金额;期末库存数量、期末库存金额。期初和期末还是比较好理解的,本期发生这一项,不同企业可能会有不同的要求,并不一定所有的入库都会记在本期入库、所有出库都会记在本期出库。
例如:采购入库会记入本期入库,调拨的出库和采购退货也会记入本期入库,但是会记负数;销售会记本期出库,销售退货也会记本期出库,为负数。
一般金额会同时记含税和去税,财务只用去税金额做账。
这时可能会带来税差问题,也就是说期末去税金额根据“期初+本期发生=期末”这个公式计算出来,是不成立的,有两种办法可以解决:
如果成本采用的是移动加权,在成本移动时直接用去税金额移动;如果成本是用含税金额移动的,在出报表时,可以增加一个税差金额作为调整项。
2.2销售收入/成本报表
这份报表是将当月销售的每个经销商品的收入、对应销售的成本进行统计并展示的报表,可以据此来计算商品毛利,是非常重要的经营管理报表。
可根据需要按照不同维度区分:例如分为明细报表、仓库汇总报表、商品汇总报表、订单汇总报表。
统计单据&节点:
销售订单出库销售退货单入库销售订单/退货单关联的差异单出/入库收入金额是订单/退货单上的金额,例如销售单S001中,一瓶可口可乐销售时的单价是5,销售了4瓶,则这个订单这个sku对应的收入为2.5*4=10。
第3点的例子中,这个订单这个sku对应的成本为2.0*4=8。
2.3应收账款报表
2.3.1应收账款余额报表
提供未核销的应收账款的明细记录,下图提供了明细余额报表的参考模板,可根据业务需要,额外提供客户维度的汇总余额报表。
2.3.2应收账款核销
提供已核销的应收账款的核销记录,下图提供了明细核销报表的参考模板。
2.4应付账款报表
2.4.1应付账款余额报表
2.4.2应付账款供应商余额报表
2.4.3应付账款核销记录报表
2.5预收账款报表
2.5.1预收账款余额报表
提供未核销的预收账款的明细记录,下图提供了明细余额报表的参考模板,可根据业务需要,额外提供客户维度的汇总余额报表:
2.5.2预收账款核销报表
提供预收账款被核销的明细记录,下图提供了明细核销报表的参考模板:
2.6预付账款报表
2.6.1预付账款余额报表
提供未核销的预付账款的明细记录、供应商维度的余额汇总,下图分别提供了明细和供应商余额的参考模板。
预付款可能不同公司会有不同的管理,例如需要作为供管同学下单的参考,或者根据已经入库的商品核对真实的预付款余额等,为了应对不同业务的需要,预付款可能需要多个字段,根据不同节点记入不同的金额变动。