Appearance
官方团购模块 (Official Group Buy)
文档版本: V2.0 更新日期: 2024-05-20 状态: 评审中
0. 背景与目标 (Context & Goals)
问题陈述 (Problem Statement)
- 库存去化: 雪票、酒店等标准化产品在平季或特定时段需要通过"以量换价"的方式快速去库存。
- 统一营销: 官方需要一种能够聚拢流量、制造抢购氛围的营销工具,而非分散的小团。
- 价格公平: 需要解决阶梯定价中"早买反而贵"的痛点,确保用户享受到最终的最低价。
成功指标 (Success Metrics)
- 成团率: 依托"模拟成团"机制,目标成团率 100%(只要有人买就尽量成)。
- 裂变系数 (K-factor): 平均每个分享者带来的新用户数 > 1.5。
一、 核心逻辑与业务规则
1.1 统一大团模式 (Unified Group Model)
官方发起一个拼团活动 = 一个统一的大团。不存在用户自主开团的逻辑。
- 唯一性: 官方创建活动后,系统生成唯一的拼团实例。
- 聚合性: 所有用户的报名都计入这个统一的团。
- 动态性: 随着参与人数增加,阶梯价格自动解锁。
1.2 阶梯价格与退差 (Tiered Pricing & Refund)
支持基于累计参与人数的动态定价。核心原则:用户最终按最低解锁价格结算。
阶梯示例:
- 2-4人: ¥680/人
- 5-9人: ¥600/人
- 10+人: ¥550/人
结算规则 (Pay Current, Refund Difference):
- 入局支付: 用户参与时,需支付当前已解锁的阶梯价格(每满一档,即时降价)。
- 例如: 第一档 ¥680 (0-4人),第二档 ¥600 (5-9人)。
- 场景: 当前 3 人,用户 D 加入,支付 ¥680。后续凑够 5 人后,新用户 E 加入仅需支付 ¥600。
- 最终结算: 活动结束后,系统根据最终有效参团人数确定最终阶梯价。
- 场景: 最终 12 人,解锁 ¥550 档位。
- 自动退差: 系统计算差额(支付价 - 最终价),并自动将差额发放至用户钱包。
- 结果: 用户 D (付680) 退 ¥130;用户 E (付600) 退 ¥50。
- 入局支付: 用户参与时,需支付当前已解锁的阶梯价格(每满一档,即时降价)。
1.4 退款/逆向流程 (Refund Policy)
用户主动申请全额退款(取消订单)的规则。
继承原则: 团购活动不单独设置退改规则,直接继承所引用商品 (SKU) 的退改政策。
A. 活动进行中 (拼团未结束)
| 场景 | 退款规则 | 对拼团的影响 |
|---|---|---|
| 用户申请退款 | 遵循商品退改政策(如"随时退"/"24h前可退") | 参团人数 -1,若跌破阶梯则后续用户需按上一级价格支付 |
| 风控限制 | 恶意刷单(反复买退)的用户将被限制下单 | - |
B. 拼团成功后,核销前 (Group Succeeded, Before Redemption)
| 场景 | 退款规则 | 退款金额 |
|---|---|---|
| 商品支持随时退 | 用户可直接申请退款 | 最终结算价(非原支付价) 例: 付 ¥680,结算价 ¥550,则退 ¥550;差价 ¥130 已入钱包 |
| 商品不支持随时退 | 按商品退改政策执行(可能收取手续费或不可退) | 按政策 |
| 过期未核销 | 自动发起退款(若商品配置为"过期自动退") | 最终结算价 |
C. 核销后 (After Redemption)
| 场景 | 退款规则 |
|---|---|
| 已核销 (含部分核销) | 不可退款(服务已履约,不支持部分退) |
退款流程图
mermaid
flowchart TD
Start["用户申请退款"] --> CheckStatus{"订单状态?"}
%% 拼团中
CheckStatus -- 拼团中 --> CheckPolicy{"商品退改政策?"}
CheckPolicy -- 随时退/符合规则 --> RefundInProgress["全额退款 (原支付价)"]
RefundInProgress --> DecrCount["参团人数 -1"]
DecrCount --> CheckTier{"人数跌破阶梯?"}
CheckTier -- 是 --> TierUp["后续用户按上一级价格支付"]
CheckTier -- 否 --> End1["退款完成"]
TierUp --> End1
CheckPolicy -- 不支持/超时 --> Reject1["拒绝退款"]
%% 拼团成功未核销
CheckStatus -- 拼团成功/未核销 --> CheckPolicy2{"商品退改政策?"}
CheckPolicy2 -- 随时退 --> RefundSettled["退款 = 最终结算价"]
RefundSettled --> WalletNote["差价已在钱包,无需处理"]
WalletNote --> NoImpact["不影响其他用户价格"]
NoImpact --> End2["退款完成"]
CheckPolicy2 -- 不支持/收手续费 --> PartialOrReject["按政策执行"]
%% 已核销
CheckStatus -- 已核销 --> Reject2["不可退款 (含部分核销)"]
%% 过期
CheckStatus -- 过期未核销 --> CheckAutoRefund{"商品配置?"}
CheckAutoRefund -- 过期自动退 --> AutoRefund["自动退款 (最终结算价)"]
AutoRefund --> End4["退款完成"]
CheckAutoRefund -- 过期不退 --> Reject3["不退款"]关键逻辑: 拼团成功后的退款不影响其他用户的最终价格。平台承担因个别用户退款导致的阶梯成本差异,避免"退一人,全员涨价"的糟糕体验。
1.3 模拟成团 (Mock Success Guarantee)
为保障用户体验和库存去化,官方可配置"模拟成团"策略。
- 规则: 若活动结束时,参团人数未达到最低生效人数或预期的优惠阶梯,系统可自动触发"虚拟用户"补位。
- 逻辑:
- 系统自动匹配虚拟用户身份补齐人数。
- 虚拟用户不占用实际库存(或占用后释放),不参与核销。
- 确保真实用户能享受到承诺的成团权益,避免因差几人导致全员退款的糟糕体验。
二、 详细功能定义
2.1 发布端 (官方后台)
| 模块 | 字段/功能 | 说明/规则 |
|---|---|---|
| 关联产品 | 引用产品库 | 选择标准 SKU (如: 万龙平日雪票)。 |
| 价格策略 | 阶梯设置 | 设置多级人数门槛及对应价格。 |
| 结算设置 | 退差方式 | 默认: 原路退回 或 退至钱包 (推荐钱包以促进二次消费)。 |
| 风控设置 | 模拟成团 | 开关。 开启后,若到期未成团,系统自动补齐人数至最低成团门槛。 |
| 库存控制 | 活动总库存 | 本次活动的总库存上限。 |
2.2 用户端 (C-Side Flow)
A. 拼团详情页
- 价格展示:
- 展示当前已解锁价格。
- 展示最终目标价 ("再来 5 人即可解锁 ¥550")。
- 结算提示: 明确提示 "支付当前价,活动结束自动退差价"。
- 操作: [立即参团] (Pay Current Price)。
B. 状态流转
mermaid
stateDiagram-v2
[*] --> 待支付: 用户点击参团
待支付 --> 拼团中: 支付成功 (锁定当前价)
state 拼团中 {
[*] --> 人数增长
人数增长 --> 解锁新阶梯: 达到阈值
}
拼团中 --> 拼团成功: 活动结束 (含模拟成团)
拼团中 --> 拼团失败: 库存不足/极少人参与且未开启模拟
拼团成功 --> 计算退差: 最终价 < 支付价
计算退差 --> 发放权益: 核销码生效
计算退差 --> 钱包入账: 差额退回三、 验收标准 (Acceptance Criteria)
- 退差逻辑验证:
- 设置 2人(¥600)/5人(¥500)。
- 用户 A 第 1 个加入,支付 ¥600(此时未解锁任何优惠,或按原价/首阶梯支付)。
- 后续加入 4 人,最终 5 人成团,解锁 ¥500。
- 活动结束后,验证用户 A 的钱包收到 ¥100 退款。
- 模拟成团验证:
- 设置最低 5 人成团。
- 实际仅 3 人报名。开启模拟成团。
- 活动结束,系统自动补 2 个虚拟用户。
- 验证 3 名真实用户状态为"拼团成功",且收到核销码。
- 钱包展示:
- 用户中心 -> 我的钱包 -> 交易明细中,应有一笔类型为"团购退差"的入账。
四、 不做范围 (Out-of-Scope)
- 实时退差: 差价必须在活动结束后统一结算,不支持过程中实时退款(即使已经解锁了更低价),以防后续有人退团导致阶梯回退。
