每到大促時(shí),各種優(yōu)惠疊加算到我們頭疼。那么對(duì)于產(chǎn)品經(jīng)理而言,電商場(chǎng)景下存在一個(gè)訂單中使用了多種優(yōu)惠的場(chǎng)景,會(huì)涉及到退款和優(yōu)惠平攤的規(guī)則,這時(shí)候該怎么設(shè)計(jì)才合適?作者結(jié)合具體案例,談?wù)勂渲械倪壿嫛?/p>
在電商下單時(shí),存在一個(gè)訂單中使用了多種優(yōu)惠的場(chǎng)景,當(dāng)多種優(yōu)惠疊加時(shí),涉及到商品的優(yōu)惠平攤計(jì)算規(guī)則以及退款場(chǎng)景下的退款金額計(jì)算邏輯,本文用具體案例與大家分享多種優(yōu)惠疊加時(shí)的詳細(xì)計(jì)算邏輯。
- 價(jià)格為1分錢的商品不參與抵扣
- 系統(tǒng)保留2位小數(shù),向上取整
- “部分退款” 時(shí)優(yōu)惠券不退;“全部退款” 時(shí)優(yōu)惠券可退
A:全額退款:
訂單銷售價(jià)8.99 = 商品A銷售價(jià)5.01 + 商品B銷售價(jià)3.42 + 商品C銷售價(jià)2.13 – 優(yōu)惠券抵扣金額1.57
此時(shí),用戶發(fā)起全額退款,則:用戶實(shí)際獲得:商品原價(jià)(5.01+3.42+2.13)* 100% = 10.56元( 實(shí)付8.99元+優(yōu)惠券1.57元)
B、部分退款(抵扣金額平攤法):
訂單銷售價(jià)8.99 = 商品A銷售價(jià)5.01 + 商品B銷售價(jià)3.42 + 商品C銷售價(jià)2.13 – 優(yōu)惠券抵扣金額1.57
備注:在優(yōu)惠平攤時(shí),需要按照商品價(jià)格進(jìn)行正序排列,使得商品價(jià)格高的排到最后,避免發(fā)生最后一個(gè)商品的價(jià)格不足抵扣的情況
此時(shí),將優(yōu)惠券抵扣金額平攤到各商品上,各商品的實(shí)付價(jià)格為:
- 商品A實(shí)付價(jià)格= 5.01 – (1.57 * (5.01/(5.01+3.42+2.13)))= 5.01 – (1.57 * 0.47) = 5.01 – 0.73 = 4.28
- 商品B實(shí)付價(jià)格= 3.42 – (1.57 * (3.42/(5.01+3.42+2.13)))= 3.42 – (1.57 * 0.32) = 3.42 – 0.50 = 2.92
- 商品C實(shí)付價(jià)格= 2.13 – (1.57 * (2.13/(5.01+3.42+2.13)))= 2.13 – (1.57 * 0.20) = 2.13 – 0.31 = 1.82(特別注意:這是錯(cuò)誤計(jì)算方法)
- 商品C實(shí)付價(jià)格= 2.13 – (1.57 – 0.73 – 0.50) = 2.13 – 0.34 = 1.79(特別注意:由于精度問題,最后一個(gè)商品要用該商品的價(jià)格減去各商品優(yōu)惠的價(jià)格)
商品實(shí)付金額計(jì)算公式:
①非最后一個(gè)商品的銷售價(jià) = 該商品銷售價(jià) – (優(yōu)惠券抵扣金額 * (該商品銷售價(jià)/各商品銷售總價(jià)的比例))
②最后一個(gè)商品銷售價(jià) = 該商品銷售價(jià) – (優(yōu)惠券總金額 – 第一個(gè)商品的優(yōu)惠券承擔(dān)金額 – 第二個(gè)商品的優(yōu)惠券承擔(dān)金額)
當(dāng)對(duì)商品進(jìn)行退款時(shí),會(huì)涉及到退款比例,以退款比例80%為例。
(原則:為防止被薅羊毛,商品實(shí)付金額和優(yōu)惠金額同時(shí)乘以退款比例):
①用戶實(shí)付:商品實(shí)付金額乘以退款比例
退商品A時(shí),退款金額 = A商品實(shí)付金額*80% = 4.28*80% = 3.42 (故A商品退3.42元)
退商品B時(shí),退款金額 = B商品實(shí)付金額*80% = 2.92*80% = 2.33 (故B商品退2.33元)
退商品C時(shí),退款金額 = C商品實(shí)付金額*80% = 1.79*80% = 1.43(故C商品退1.43元)
②優(yōu)惠模塊:部分退款時(shí),優(yōu)惠券不退
A:全額退款:
將紅包、優(yōu)惠券、用戶余額原路退回
訂單銷售價(jià)8.00 = 商品A銷售價(jià)5.01 + 商品B銷售價(jià)3.42 + 商品C銷售價(jià)2.13 – 優(yōu)惠券抵扣金額1.57 – 紅包抵扣金額0.99
此時(shí),用戶發(fā)起全額退款,則:用戶實(shí)際獲得:商品原價(jià)10.56 * 100% = 10.56元( 實(shí)付8元+優(yōu)惠券1.57元+紅包抵扣金額0.99元)
B、部分退款:
平攤順序:優(yōu)惠券 > 紅包 > 用戶支付金額
優(yōu)先判斷是否滿足優(yōu)惠券使用門檻
訂單銷售價(jià)8.00 = 商品A銷售價(jià)5.01 + 商品B銷售價(jià)3.42 + 商品C銷售價(jià)2.13 – 優(yōu)惠券抵扣金額1.57 – 紅包抵扣金額0.99
此時(shí),將優(yōu)惠券抵扣金額平攤到各商品上,各商品的實(shí)付價(jià)格為:
商品A實(shí)付價(jià)格= 5.01 – (1.57 * (5.01/(5.01+3.42+2.13)))= 5.01 – (1.57 * 0.47) = 5.01 – 0.73 = 4.28
商品B實(shí)付價(jià)格= 3.42 – (1.57 * (3.42/(5.01+3.42+2.13)))= 3.42 – (1.57 * 0.32) = 3.42 – 0.50 = 2.92
商品C實(shí)付價(jià)格= 2.13 – (1.57 * (2.13/(5.01+3.42+2.13)))= 2.13 – (1.57 * 0.20) = 2.13 – 0.31 = 1.82(錯(cuò)誤算法)
商品C實(shí)付價(jià)格= 2.13 – (1.57 – 0.73 – 0.50) = 2.13 – 0.34 = 1.79(正確算法)
使用優(yōu)惠券的商品實(shí)付金額計(jì)算公式:
①非最后一個(gè)商品的銷售價(jià) = 該商品銷售價(jià) – (優(yōu)惠券抵扣金額 * (該商品銷售價(jià)/各商品銷售總價(jià)的比例))
②最后一個(gè)商品銷售價(jià) = 該商品銷售價(jià) – (優(yōu)惠券總金額 – 第一個(gè)商品的優(yōu)惠券承擔(dān)金額 – 第二個(gè)商品的優(yōu)惠券承擔(dān)金額)
最后,再將紅包抵扣金額平攤到各商品上,各商品的實(shí)付價(jià)格為:
商品A實(shí)付價(jià)格= 4.28 – (0.99 * (5.01/(5.01+3.42+2.13)))= 4.28 – (0.99 * 0.47) = 4.28 – 0.46 = 3.82
商品B實(shí)付價(jià)格= 2.92 – (0.99 * (3.42/(5.01+3.42+2.13)))= 2.92 – (0.99 * 0.32) = 2.92 – 0.31 = 2.61
商品C實(shí)付價(jià)格= 1.79 – (0.99 – 0.46 – 0.31) = 1.79 – 0.22 = 1.57
使用紅包的商品實(shí)付金額計(jì)算公式:
①非最后一個(gè)商品的銷售價(jià) = 該商品用完優(yōu)惠券的銷售價(jià) – (紅包抵扣金額 * (該商品銷售價(jià)/各商品銷售總價(jià)的比例))
②最后一個(gè)商品銷售價(jià) = 該商品用完優(yōu)惠券的銷售價(jià) – (紅包總金額 – 第一個(gè)商品的紅包承擔(dān)金額 – 第二個(gè)商品的紅包承擔(dān)金額)
a、當(dāng)對(duì)商品進(jìn)行退款時(shí),需要判斷退款比例,以退款比例50%為例:
暫不考慮部分退款后,付款金額不滿足優(yōu)惠券使用門檻的場(chǎng)景
①用戶實(shí)付:商品實(shí)付金額乘以退款比例
退商品A時(shí),退款金額 = A商品實(shí)付金額*50% = 3.82*50% = 1.91(故A商品退1.91元)
退商品B時(shí),退款金額 = B商品實(shí)付金額*50% = 2.61*50% = 1.30(故B商品退1.30元)
退商品C時(shí),退款金額 = C商品實(shí)付金額*50% = 1.57*50% = 0.78(故C商品退0.78元)
②紅包模塊:優(yōu)惠金額乘以退款比例
退商品A時(shí),紅包金額 = A商品紅包抵扣金額*50% = 0.46*50% = 0.23(故A商品退0.23元紅包)
退商品B時(shí),紅包金額 = B商品紅包抵扣金額*50% = 0.31*50% = 0.15(故B商品退0.15元紅包)
退商品C時(shí),紅包金額 = C商品紅包抵扣金額*50% = 0.22*50% = 0.11(故C商品退0.11元紅包)
③優(yōu)惠券模塊:部分退款時(shí),優(yōu)惠券不退
A商品實(shí)退金額:可退紅包0.23 + 可退金額1.91 = 2.14
B商品實(shí)退金額:可退紅包0.15 + 可退金額1.30 = 1.45
C商品實(shí)退金額:可退紅包0.11 + 可退金額0.78 = 0.89
b、用戶再次申請(qǐng)部分退款(再退50%,產(chǎn)生全部退款的效果):
當(dāng)判斷退款比例達(dá)到100%時(shí)(也就是最后一次退款),用各支付方式的實(shí)付金額減去上一次的退款金額(防止精度丟失問題造成的金額錯(cuò)誤)
故:
A商品再退金額:紅包0.23 + 退金額1.91 = 2.14
B商品再退金額:紅包0.16 + 退金額1.31 = 1.47
C商品再退金額:紅包0.11 + 退金額0.79 = 0.90
以及退出一張:0.73 + 0.5 + 0.34 = 1.57的一張優(yōu)惠券
1、價(jià)格為1分錢的商品不參與抵扣
2、在優(yōu)惠平攤時(shí),需要按照商品價(jià)格進(jìn)行正序排列,將商品價(jià)格高的排到最后,避免發(fā)生最后一個(gè)商品的價(jià)格不足抵扣的情況
3、最后一個(gè)商品的實(shí)付價(jià) = 該商品銷售價(jià) – (優(yōu)惠券總金額 – 第一個(gè)商品的優(yōu)惠券承擔(dān)金額 – 第二個(gè)商品的優(yōu)惠券承擔(dān)金額)
4、在退款時(shí),商品實(shí)付金額和優(yōu)惠金額同時(shí)乘以退款比例(不可先退實(shí)付金額后退券,否則在部分退款場(chǎng)景下會(huì)被用戶薅羊毛)