結(jié)算產(chǎn)品中,計費(fèi)模塊如何設(shè)計

10 評論 18405 瀏覽 130 收藏 12 分鐘

編輯導(dǎo)語:做一款結(jié)算產(chǎn)品,要考慮到支付時的各種場景,因此計費(fèi)模塊的設(shè)計尤為重要。本文作者根據(jù)自身的工作經(jīng)歷,對如何設(shè)計計費(fèi)模塊展開分析,希望對你有幫助。

做結(jié)算產(chǎn)品三兩年了,基本結(jié)算相關(guān)的應(yīng)收應(yīng)付場景都見過,主要是圍繞計費(fèi)這塊寫點(diǎn)東西,分享一下,可探討,可噴,大廠同學(xué)請繞路,因?yàn)檫@東西可能你們的團(tuán)隊已經(jīng)實(shí)現(xiàn)了。

公司現(xiàn)在業(yè)務(wù)相當(dāng)于平臺,業(yè)務(wù)抽象來說比較簡單,有點(diǎn)像電商的POP模式,用仨字兒概括就是算分成,背景如下:

  1. 幾個商戶(角色)入駐你這個平臺
  2. C端支付個訂單
  3. 平臺把該收誰多少錢,該給誰多少錢算好
  4. 信息提交至銀行做清分

各位看官淡定,以上幾個步驟我們都是合法合規(guī)的,跟銀行合作的,這塊可不要開噴。

以上就是業(yè)務(wù)背景,可能圍繞計費(fèi)這塊,做過電商的或者平臺類的朋友會遇到運(yùn)營或者各部門提的需求,舉個例子:

我每年需要收年費(fèi),可能A供應(yīng)商每年收1000,B供應(yīng)商每年收2000,等等。每個訂單我平臺要抽成,每個商家,甚至于每個商品類目,收取的都不一樣,費(fèi)用,費(fèi)率都不一樣,收取的方式天花亂墜。某些商戶我可能不間斷的還會給他階梯優(yōu)惠,等等。

每衍生出一個費(fèi)用需求,接下來就是技術(shù)一頓改,一頓出問題,一頓修復(fù)。

所以,需要一個可配置的模板,每新增一個費(fèi)用需求,不需要改代碼,可以通過配置,來解決以上的問題。

一、基本要素

個人理解,決定費(fèi)用項目的幾個基本的要素就以下幾個:

  1. 計費(fèi)業(yè)務(wù)線:每個公司都不一樣
  2. 計費(fèi)對象(角色):就是入駐你這個平臺的商戶是干嘛的,給它規(guī)個類
  3. 費(fèi)用類型:比如,年費(fèi),每單的抽成,傭金,等等

以上仨要素,或者更多要素,基本能決定入駐平臺的這個商戶的類型以級費(fèi)用類型。

二、費(fèi)用規(guī)則

1. 計費(fèi)的基準(zhǔn)值

常見的兩種:

  1. 按照(訂單/商品)售價收
  2. 按照差價收,相當(dāng)于(賣出價-進(jìn)貨價),目前我們平臺暫時就做了這兩種

這里暫時留個的個問題:萬一特殊的業(yè)務(wù),出個其它規(guī)則呢,所以這里要要解決的問題是在不變更代碼的情況下,讓業(yè)務(wù)人員可配置基準(zhǔn)值。

2. 計費(fèi)規(guī)則

基本上以基準(zhǔn)值*比例或者固定值提現(xiàn),比如每單固定抽成20塊,或者每單抽取銷售額的百分之5。

3. 計費(fèi)區(qū)間

時間段內(nèi): startTime< D < EndTIme.

時間段外: D>startTime 或者 D>EndTIme.

等于什么時間:D=XXTIme或者D=XXTIme,等等

4. 小結(jié)

其實(shí)基本的歸根究地就是,5W原則,什么時候收誰,收多少,怎么收。這個足以構(gòu)成模板的橫向元素。

首先,實(shí)現(xiàn)計費(fèi)模板實(shí)現(xiàn)的前提,就是在結(jié)算系統(tǒng),有一個類似于“訂單快照”的模塊,簡單來說就是包含所有結(jié)算用的,訂單商品維度的一個大表,包含訂單號,售價,實(shí)付,結(jié)算價,確認(rèn)收貨時間等等。快照作為后續(xù)結(jié)算甚至財務(wù)統(tǒng)計的BASE。

三、具體的配置以級相關(guān)聯(lián)的功能點(diǎn)

計費(fèi)業(yè)務(wù)線:

比如,金融業(yè)務(wù),物流業(yè)務(wù)等。

計費(fèi)對象(角色):

可以決定商戶屬性的角色,比如自營,POP商戶,視實(shí)際業(yè)務(wù)場景而定。

計費(fèi)類型:

年費(fèi),手續(xù)費(fèi),技術(shù)服務(wù)費(fèi),等等的費(fèi)用。

不過多描述了,幾個字典表相關(guān)聯(lián)可以搞定。

計費(fèi)的基準(zhǔn)值:

比如售價,結(jié)算價,售賣,等等的基準(zhǔn)值,均來自于訂單快照,且可計算。

基準(zhǔn)值的作用有以下兩點(diǎn):

  1. 就作為基準(zhǔn)值:比如某類業(yè)務(wù)需要收取 銷售額的百分之5,實(shí)際支付金額的6%,等等
  2. 作為階梯價的標(biāo)準(zhǔn),比如售價達(dá)到多少時,改變什么金額,結(jié)算金額達(dá)到XXX時,結(jié)算價發(fā)生變化,售賣天數(shù)達(dá)到XX天時,做什么,等等

這里我想表達(dá)的需求是,訂單快照相關(guān)的所有結(jié)算數(shù)據(jù),都可以配置為基準(zhǔn)值,我可以把銷售額作為基準(zhǔn)值,可以把數(shù)量作為基準(zhǔn)值,可以把售賣天數(shù)作為基準(zhǔn)值等等,而且基準(zhǔn)值可以算加減乘除。

舉個例子:

我某類商品需要按(賣出價-買入價)的3%收取平臺服務(wù)費(fèi),那么配置個基準(zhǔn)值:取名叫——利潤=賣出價-買入價(不要糾結(jié)這個名字)

這里衍生出一個功能點(diǎn):在不需要改代碼的情況下,讓基準(zhǔn)值進(jìn)行可配。

所以技術(shù)上要實(shí)現(xiàn)兩點(diǎn):

  1. 公式的解析,舉例:利潤=賣出價-買入價,賣出價是結(jié)算數(shù)據(jù)的哪列,買入價是哪列
  2. 業(yè)務(wù)人員不懂?dāng)?shù)據(jù)庫,不可能讓他們直接把列名輸出成公式,所以需要一個然他們能看的懂的輸入界面來編輯公式。

以上兩點(diǎn)就由產(chǎn)品及技術(shù)自己發(fā)揮了。

基準(zhǔn)值一般應(yīng)該是不復(fù)雜的元素,售價,結(jié)算價,數(shù)量等等的要素或者要素經(jīng)過簡單計算得出的結(jié)果,可以作為基準(zhǔn)值,比如(賣出價-賣入價),如果基準(zhǔn)值包含了數(shù)字的比例計算,那就需要注意,是不是錯誤的把某項費(fèi)用當(dāng)做基準(zhǔn)值來配置了

接下來是費(fèi)用比例以及封頂值:

費(fèi)用比例比較特殊,規(guī)則簡單的,可以配置到角色維度就可以了,比如平臺統(tǒng)一收取角色為服務(wù)商的商戶每筆訂單 10%傭金,這類的配置到角色層級即可。

規(guī)則復(fù)雜的,以電商平臺為例,比如某某商品傭金按6%收取,某某商品傭金按3%收取那這個就是商品的維度,也就是在基礎(chǔ)傭金規(guī)則存在的前提下,按照供應(yīng)商商品維度,再次進(jìn)行編輯,至于要編輯多少次,是不是每條商品都需要編輯規(guī)則,那就看產(chǎn)品設(shè)計咯。

封頂值有三種:固定金額封頂,非固定金額封頂,無封頂。

  1. 固定金額封頂:舉例:年費(fèi)每年收1w
  2. 非固定金額封頂:前三個月銷售額達(dá)到XX的百分之10,免收傭金(例子不太恰當(dāng),理解就行了)
  3. 無封頂:永久收取的費(fèi)用

計費(fèi)區(qū)間:

就很簡單了,不過多說了,至于把或且非的關(guān)系如何配置,那就自由發(fā)揮了。

綜上,階梯價場景以外的規(guī)則,通過以上這些元素橫向組成,任何基本的計費(fèi)場景以及規(guī)則都可以橫向配置出來,而且是可以配置到商品維度,節(jié)省了絕大多數(shù)因?yàn)橛嬞M(fèi)規(guī)則變化而增加的開發(fā)工作量。

最后就是階梯價:

階梯在大大小小的公司都是令人頭疼的事,一般的我見過的比較“笨”的做法是在結(jié)算時點(diǎn),生成結(jié)算單數(shù)據(jù)后,統(tǒng)一刷一遍,然后再重新計算。

上文提到的計費(fèi)區(qū)間+封頂值構(gòu)成了階梯價的數(shù)據(jù)。

這里就用到了之前提到的基準(zhǔn)值,基準(zhǔn)值一旦配置,就會在結(jié)算系統(tǒng)進(jìn)行累加,按單,或天維度,所以在商戶入駐平臺同時,根據(jù)業(yè)務(wù)場景可能衍生的階梯價規(guī)則就需要在基準(zhǔn)值進(jìn)行配置。

舉個最簡單的階梯價場景:

A供應(yīng)商,x商品,結(jié)算價為50,售賣之日起三個月內(nèi),如果銷售額達(dá)到50w,后續(xù)結(jié)算價變?yōu)?0。

這里以時間,銷售額為階梯,按照模板配置兩條:

  1. 費(fèi)用類型:平臺應(yīng)付XX費(fèi)
  2. 基準(zhǔn)值:銷售額

計費(fèi)區(qū)間,2020-01-01<=D<=2020-03-31,封頂值:50w。

到達(dá)封頂值后,清結(jié)算系統(tǒng)識別階梯價改變?nèi)蝿?wù)改變結(jié)算價去繼續(xù)執(zhí)行后續(xù)計費(fèi)即可。

然后在配置一條計費(fèi)區(qū)間>=2020-03-31,無封頂值的就可以了。

以上的場景偏向于按單計提,意思就是以訂單商品維度來收?。ㄖЦ叮┵M(fèi)用。

最后就是一次性收取的費(fèi)用,這種最簡單,比如年費(fèi),服務(wù)費(fèi),等等,配置好以后,這種本身跟訂單弱關(guān)聯(lián)的的,清結(jié)算系統(tǒng)生成任務(wù)事件推給供應(yīng)商前置生成B2B訂單去繳納就是了。

舉個小栗子:年費(fèi),按年收取的,業(yè)務(wù)人員一年在費(fèi)用模板做一條,當(dāng)然了這是比較笨的方式,最好的就是依賴配置自動生成。

小結(jié):

以上描述的“計費(fèi)”比較狹隘,目前公司所應(yīng)用的場景是清分,也可以把它稱之為“分成”模塊,就清結(jié)算系統(tǒng)邊界內(nèi)講,這個模塊的前置是支付模塊,BASE數(shù)據(jù)也就是上文提到過的“訂單快照”均依賴于支付模塊生成。

如果計費(fèi)平臺化,那么…..

計費(fèi)是一個可逆的場景,不是任何的業(yè)務(wù)線,場景都存在一個“永不變更”的場景,例如階梯價的計算,什么時間什么時點(diǎn),計入銷售額,如果計入后發(fā)生了退款,什么時點(diǎn)扣除,等等細(xì)節(jié)還有很多。

更細(xì)的不說了,歡迎大家指正與探討。

 

本文由@卡歐里?原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Pexels,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 如果要取一整月的重量的平均值階梯計費(fèi),比如,月平均重量0.3kg以下,按2.1元收費(fèi),超過0.3kg,每1kg加收1.3元。這種是不是只能在月初把上月的結(jié)算單數(shù)據(jù)全部重新跑一遍,有其他比較好的解決辦法嗎?

    回復(fù)
    1. 刨除去場景,數(shù)據(jù)量

      如果計費(fèi)邏輯是增量增加的,就是說如果某商戶的階梯重量,在某一天超過了 當(dāng)月天數(shù)X0.3千克,后續(xù)都走額外的加收邏輯就完事兒了,沒必要重跑

      如果數(shù)據(jù)量少,月初跑也沒事兒,也簡單

      回復(fù)
  2. 期待作者盡快更新 哈哈

    來自廣東 回復(fù)
  3. 你們用的哪個銀行存管的呢,平安?

    回復(fù)
    1. 其實(shí)哪個銀行都差不多,純粹是看政治傾向

      來自北京 回復(fù)
  4. 大神!媒婆在這里!!

    回復(fù)
    1. – – 公眾場合,低調(diào)

      來自北京 回復(fù)
  5. 想了解下如果產(chǎn)生退款情況是怎么計算的呢?還有就是結(jié)算跟財務(wù)這塊可以說下么

    來自重慶 回復(fù)
    1. 感謝反饋,你這仨問題一時間我難以招架啊,啊哈哈,太多了

      來自北京 回復(fù)
    2. 期待你的下一篇hhh

      來自重慶 回復(fù)