电商系统:记账设计之订单管理、流水管理
本文所描述的记账,非企业ERP等专业财务软件记账场景。适用于公司自研以及采购的类电商系统后台记账设计。在电商场景下,涉及订单管理、交易流水、资金流水等多种不同口径的管理需求。
平台型电商记账特色
常见平台型电商如淘宝、拼多多、美团,京东、亚马逊也有一部分业务为平台型。所谓平台型电商就是搭建一个电子商城,引商家入驻。平台主要起着撮合交易的角色。常见模式如下图:
平台型电商的这种业务模式也决定了其必须要适应不同商户角色的不同需求。
- 运营关注订单流水(订单支付成功与否)
- 店主关注交易流水(收入多少,支出多少)
- 财务关注资金流水(实付金额、手续费等)
三者概念模型关系如下:
(三者都可以加上支付渠道属性)
订单流水
常见支付订单有如下几种状态:待支付、支付失败、支付成功、部分退款、已退款、已撤销。
- 待支付:下单成功,唤起支付后,尚未完成支付。
- 支付失败:密码错误或者余额不足引起的渠道扣款失败。
- 支付成功:扣款成功
- 部分退款:发起退款,但没有退全款。
- 已退款:退全款
- 已撤销:传统POS系统中,指的是交易撤销,退全款;线上交易,指使预支付失效。
订单状态流转关系
业务含义:以客户与商户之间达成交易的状态为核心,表达交易是否完成。
生成条件:和业务订单发起支付同步生成。
案例
- A商户订单支付成功,无分账。
- B商户交易分账,分账接收方分别为C、D。
- E商户的订单已经退款。
交易流水
店铺的经营情况的主要指标。交易流水不关心卖了什么,只关注各个商户收了多少钱,退了多少款。交易流水不关注订单的状态和订单的交易时间,只关注交易的类型和时间。
交易流水类型为:
- ‘1’:支付
- ‘2’:退款
(不计算费率因素)
业务含义:商户经营情况。
生成条件:以订单结算商户为核心,参考支付订单、分账订单、退款订单、撤销订单为触发条件。
案例
根据上述“订单流水”的例子,可生成如下交易流水信息。
- B商户虽然有订单,但是因为其分账给C、D,所有其无交易流水。
- C、D商户参与B订单的分账,所有C、D商户各有一条交易流水。
- E商户的订单支付成功后,又退款成功,所以涉及两条交易流水。(如果是部分退款,就会关联多条退款流水)
资金流水
资金流水是我们财务意义上真正的“记账”。
资金流水要在交易流水的基础上考虑费率的因素。在每个结算周期结束时,根据资金流水来计算应结算金额。以目前支付行业相关规定,支付成功的订单在1年以内都可以操作退款。且渠道会退回手续费。我们以常见费率0.6% 为例,请看案例:
(注:应结算金额=收入-支出)
案例
- A商户加上费率因素,涉及两条资金流水;
- B商户无资金流水;
- C、D各涉及两条资金流水;
- E涉及4条,因为其订单在支付和退款两个状态切换时,各会涉及两条记录;
资金流水信息一般要同步到企业财务系统。在退款时一定要记录手续费的收入。因为支付渠道在操作退款时,会用之前所收取的手续费抵扣掉今天所产生的手续费。
总结
做电商系统后台时,切不可把订单流水、交易流水、资金流水混为一谈。否则会陷入无止境的数据核对和口径问题中。最好的办法就是三者解耦和,根据事件触发去保证三者的关系。三者各司其责,各有独自的业务含义和统计意义。
订单流水、交易流水、资金流水 此为作者本人习惯叫法,切勿去扣订单、交易、流水等词汇标准含义。因为支付行业是发展很快,词汇含义也同步演化。大家可以根据各自系统特点叫不同的名称均可。
本文由 @侠之大者 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
切不可把订单流水、交易流水、资金流水混为一谈,艾玛我经常搅合在一起,一个个列表巨宽
终于看到了一个作者真得是在试图把知识真正的清晰的表达,但所有的知识即便再想要清晰也还是有遗漏或者无法一次性全部穷尽的,真正感谢作者所付出的努力。
谢谢
看了好多就在你这看明白一点,还要多做功课,感谢作者~
这边的「支付订单」和「业务订单」应该是不一样的吧?不过应该是一对一的?
「支付订单」关联业务订单的ID,状态如:待支付,已支付,已退款。
待支付时不产生交易流水,支付时,产生一条交易流水。
退款是,再产生一条交易流水。
是这么理解么?
您好,想请教您个问题,如果一笔交易,拆分了多个订单(根据商品性质不同), 请问:那产生几笔交易流水?还是一笔交易流水记录,订单ID 包含多个?
支付流水?
拆单可以分为业务拆单(按商品性质、业务场景等)和支付拆单(按金额、支付方式等);
业务拆单,两种拆法,一是业务处理母子单逻辑,将业务母单拆成多个子单,每个子单对应一笔支付订单,支付订单再对应各自的支付流水(一般对应一笔成功的,涉及支付拆单除外);二是一个业务订单拆成多笔支付订单,一个业务订单对应多笔支付订单,支付订单再对应各自的支付流水(一般对应一笔成功的,涉及支付拆单除外)。
支付拆弹,一笔支付流水,拆成多个支付流水;一般用于应对大额支付;例如,一笔支付订单6万元,受支付渠道限额,一个支付方式最多能付5万,这时就需要拆成多笔支付流水(成功的),如支付宝支付4万,再用微信支付2万。
如果一笔订单是混合支付的,比如用户在平台的钱包余额+微信支付,那么在用户的钱包里面,是否显示微信支付的流水呢?
可以以订单金额、实付金额、备注 来做区别。
谢谢,现在是这么做的。
那在平台后台记录微信支付的时候,一般是放资金明细里面吗?
还是单独做一个微信支付的明细列表?
建议资金明细加上筛选器就可以了。
您好,有一个问题请请教一下作者:
我现在在做一个电商平台后台有关交易流水,资金流水等模块,是和三方支付对接涉及结算,这部分分模块的时候关于各个流水数据按什么模块区分,能更清楚呢?
业务订单(业务订单管理模块)、支付订单(支付订单管理模块)、支付流水(支付渠道网关)、账务流水/收支明细(账务系统);
您好,请问可以详细介绍一下这几个模块吗
大侠,可以分享下商户类型和商户层级的管理。商户类型多样化,导致需求多样化。在做商户管理时,怎么可以更好的标准化管理?
这一块在签约入网和结算时详细介绍。
有两个问题,想请教一下作者:
1、作者提到,交易流水的生成条件是以订单结算商户为核心,那指的订单完结时间,还是下单付款时间;
2、交易流水与资金流水的区别仅仅是有无手续费的意思吗?
1是的,是以下游渠道的返回为准,或者状态查询接口为准。
2有区别的。交易流水和支付订单同一天生成。资金流水是在对账后才生成。因为对账决定了真实的结算。
B商户为什么没有流水,有一笔入金和两笔出金啊,虽然只是调账,但是对应的流水是有的,关联到I、O流水;
还有这里面完全没有账务层,OR是代表的会计凭证吧。
B是否记录流水和分账的模式有关系,如果用的是微信原生的分账或者银行服务商模式的分账(支付信息和分账信息同步),B就没有交易流水。如果分账是支付后通过托管账户(支付信息和分账信息异步),就是“调账”模式。B是需要记录流水的。
这个可以在稍后分账模块再说明一下,Thanks♪(・ω・)ノ提醒。
前一种是用户支付信息的资金在交易中hold住,渠道返回支付成功,就立即分账进CD商户吗?这样的确在B商户没有流水,但是这样在C和D的账务层面看,是不是看不出来钱是从哪里来,我觉得还是要引入一个中间户做过度,不知道是否合理。
https://pay.weixin.qq.com/wiki/doc/api/allocation_sl.php?chapter=24_1&index=1
其实是有的,只是资金锁定没有展示给商户。
嗯嗯
吧