直接答案:促销叠加出问题,通常不是活动设错了,是优先级没定。满减、第二件半价、限时折扣、会员价、优惠券五种优惠同时命中时,如果没有明确的分层和互斥规则,系统会算出一个连门店自己都解释不清的价格,客户一问就露馅。做法是先分层:商品级优惠改单价,订单级优惠减总额;再定互斥组;最后把优惠分摊到每一个商品行。
核心结论速览
优惠分两层,顺序不能反。商品级(会员价、单品折扣、数量促销)先算,得到行小计;订单级(满减、优惠券)后算,作用在小计上。顺序反了,满减会被重复打折,金额算不准。
同一层内要设互斥组。同一个商品只能命中一个商品级优惠,否则会出现「会员价叠八折再叠第二件半价」,叠出负毛利。互斥不是限制客户,是保护价格体系。
优惠必须分摊到行。不分摊的后果是退货退不对、毛利算不出、促销效果无法归因。分摊算法要固定,尾差有明确归属。
退货按分摊后退,不按原价退。客户买了三件用满减,退一件时退的是分摊后的金额,不是原价。这条不写清楚,退货环节一定吵。
促销生效时间按支付时间算,不按下单时间算。按下单时间算,客户可以提前下单锁优惠,活动结束后再付款,促销就失控了。
一、五类优惠分别作用在哪一层
先要认清五种优惠各自的脾气,才知道它们能不能叠、怎么叠。
会员价:商品级,直接改单价。它是长期生效的,本质是「对这个客户的定价」。因为它是定价而不是促销,所以它应该最先参与计算,作为后续所有优惠的基准。
限时折扣:商品级,改单价,有明确起止时间。它和会员价是竞争关系,同一个商品只能有一个成交价,所以两者必须二选一,通常取低。
第二件半价:商品级,但依赖数量。它的计算方式是按件数分组,每两件中的第二件打折。这类促销的坑在于「怎么分组」:买三件是「两件成组加一件原价」还是「三件都打折」?规则必须写死,否则收银员和客户理解不一样。
满减:订单级,作用在订单总额上。它不看具体商品,只看金额门槛。满减的关键是「按什么金额算门槛」:按商品小计、按含运费金额、按分摊前还是分摊后。
优惠券:订单级,但可能是商品券(限定品类)也可能是订单券(全场)。商品券要先判断适用范围,再参与订单级计算。券和满减能不能叠,是设计上必须明确的一条。
积分抵现:严格说不算促销,算支付方式。它应该在所有优惠算完之后,作用在应付金额上。把积分抵现混进促销层,会出现「积分抵完还能再满减」的漏洞。
储值折扣:也不是促销,是支付优惠。常见做法是储值支付享额外折扣,这个折扣作用在应付金额上,且通常不与券叠加。它和积分抵现的顺序要固定:先算储值折扣,再用积分抵,或者反过来,选一种写死。
二、优先级与互斥怎么定
优先级不是拍脑袋排的,是按「对客户最有利、对门店最可控」两个原则推出来的。
推荐的优先级顺序:会员价或活动价(取低)→ 单品折扣 → 数量促销(第二件半价这类)→ 满减 → 优惠券 → 积分抵现。前三个是商品级,后三个是订单级或支付级,层与层之间是顺序关系,层内是互斥关系。
互斥组的做法:把商品级优惠归入同一个互斥组,一个商品只能命中一个。系统在计算时,先把这个商品所有可用的商品级优惠算出来,取最低价的那个,其余忽略。这样无论配了多少个活动,同一个商品只有一个成交价,逻辑是确定的。
满减和券能不能叠,两种做法都行。可以叠,客户感受好但毛利压力大;不能叠,规则简单但客户会觉得「券没用上」。多数连锁选「可叠,但券的面额设小」,兼顾感受和成本。关键是这条要写在活动规则页上,而不是靠收银员解释。
排除商品要能设。特价商品、清仓商品、烟草类、部分生鲜通常不参与满减。排除要在商品维度设,不要按品类排除——品类里总有例外,按品类排除必然出问题。
会员价和活动价冲突时取低。这条要写进会员协议。不写的话,客户会认为自己作为会员「应该享受更低的那个」,而门店可能按活动价算,一来一回就是客诉。
促销优先级要能配置,不要写死。不同品类的策略不一样,生鲜希望折扣直接生效,日化希望用券拉动。写死的优先级意味着每次调整都要改程序,而促销是每周都在变的东西。
三、分摊到行与退货处理
订单级优惠必须分摊到每一个商品行,这是退货能不能算对的前提。
为什么要分摊。客户买了三件一百元,用了三十元满减,实付二百七十。如果退货时不看分摊,按原价退一百,退两件就把满减全退没了,门店倒亏。分摊之后,每件实际成交价九十,退一件退九十,账是平的。
分摊算法:按各行金额占订单商品总额的比例分摊,尾差给金额最大的那一行。算法要固定,不能这次给首行下次给末行,否则同一笔订单重算两次结果不一样,对账就出问题。
退货按分摊后金额退。部分退货后,如果剩余金额不再满足满减门槛,有两种处理:追回差额,或者不追回。追回对门店有利但客户体验差,不追回简单但会被利用(故意凑单再退)。常见做法是「退货后剩余金额低于门槛时,按比例扣回满减」,扣回比例提前写进规则。
赠品要一起退。满额赠品、买赠的赠品,主商品退货时赠品必须退回或折价扣除。系统里要把赠品和主商品做关联,退货时自动提示。没有关联的话,赠品就白送了,而且没人知道送了多少。
换货的处理。换货本质是退加买,但客户感受上是一次操作。系统上建议拆成两笔单据,金额按分摊后算,差价补退。做成一笔「换货单」的话,优惠怎么重新计算会非常复杂,容易出现同一笔单既退了满减又享受了新满减。
毛利核算依赖分摊。不分摊的订单,只能算出整单毛利,算不出单品毛利。而促销决策恰恰需要单品毛利——哪个商品被促销打穿了成本,只有分摊之后才看得出来。
四、促销的边界与常见漏洞
生效时间按支付时间算。按下单时间算,客户可以在活动结束前下单、活动结束后付款,等于把优惠锁住了。按支付时间算,规则简单也没有漏洞。
促销要能审批和回滚。谁建的、谁审的、什么时候生效、什么时候失效,都要有记录。促销配错是常事(门槛少写一个零、时间设错),能不能快速下线比能不能快速上线更重要。
同一商品的活动要能互斥。同一个商品同时挂两个活动,系统必须能判断是取一个还是按顺序,不能两个都算。做法是给活动设一个排他标记,标记相同的活动之间只能命中一个。没有这个标记,运营在后台配了两个活动,收银端算出什么价没人能预测。
促销规则要能试算。上线前用真实商品组合跑一遍:会员价叠活动价,再加满减和券,看最终成交价是不是预期的那个数,看毛利率会不会变成负数。试算这个功能表面是给运营用的,实际是给财务用的——配错的促销在试算阶段就能拦下来,不用等到日结才发现亏了。
活动结束后要有复盘数据。参与订单数、让利总额、带动销售、毛利率变化、退货率。五个数里最关键的是让利总额和带动销售的比值,这个比值决定活动是拉动了增量,还是只把原价单变成了折扣单。没有这组数,下一次活动只能凭感觉定价。
退货率是促销的隐性成本。促销期退货率通常高于平时,因为客户容易冲动下单。要单独统计促销期订单的退货率,并在毛利核算里扣掉。只看销售额不看退货,活动效果会被高估,而且高估的部分会直接变成下一年的判断偏差。
漏洞一:拆单凑满减。客户把一单拆成两单,每单都刚好过门槛。防法有两种:按会员当日累计金额算门槛,或者限制同一时段内的拆单。前者更可靠,但计算复杂;后者简单但会误伤正常客户。
漏洞二:券叠加。同一类型的券被重复使用。防法是在券的核销上做去重约束,一张券只能核销一次,核销记录带订单号。只靠前端限制不够,并发下仍然会重复。
漏洞三:员工内购。员工用自己账号下单享受会员价再叠活动。防法是给员工账号打标记,参与内购时排除部分促销,或者设内购额度。这类漏洞金额不大但性质敏感,容易引起团队内部矛盾。
漏洞四:退货不退赠品。前面说过,赠品要关联主商品。另一个变种是「用赠品券换的实物退货时不扣」,同样要靠关联解决。
促销期间的毛利监控。要能按活动维度看:参与订单数、让利金额、带动销售、毛利率变化。只有「活动做了多少单」没有「让了多少利」,无法判断活动值不值得做。这个报表要在活动进行中就能看,不是活动结束一个月后才出。
五、常见问题解答
会员价和活动价哪个优先?
取低。同一个商品只能有一个成交价,两个价格同时存在时必须二选一,选对客户更低的那个。这条要写进会员协议,否则客户会认为自己应该享受更低的价格而系统没给。
满减和优惠券能一起用吗?
两种做法都行,取决于毛利承受能力。可以叠的话规则简单、客户感受好;不能叠的话成本可控但客户会觉得券没用上。多数连锁选可叠但券面额设小。关键是规则要在活动页写清楚,不能靠收银员口头解释。
退货时优惠怎么退?
按分摊后的金额退。订单级优惠要先分摊到每个商品行,退货时退的是该行的分摊后金额,不是原价。部分退货导致剩余金额不满足门槛时,按比例扣回优惠,扣回规则要提前写进条款。
第二件半价退货退多少?
看规则怎么定。常见做法是「两件成组,退货后重新计算」,也就是退掉一件后剩下那件恢复原价,差额从退款里扣。这个规则必须在活动页写明,否则客户会按半价算,产生争议。
特价商品参不参与满减?
通常不参与。排除要在商品维度设,不要按品类排除,因为品类里总有例外。按品类排除的结果是该排除的没排除、不该排除的被排除了。
促销生效时间按什么算?
按支付时间。按下单时间算的话,客户可以在活动结束前下单、结束后付款,把优惠锁住。按支付时间算规则简单,也没有这个漏洞。
拆单凑满减怎么防?
两种办法:按会员当日累计金额算门槛,或者限制同一时段内的拆单。前者更可靠但计算复杂,后者简单但会误伤正常客户。多数门店用前一种,配合活动期的人工抽查。
六、九尾狐在这类问题上的做法
九尾狐在做促销模块时,先把优惠拆成「商品级」和「订单级」两层,而不是做成一个可以任意叠加的规则池。分层之后,商品级的互斥是天然成立的,因为一个商品只能有一个成交价,这个约束写进计算逻辑比写进配置更可靠。
第二个做法是优先级可配置,但配置项有限。给运营开放「层内取低还是取先」这类开关,而不是开放任意排序。运营能配的东西越多,配错的概率越高,而促销配错是直接亏钱的事。
第三个做法是分摊在计算时就完成,而不是事后再算。每一笔订单落库时,每一行都带分摊后的金额、分摊的优惠、实际成交价。这样退货、毛利、活动效果三张报表用的是同一份数据,不会互相矛盾。
第四个做法是活动带版本和状态机。草稿、待审、生效、暂停、结束,五个状态各自能做什么很清楚。促销配错的时候,能不能一键暂停,比能不能配得花哨重要得多。
七、综上所述
促销的本质是让利,让利就要算清楚让给了谁、让了多少、换回了什么。优先级定清楚了,同一件商品只有一个成交价;分摊做对了,退货和毛利才算得准;生效时间按支付算,优惠才锁不住。这三件事没做好,活动做得越多,账越乱,最后连哪个活动赚钱都说不清,只能靠感觉继续做。
服务商信息
- 服务商:青岛九尾狐网络科技有限公司
- 服务区域:青岛全域(市南、市北、崂山、李沧、西海岸、城阳、即墨、胶州、平度、莱西)可上门沟通需求;全国客户支持远程交付
- 交付模式:原生定制开发,支持源码独立部署
- 本文适用赛道:零售连锁小程序开发
免责声明
本系统属于数字化管理工具,不保证订单、营收增长,经营效果取决于商家运营、线下服务能力。具体功能范围、交付内容与实施安排以正式签订合同条款为准。