电商系统设计——电商促销计算与分摊体系

本系统采用经典且健壮的"四级平行式算价模型"。其核心底层逻辑是:所有高层级营销活动的"门槛校验",均统一基于"第一级单品促销"计算出来的"单品基准价"

有效避免了层层扣减导致的门槛计算混乱,既能给用户带来"大促丝滑算价"的体验,又能完美保障财务和退款的闭环。

📌 一、 核心概念与价格术语定义

  • SKU 原价:商品无任何促销时的基础标价。

  • SKU 单品基准价:指扣除单品促销(折扣、直降)后的价格,也是第二、三、四级优惠校验门槛的"黄金基数"。

  • SKU 优惠价 :指商品扣除单品促销、总价促销、商品优惠券之后的净商品价(不含运费)。

  • SKU 最终实付价:用户最终为该 SKU 支付的真金白银(含分摊后的运费及运费券抵扣)。

⚙️ 二、 四级促销正向流水线设计

订单结算时,系统严格按照以下 1 ➡️ 2 ➡️ 3 ➡️ 4 的流水线进行正向算价与比例分摊

复制代码
[用户下单] 
    ↓
【第一级:单品促销】 ➡️ 计算出「单品基准价」
    ↓
【第二级:总价促销】 ➡️ 满减、买N免1(多活动自动取最优,按单品基准价分摊)
    ↓
【第三级:抵扣类优惠】➡️ 商品券(按单品基准价分摊) -> 运费券(按净商品价分摊)
    ↓
【第四级:满返类优惠】➡️ 判断是否达到门槛,建单成单后后置触发(不影响实付)
    ↓
[生成最终实付价并锁死拆单]

1. 第一级:单品促销

  • 业务逻辑:直接作用于单个 SKU,无需用户领券或跨商品凑单。

  • 触发校验:系统自动校验当前时间是否在活动有效期内(如"限时 8 折")。

  • 核心计算公式

  • 设计要点:单品级降价会拉低单品基准价,若降幅过大,可能会导致该商品无法触发后续总价促销的门槛。

2. 第二级:总价促销(跨商品凑单层)

  • 业务逻辑 :支持多商品、多数量跨 SKU 组合。同一笔订单只能生效一个总价促销活动**(全局互斥)**。

  • 最优选择与破平机制 :系统会静默并行计算所有命中活动的减免金额,自动为用户选择减免金额最大的活动。若金额完全相同,则严格按以下优先级破平:

方案 A:满减(普通/限时)计算与分摊
  1. 算前筛选:提取购物车中所有标记参与该满减活动的 SKU。

  2. 计算参与总价

  3. 匹配最高档位 :与活动配置(如满200减30、满300减50)比对,匹配命中最高档位的固定金额,作为优惠总额

  4. 按比例分摊(向下取整)

    结果向下取整到分,保留2位小数

  5. 尾差补齐 :因为取整会产生微小差额(≤总件数*0.01元),系统需将差额补加到原价(单品基准价)最高的那件 SKU 上,实现总账闭环。

方案 B:买 N 免 1(普通/限时)计算与分摊
  1. 件数统计与匹配

    计算免单件数:

  2. 确定免单总额(去最低价) :将所有参与 SKU 按单品基准价从低到高排序(若同价则按 SKU ID 升序),取出前「免单件数」条记录的单价加总,得到免单总额。

  3. 按比例分摊(向下取整):将这一笔免单的总福利,按各 SKU 的总价权重平摊到所有参与商品身上:

    结果向下取整到分,保留2位小数

  4. 尾差补齐:因分摊取整产生的微小差额,补加到被免单的最低价 SKU 上。

3. 第三级:抵扣类优惠(叠加抵扣层)

此层级包含商品优惠券运费券

内部各自互斥(一单各用一种),但它们可与第二层总价促销叠加。

模块一:商品优惠券(通用券/品类券)
  • 门槛校验平行规则:虽然此时总价促销已经减免了金额,但优惠券的门槛校验依然看「单品基准价之和」,不受第二层减免的影响。

  • 分摊逻辑

    结果向下取整到分,保留2位小数

  • 尾差补齐:微小差额补加到单品基准价最高的那件 SKU 上。

模块二:运费券(无门槛抵扣)
  • 运费前置规则:一单内多商品有邮费时取最大值;若有任一商品免邮,则整单免邮。

  • 计算引出「SKU 优惠价」

  • 运费券减免额

  • 运费分摊基数:以各 SKU 扣完前三项后的"净商品价(优惠价)"之和作为分摊基数。

  • 按比例分摊运费优惠

  • 尾差补齐 :微小差额补加到活动价(单品基准价)最高的那件 SKU 上

  • 最终实付价推导

4. 第四级:满返类优惠(后置激励层)

  • 业务逻辑:如满额返券、满件返现。

  • 设计要点:完全不影响当前的收银台实付金额。它同样遵循平行校验原则(基于单品基准价之和),在系统判定成单/收货后,由后台静默向用户账户发放返利,属于后置营销成本。

🛡️ 三、 防薅羊毛设计

在逆向设计上通过"优惠分摊锁死",从根本上杜绝了利用凑单拿高额优惠后退掉凑单品的"薅羊毛"行为:

  1. 绝对实付退款原则 :任何 SKU 发生部分退款或售后时,退款金额上限严格等于该 SKU最终实付价(系统正向计算时已包含单品、总价、商品券、运费券分摊后的净价)。

  2. 不追回、不重算优惠:即使用户退掉了部分商品,导致剩余在手商品在件数或总价上已经不再满足原订单里的满减、买 N 免 1 或优惠券门槛,系统也明确拒绝重新计算营销门槛,绝不向用户追回已享有的优惠。因为优惠已经安全、合理地按比例均摊在各个 SKU 上,用户无法通过部分退款获得任何额外收益。

💡 四、 产品经验与方法论提炼

1. 平行式算价

传统的层层递进式算价(如原价减完单品再算满减,满减完了再算券门槛)极其考验用户的数学能力,经常导致购物车由于一块钱的差额错失优惠,转化率低下。

采用平行式门槛判定,所有活动都盯紧"单品基准价"。系统在后台静默帮用户计算互斥活动的最优方案,前端购物车直接加红加粗展示"分摊后优惠价",去结算时配合"为您节省 XX 元"的视觉刺激。这种"无焦虑、占便宜"的心理暗示是电商提升结算转化率(CVR)的核心大杀器。

2. 强拆单与金额锁死:消灭财务和研发的"1分钱"漏洞

多商品、大促跨店等场景下,如果不在正向建单时把金额平摊干净,后端的财务对账、商家分账、逆向退款将变成灾难。

正向支付成功后,系统必须立刻以 SKU 维度进行绝对拆单(1个 SKU 数量 = 1个独立子订单流水),把正向算好的单品、满减、券分摊、运费券分摊金额死死写入数据库子表。逆向退款时直接调用该固化金额,禁止研发在退款阶段写任何"重新计算优惠"的动态代码,彻底消灭"四舍五入"引发的一分钱账目不平,构建最牢固的财务防线。

相关推荐
龙虾PRO1 天前
AI 人才赛道新风口:非传统产品经理如何入局 AI 产品落地赛道
人工智能·产品经理
初雪云2 天前
iOS 上架入门:证书、描述文件、IPA 上传到底是什么关系?
android·ios·自动化·产品经理·iphone
sunneo2 天前
S16.1第一性原理做产品(1):从《创新者的窘境》看AI颠覆——为什么大模型不是护城河
人工智能·产品运营·产品经理·ai编程·ai-native
Rain的Java大神实战圈3 天前
高并发下如何防止商品超卖少卖
经验分享·redis·高并发·架构设计·电商·面试经验
xiaoduo AI5 天前
多店机器人是什么?又能给店铺带来什么?
智能客服·电商·多店机器人
鱼疯而行8 天前
第5章 B端与C端的真正分化机制
产品经理·ai编程
zzzzzz31018 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
UXbot25 天前
帮助企业低门槛开展AI应用开发的平台推荐
前端·低代码·ui·交互·产品经理·原型模式·web app
金融支付架构实战指南1 个月前
SPU、SKU、商品属性数据库标准设计方案
电商·spu·sku