
























「电商产品能力拆解」系列第 8 篇 · 履约售后下篇。上篇讲透了正向 4 关(OMS 派单 / 分仓运力 / 轨迹回流 / 时效赔付),做到"发出去能兜住"。
但电商产品真正的考卷,是用户点下「申请退款」那一刻——从这秒起走的是逆向链路,每笔都涉及真金白银、体验和口碑。下篇啃最难的 5 关:售后单模型、退款金额回算、换货编排、行业差异、恶意退货治理。

时间:双11 后第 15 天,下午 17:20。
小A 当晚加班出了个补丁:退款按实付均摊、赠品一律不扣。看起来很公平,上线也很快。
会议室里气氛冷得很,客服总监把一份 Excel 表甩到投影上:
老张听完只说了一句:“售后不是改一个数字,是一整套逆向工厂。你那个补丁只治了用户这一方,商家亏了、平台被薅了。难的不是‘退给谁’,是‘退完之后三方都不亏’。”
她还没坐稳,屏幕上已经是用户原话截图:

老张接着说:
“我教你个口诀,售后链路从用户点‘申请’到走完整个闭环,要过 5 道关——
关 5 · 售后单模型:先搞清楚用户申请的是哪一类售后
关 6 · 退款金额回算:钱到底退多少,谁来分摊
关 7 · 换货编排:换的是同款还是异款,逆向库存怎么算
关 8 · 行业差异:标品/服饰/生鲜/家电/虚拟/跨境/O2O,规则差到天上去
关 9 · 风险治理:恶意退货、薅羊毛、白嫖党,产品必须拦得住”**

第一版售后产品方案,小A 给售后单建了一个超大表:refund_order——退款金额、退款原因、退款状态、退款时间,全塞进去。她以为售后就是”用户申请 → 客服审核 → 退钱”三步走完事。
老张直接给她浇了一盆冷水:
“售后单不是一种单,是一类单。
‘我想退钱’ / ‘我想退货并退钱’ / ‘我想换一件’ / ‘我要修一下’ / ‘我要补发’ / ‘我要赔运费’——这是 6 件完全不同的事情——状态机不同、链路不同、金额计算方式不同。
你用一张表去装,等于把内科外科儿科都塞进一个诊室——结果就是哪科都治不好。”
成熟电商平台的售后单基本是这 6 类。每一类都是独立的工作流:

核心认知:售后单第一动作不是”审核退款金额”,是”判定类型“——类型错了,后面全错。
仅退款的状态机最简单(3 个节点),退货退款最复杂,要经过 8 个节点,每个节点都可能跑出去:

认知红线:售后单的状态机和订单中心、OMS 是第三套独立的状态机。和上篇讲的”订单中心 ↔ OMS”一样,售后系统也只能通过事件与订单中心交互——不能直接改 order_status。
小A 第一版被用户骂得最惨的是”3 件套必须整单退”。根因不是审核流程问题,是售后单建模粒度错了——她把售后单挂在 order_id 上,没下钻到行项目。
差别就一个字段挂在哪:

就这一处粒度之差,决定了“3 件套退 1 件”是天经地义还是天方夜谭。 其余金额、数量、凭证等字段都是在这个正确粒度上自然长出来的,不是这一关的胜负手。
上面那张状态机图画的是最复杂的「退货退款」——8 节点全跑一遍。但售后单是一类单,6 种主类型各自的状态机长度和卡点都不一样,不能用一套硬塞:

上图将 6 种主类型的骨架长度一字排开。详细节点 + 异常出口 + 兜底机制如下:

每种类型还要预留”异常出口”——这是产品最容易漏的:

认知:售后状态机不是”画一张图就完了”——6 套主类型 × 各自异常出口 × 各自兜底机制,这 3 个维度才是状态机的真实复杂度。很多团队第一版只画了”退货退款”那一套,结果换货、维修、补发上线后状态全乱。
售后链路里,用户最敏感的就是“到底退我多少钱”——少一分都要骂街。但偏偏这是产品最容易算错的环节。
小A 那条”退一件却被扣 50 元优惠”投诉,根因就是退款金额没按分摊价回算。
退款金额不是”原价 × 数量”,而是层层减后剩多少。完整公式:
退款金额 = 商品分摊价 × 退回数量 − 应扣赠品价值 − 应扣权益 + 应退运费
每一层都有自己的规则:

核心原则:优惠要按”实付分摊价”计入每个 SKU,不是用原价计算。
举例(小A 周一那条投诉的真实场景):
错误算法(小A 第一版):退 1 件 = 退 200 元(按原价)→ 商家亏 50 元运费 + 用户被多扣 33.3 元
正确算法:每件分摊价 = 550 ÷ 3 ≈ 183.33 元 → 退 1 件 = 183.33 元

产品要做的:在订单结算时就把每个 SKU 的“分摊价”写进 order_item 表,售后退款直接读这个字段,不要每次现算。
上面那个”550 ÷ 3 = 183.33″是最简单的均价分摊——只在”同价 SKU + 单张券”时才成立。真实业务里更多遇到的是后两种场景,均摊会算错:


通用公式(行业标准,记住这两行):
某 SKU 承担的某券分摊额 = 该券适用 SKU 的原价 ÷ 该券适用范围总原价 × 该券面额
某 SKU 的分摊价 = SKU 原价 − Σ(该 SKU 承担的所有券分摊额)
完整数值演算(场景 3,3 件商品 + 2 张券叠加):
订单背景:

优惠:
逐券分摊(这是关键!):

验证:3 件分摊价之和 340 + 85 + 95 = 520 = 实付,一分钱不漏。
退款情景对照(用户分别只退 A / B / C):



618 那次研发偷懒用了均摊。结果有个用户买了 1 件 1999 的羽绒服 + 1 件 9.9 的袜子,用了 200 元券——按均摊,袜子退款额是 −95 元(负数),系统直接报错宕机 2 小时。事后复盘:这不是 bug,是设计错误——均摊本身就是错的算法,再修补也救不回来。
赠品按类型各走各的扣法:

踩坑案例:小A 那条”赠品扣 200 元”投诉,根因是没考虑”使用情况”——用户已经把赠品(护手霜)用了,却被按吊牌价扣了 200 元。正确做法:未拆封寄回,已使用按成本价酌扣,虚拟赠品(券 / 积分)未用则自动作废。
认知:赠品在用户心里是”白送的”。任何“按吊牌价倒扣”的设计都是在制造客诉——最忌讳”送的时候按 200 元宣传,扣的时候按 200 元收回”。
下单时用过的所有权益,售后时都要分情况回退:

红线:储值卡退款只能退到储值卡,绝不能退到银行卡——这是反洗钱合规的红线,详见第 7 篇支付篇异常资金池章节。
一句话:看责任方。商家责任(漏发 / 破损 / 质量)来回运费全退;用户责任(不喜欢 / 拍错)运费自付;运费险则走保险公司理赔、自动到账(详见上篇关 4)。
架构原则:退款计算逻辑必须集中在一个服务——所有售后类型(退货退款/换货差价/补发等)都调同一个”退款金额计算器”,禁止前端、客服系统各算各的,否则同一笔退款在不同入口能算出不同结果。
很多人觉得换货比退货简单——”反正不动钱”。错。
换货等于一个逆向退货 + 一个正向发货——两套履约系统都要被惊动一次,库存、运费、时效都要重算。它不是“半个售后”,是“一个半订单”。


小A 团队第一版只做了”先退后发”——结果用户从下单到收到换货新品,平均要等 9 天。竞品做”同时收发”,2-3 天搞定。客服群里被吐槽”换货比下新单还慢”。
换货链路里,逆向库存和正向库存必须同时记账——这是产品最容易漏的设计点:

3 种同款换货:
异款换货必然涉及差价:

换货中最常见的事故:用户寄回的货,仓库说没收到。
小A 团队踩过的最大坑:用户寄回 5 单,仓库收到 4 单——剩下那 1 单,用户提供了快递单号 + 签收记录,仓库说“收件量不对”。客服在中间斡旋了两周,最后赔了用户 800 元才平息。
产品兜底设计:
前面那套售后流程,不是哪个行业都能照搬——标品和生鲜的售后规则,差距比想象的大得多。

1. “7 天无理由”是底线,不是法律红线
《消法》的 7 天无理由明确排除了 4 类:用户定制品 / 生鲜 / 已激活的虚拟商品 / 报刊。也就是说生鲜、虚拟商品可以合法拒退——但前提是下单页要明确告知。
2. “不要原物”是行业惯例,不是平台慈善
寄回一箱 30 元的水果运费就要 20 元,货还烂了——当物流成本 > 商品价值时,就走「仅退款不退货」分支(用户上传拍照举证即可)。生鲜、跨境最常见。
3. 大件家电是“上门取件”
不能让用户自己把冰箱搬下楼。售后单创建时调「逆向上门取件」接口——取件 + 验货 + 寄回三合一。
4. 跨境退款必须按“原币种”
美元支付的订单,退款必须以美元退回原渠道,不能换算成人民币(汇率波动 + 反洗钱合规,详见第 7 篇支付篇)。
最后这一关,是产品最容易”看不见”的隐性成本。
小A 后来拉了一份数据:店铺退货率 18%,但其中“疑似恶意退货”约占 1.7%——按月销 1500 万计算,等于每月被薅 25 万元。
恶意退货的常见手法:
恶意退货治理不是单点功能,是画像 + 规则 + 复盘的 3 层体系:

这 3 道防线是层层收口的关系:画像先识别”谁可疑”,规则再拦住”什么动作可疑”,黑名单最后封死”已经实锤的惯犯”。单独任何一道都会被绕过,必须串起来用——这也是为什么”靠客服肉眼盯”永远盯不住羊毛党。
不过,防线拉得越多,另一个风险也在逼近——误伤。
小A 一开始规则做得过严,误伤了一批正常用户——有人因为搬家短期退了 4 单(不同商品),就被判”高风险”、无法”仅退款”。
所以风控不能一刀切:分级响应(低分仅记录、中分人工复审、高分才拦截)+ 留申诉通道(任何拦截都给用户申诉入口、给客服降级权限),上线前再跑 A/B 把误伤压到红线内。
和正向履约一样,逆向售后也有”能跑 → 能扛 → 能稳”的成长曲线:

能答对 6 题以上,你的逆向售后系统已经超过 80% 的同行了。
1.售后单是按“类型”分表/分流的吗? 还是用一张大表装 6 类售后
2.售后单粒度做到 SKU 行项目了吗? 还是只挂在订单头上
3.退款金额是按“分摊价”算的吗? 还是按原价 / 把优惠全扣某 1 件
4.每张券 × 每个 SKU 的分摊都落 order_item 表了吗? 还是售后时现算
5.赠品 / 权益 / 运费的回退规则有明文吗? 还是客服一单单凭经验判
6.换货支持“同时收发”模式吗? 还是只能”先退后发”
7.不同行业的售后规则是配置化的吗? 还是把生鲜规则硬塞进通用流程
8.恶意退货有“画像 + 规则 + 黑名单” 3 层防线吗? 还是全靠客服肉眼盯
9.风控规则做过 A/B 测试吗? 拦截率和误伤率有没有量化指标

一句话总结下篇: 逆向售后的真正考卷不是”能不能退给用户”,是”退完之后三方都不亏“——用户拿到该拿的钱,商家不被薅羊毛,平台没合规风险。
下期预告—— 第 9 篇 · 促销体系。618、双11、年货节……每一波大促背后,都是一套促销引擎在跑。促销类型怎么建模?满减/折扣/赠品/换购怎么叠加?优惠金额怎么分摊到 SKU(这一篇还会和退款回算联动)?券体系怎么设计?大促交付的产品压力管理 SOP?促销的 5 个核心命题 一次讲透。
作者:Zoe产品手记 公众号:Zoe产品手记
本文由 @Zoe产品手记 原创发布于人人都是产品经理。未经作者许可,禁止转载
题图来自 Unsplash,基于CC0协议
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。