Files
xst acdb441507 feat: /qe-fleet run 安徽运八需求 + 系统坑修复
系统修复:
- fleet_runner.py: Windows UTF-8 编码兼容(reconfigure stdout/stderr)
- fleet_runner.py: run 命令自动生成合并清单供导出使用
- fleet_manifest.py: 新增 save_merged_manifest() 保存统一清单
- fleet_config.yml: 修复 YAML keywords 格式(block sequence → flow sequence)
- 恢复被误删的知识库文件(payment_flow_cases, marketing_activity_cases)

QE Fleet 产物 (安徽运八需求):
- 153个测试点 + 53条可执行测试用例
- 需求分析/风险评估/测试策略/质量裁决(PASS)
- Excel 导出 + 版本快照 v2
- 确认结论文件已归档
2026-07-13 09:49:54 +08:00

4.3 KiB

营销叠加互斥规定--该项目暂时不需要

核心业务规则,生成用例时严禁违反以下逻辑(以 /zanmall_order/order/confirm + /zanmall_order/order/submit 当前代码为准):

  1. 优惠券规则(作用域互斥):
    • 同一作用域(同店铺券池 / 平台券池)一次只会生效 1 张券,不可多张叠加。
    • 平台券与店铺券可同时生效(前提各自命中可用条件)。
    • 套餐商品(comboId > 0)不参与优惠券分摊。
  2. 优先级逻辑:
    • 用户未手动指定优惠券(userChangeCoupon != 1)时,系统默认选择优惠金额最大的可用券。
    • 用户手动指定(userChangeCoupon = 1)时,仅按传入 couponIds 选择;也可手动不使用优惠券。
  3. 积分与优惠券关系:
    • 普通订单中,优惠券可与积分抵现叠加(积分开关开启且 isScorePay = 1)。
    • 积分在会员权益阶段之后计算,提交时会单独锁积分。
  4. 一口价互斥:
    • 命中一口价(fixedPriceId != null)时,不走平台券、会员折扣、积分抵现链路。
    • 一口价会重算店铺金额并覆盖此前店铺侧优惠计算结果,不与常规营销链路叠加。
  5. 满减送互斥:
    • 满减送对以下商品组直接跳过:已命中旧满减、拼团/秒杀/积分类商品、限时折扣、一口价、套餐。
  6. 会员折扣链路差异(配置项):
    • 会员价开关关闭(legacy)时:会员折扣可继续叠加在已优惠商品上。
    • 会员价开关开启(hybrid)时:已命中营销活动或已使用优惠券的商品不再叠加会员折扣。
  7. 运费规则:
    • 运费按“店铺 + 运费模板(含供应商维度)”计算后累加。
    • 包邮只作用于命中的模板或模板条件,不是“只要有一件包邮就全单免邮”。
  8. 确认单链路顺序(普通路径):
    • 先计算店铺侧营销(折扣/套餐、满减、店铺券等),再处理平台券,再处理会员与积分,再汇总运费。
    • 若命中一口价,直接进入一口价分支并覆盖店铺金额,不再进入平台券+会员+积分常规链路。
  9. 提交单锁定规则:
    • 提交单阶段不会重新“试算”营销组合,按确认单结果执行资源锁定。
    • 优惠券、积分分别在提交阶段单独锁定,确保与确认单结果一致。

关系速查(按当前接口逻辑)

活动A 活动B 关系 条件说明
优惠券 优惠券(同作用域) 同一券池仅生效 1 张
平台券 店铺券 分池计算,可同时生效
优惠券 套餐商品 ⬇️ 套餐商品不参与券分摊,非套餐可用券
优惠券 积分抵现 积分开关开启且 isScorePay=1 时可叠加
会员折扣 优惠券 ⬇️ legacy 可叠加;hybrid 对已用券商品不叠加
满减送 旧满减/限时折扣/套餐/一口价/拼团秒杀积分类 (同商品组) 命中互斥条件即跳过满减送
一口价 平台券 一口价分支跳过平台券链路
一口价 会员折扣 一口价分支跳过会员链路
一口价 积分抵现 积分在会员链路内计算,一口价整体跳过
一口价 店铺侧营销结果(满减/店铺券/套餐) (覆盖) 一口价重算并覆盖此前店铺优惠汇总
提交阶段 优惠券锁定 执行 按确认单结果锁券
提交阶段 积分锁定 执行 按确认单结果锁积分
运费 包邮模板 ⬇️ 按店铺+模板累加;仅命中模板免运费

符号定义

  • :可叠加(同一条 confirm 链路会连续生效,且无显式跳过/覆盖)
  • :互斥(代码显式跳过,或后置计算覆盖前置结果)
  • ⬇️:条件叠加(依赖配置开关、活动命中、商品类型、券作用域等)

可配置项(影响叠加结果)

  • memberPriceSwitchConfig(enabled/failOpenLegacy):控制会员折扣走 legacy 还是 hybrid。
  • SCORE_CONFIG(shoppingScoreSwitch/useRatioLimit/shoppingUseScoreRatio):控制积分抵现开关、比例与上限。
  • 会员权益 rightsType/freeFeeType:控制会员包邮是否命中。
  • userChangeCoupon + couponIds:控制是否手动指定优惠券。