商品券后價(jià)產(chǎn)品設(shè)計(jì)方案
如何設(shè)計(jì)一套高效、準(zhǔn)確且穩(wěn)定的券后價(jià)計(jì)算系統(tǒng),是電商產(chǎn)品設(shè)計(jì)中的關(guān)鍵挑戰(zhàn)之一。本文詳細(xì)介紹了商品券后價(jià)的產(chǎn)品設(shè)計(jì)方案,從背景目標(biāo)、功能設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)邏輯到異常處理機(jī)制等多個(gè)方面進(jìn)行了全面闡述。
一、背景及目標(biāo)
1.1 背景
在電商系統(tǒng)中,券后價(jià)是一個(gè)很重要的促單環(huán)節(jié)。券后價(jià)能夠有效提升用戶體驗(yàn),促進(jìn)用戶購(gòu)買行為,所以券后價(jià)是一個(gè)很重要的促單工具
1.2 目標(biāo)
設(shè)計(jì)一套可通過(guò)實(shí)時(shí)計(jì)算和動(dòng)態(tài)展示券后價(jià),用戶能夠清晰了解優(yōu)惠信息,從而提高轉(zhuǎn)化率和銷售額。同時(shí),系統(tǒng)的處理機(jī)制需確保券后價(jià)計(jì)算的準(zhǔn)確性和穩(wěn)定性。
二、功能設(shè)計(jì)與實(shí)現(xiàn)方案
2.1 券后價(jià)的計(jì)算公式
1. 公式:券后價(jià) = 商品原價(jià)(或活動(dòng)價(jià)) – 最優(yōu)優(yōu)惠金額
2. 要點(diǎn)說(shuō)明:
- 活動(dòng)價(jià):需考慮會(huì)員價(jià),限時(shí)折扣、會(huì)員折扣等疊加活動(dòng)
- 最優(yōu)優(yōu)惠金額:優(yōu)惠金額可以是單張優(yōu)惠券的金額,也可以是多張優(yōu)惠券疊加后的總金額
3. 邏輯說(shuō)明:
- 門檻:需滿足券的使用條件(如滿減門檻、品類限制、時(shí)間有效性等)。
- 若商品原價(jià)不滿足優(yōu)惠券門檻,券后價(jià)仍顯示原價(jià)。
- 若滿足門檻,券后價(jià)直接展示原價(jià)減優(yōu)惠券面額后的價(jià)格。
4. 示例:
- 商品原價(jià) 100 元,用戶持有滿 100 元減 20 元優(yōu)惠券 → 券后價(jià) 80 元。
- 若商品原價(jià) 90 元,使用同一張券 → 券后價(jià)仍為 90 元(不滿足門檻)
2.2 基礎(chǔ)計(jì)算邏輯(僅一張優(yōu)惠券)
1. 若僅一張優(yōu)惠券且滿足條件
2. 券后價(jià) = 原價(jià) – 優(yōu)惠券抵扣金額
3. 示例:原價(jià)100元,優(yōu)惠券滿100減20 → 券后價(jià)80元
2.3 多張優(yōu)惠券時(shí)的計(jì)算邏輯
1. 可疊加優(yōu)惠券,如平臺(tái)券+店鋪券
1)疊加條件:
需符合規(guī)則,如允許店鋪券+平臺(tái)券疊加,但需排除互斥券
2)計(jì)算方式:
券后價(jià) = 原價(jià) – ?優(yōu)惠券1抵扣金額 ?– ? 優(yōu)惠券2抵扣金額
示例:商品原價(jià)為200元,有兩張優(yōu)惠券同時(shí)可疊加使用,券A(滿100減20)和券B(滿150減30),券后價(jià)為:200?20?30=150元
3)疊加優(yōu)先級(jí):
優(yōu)先級(jí)為:平臺(tái)券 > 店鋪券 > 商品券(具體可按自己平臺(tái)優(yōu)先級(jí))
系統(tǒng)實(shí)現(xiàn):通過(guò)接口校驗(yàn)優(yōu)惠券的可疊加標(biāo)識(shí)字段,動(dòng)態(tài)計(jì)算最優(yōu)組合
2. 不可疊加優(yōu)惠券,如互斥券或系統(tǒng)限制:
1)選擇最優(yōu)券:系統(tǒng)自動(dòng)選擇最優(yōu)券,即取優(yōu)惠力度最大的券
取數(shù)邏輯:計(jì)算所有可用券的抵扣金額,取最大值。如:優(yōu)惠券A減30元 vs 優(yōu)惠券B減25元 → 選A
2)計(jì)算方式:
- 券后價(jià) = 原價(jià) – 最優(yōu)券抵扣金額
- 示例:商品價(jià)100元,券A(滿100減20)、券B(滿100減15),選擇券A,券后價(jià)=80元
2.4 優(yōu)惠券有門檻時(shí)的處理
1. 規(guī)則:
滿足門檻:優(yōu)惠券生效,直接抵扣。
未滿足門檻:券后價(jià) = 原價(jià),但需提示用戶“需湊單達(dá)XX元可用”(如“券后價(jià) 150 元,需湊單滿 200 元可用”)。
2. 計(jì)算邏輯:
1) 單商品:
若商品原價(jià) ≥ 優(yōu)惠券門檻 → 券后價(jià) = 原價(jià) – 抵扣金額
否則 → 券后價(jià) = 原價(jià)
2) 購(gòu)物車多商品:
- 總金額 ≥ 門檻 → 總?cè)髢r(jià) = 總原價(jià) – 抵扣金額
- 否則 → 券后價(jià) = 總金額,提示用戶“需湊單達(dá)XX元可用”
- 示例:商品A原價(jià)100元,商品B原價(jià)80元,優(yōu)惠券滿200減30 → 券后價(jià)180元(未達(dá)標(biāo)),需湊單20元可用券。
3. 跨商品合并計(jì)算:
在購(gòu)物車/結(jié)算頁(yè),用戶需湊單滿足門檻后,按比例分?jǐn)們?yōu)惠至單個(gè)商品。
三、系統(tǒng)實(shí)現(xiàn)邏輯
3.1 核心流程
用戶訪問(wèn)詳情頁(yè) → 系統(tǒng)查詢用戶可用券 → 過(guò)濾滿足門檻的券 → 按優(yōu)先級(jí)/疊加規(guī)則計(jì)算最優(yōu)價(jià)格 → 返回券后價(jià)。
3.2 核心模塊設(shè)計(jì)
1. 優(yōu)惠券中心:
管理優(yōu)惠券元數(shù)據(jù):如存儲(chǔ)優(yōu)惠券類型、門檻、適用范圍、有效期、疊加規(guī)則等
2. 商品中心:
提供商品原價(jià)、活動(dòng)價(jià)、品類、店鋪等信息
3. 計(jì)算引擎:
- 輸入:商品價(jià)格、用戶優(yōu)惠券列表、商品屬性、活動(dòng)規(guī)則等信息。
- 輸出:最優(yōu)券后價(jià)及優(yōu)惠券組合
4. 緩存層:
- 使用Redis緩存高頻商品的券后價(jià),減少數(shù)據(jù)庫(kù)壓力。
- 存儲(chǔ)用戶可用券、預(yù)計(jì)算結(jié)果
5. 前端展示層:
- 通過(guò)接口實(shí)時(shí)獲取券后價(jià),結(jié)合樣式高亮(如“券后¥XX”)
3.3 計(jì)算場(chǎng)景與策略
1. 商品列表頁(yè)
預(yù)計(jì)算 + 緩存:基于商品原價(jià)和優(yōu)惠券,提前計(jì)算并緩存結(jié)果(需緩存用戶可用券信息)
計(jì)算方式:可采用異步任務(wù)預(yù)計(jì)算
2. 商品詳情頁(yè)
實(shí)時(shí)計(jì)算:結(jié)合用戶當(dāng)前可用券,實(shí)時(shí)計(jì)算最優(yōu)價(jià)格(調(diào)用優(yōu)惠中心接口)
計(jì)算方式:實(shí)時(shí)接口調(diào)用
3. 購(gòu)物車頁(yè)
動(dòng)態(tài)計(jì)算:根據(jù)購(gòu)物車內(nèi)已選商品總價(jià)和優(yōu)惠券門檻/組合,實(shí)時(shí)計(jì)算更新
計(jì)算方式:動(dòng)態(tài)接口調(diào)用
4. 兜底策略:
超時(shí)或計(jì)算失敗時(shí),前端默認(rèn)展示原價(jià)并提示“優(yōu)惠信息加載中”
3.4 流程示例
1. 用戶訪問(wèn)商品詳情頁(yè) → 前端請(qǐng)求券后價(jià)接口,攜帶用戶ID、商品ID。
2. 計(jì)算引擎查詢用戶可用優(yōu)惠券,過(guò)濾出滿足門檻的券。
3. 按優(yōu)先級(jí)選擇最優(yōu)券,返回券后價(jià)。
3.5 異常處理機(jī)制
1. 價(jià)格計(jì)算為負(fù)數(shù)
處理邏輯:如計(jì)算結(jié)果低于0(負(fù)數(shù)),券后價(jià)按0元計(jì)算 或 限制最低價(jià)為0元并提示“系統(tǒng)檢測(cè)到異常優(yōu)惠,已自動(dòng)修正”,系統(tǒng)需記錄日志
2. 價(jià)格計(jì)算低于成本價(jià)
處理邏輯:如計(jì)算結(jié)果低于成本價(jià),系統(tǒng)需記錄日志并通知商家處理
3. 計(jì)算服務(wù)超時(shí)
處理邏輯:降級(jí)展示原價(jià),并記錄日志告警。
四. 案例說(shuō)明
案例1:多券疊加場(chǎng)景
商品:原價(jià)200元,參與限時(shí)折扣(8折 → 160元)。
優(yōu)惠券:
- 券A:滿150減30(可疊加)
- 券B:滿200減50(不可疊加)
計(jì)算:
- 疊加券A:160 -30 = 130元
- 選擇券B:160(未達(dá)標(biāo)200元門檻)
→ 最終券后價(jià)130元
案例2:不可疊加場(chǎng)景
商品:原價(jià)300元
優(yōu)惠券:
- 券A:滿 200 減 50(不可疊加)
- 券B:滿 300 打 7 折(不可疊加)
計(jì)算:
- 券A:300 – 50 = 250 元
- 券B:300 × 0.7 = 210 元
→ ?最終券后價(jià) 210 元
五、設(shè)計(jì)思路(很重要)
首先在做券后價(jià)計(jì)算公式時(shí),需分兩個(gè)層面考慮:商品價(jià)格取值,如會(huì)員價(jià),活動(dòng)價(jià);優(yōu)惠券取值:如門檻,多張優(yōu)惠券處理。接下來(lái)是多張優(yōu)惠券的情況。這時(shí)候需要考慮優(yōu)惠券的優(yōu)先級(jí)。
然后考慮計(jì)算量,商品列表、詳情頁(yè)、購(gòu)物車都需要顯示券后價(jià),所以系統(tǒng)需要高效計(jì)算
最后需要檢查是否有遺漏的點(diǎn),比如優(yōu)惠券優(yōu)先級(jí),如店鋪券優(yōu)先于平臺(tái)券,或者面額大的優(yōu)先。另外,門檻計(jì)算是否需要考慮商品是否參與活動(dòng),比如某些商品可能不參與滿減。這些細(xì)節(jié)都要考慮到方案中,確保全面覆蓋用戶需
基于以上的思考方式,輸出一份最佳的產(chǎn)品解決方案
作者:pemg的筆記 公眾號(hào):pemg的筆記
本文由 @pemg的筆記 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)
- 目前還沒(méi)評(píng)論,等你發(fā)揮!