7.8 KiB
7.8 KiB
分销 + 区域代理 联合手动测试流程
测试用户 ID 段:910001 ~ 910009
统一登录密码:Test@123456
默认测试区域:贵州省 / 贵阳市 / 南明区(area_id=520102)
一、脚本使用(服务器项目根目录执行)
1. 一键重置(推荐)
# 清理旧数据 + 重新生成全部测试用户/配置
php addons/shopro/tests/dist_regional_reset.php
# 指定测试商品
php addons/shopro/tests/dist_regional_reset.php --goods-id=195
# 不写入 mock 示例佣金(仅用户/代理/地址)
php addons/shopro/tests/dist_regional_reset.php --no-income
# 预览将删除的数据(不执行)
php addons/shopro/tests/dist_regional_reset.php --dry-run
2. 分步执行
# 仅清理
php addons/shopro/tests/regional_agent_cleanup_test_users.php --dry-run
php addons/shopro/tests/regional_agent_cleanup_test_users.php --confirm
# 仅生成
php addons/shopro/tests/regional_agent_setup_test_users.php
php addons/shopro/tests/regional_agent_setup_test_users.php --goods-id=195 --money=10000
3. SQL 方式(无法跑 PHP 时)
# 清理
mysql -u用户 -p 数据库 < addons/shopro/tests/dist_regional_test_cleanup.sql
# 初始化(备份方案,功能少于 PHP 脚本)
mysql -u用户 -p 数据库 < addons/shopro/tests/regional_agent_test_data.sql
二、测试账号一览
| 用户ID | 手机号 | 昵称 | 角色 |
|---|---|---|---|
| 910001 | 19900000011 | 区域-省级代理 | 贵州省区域代理 |
| 910002 | 19900000012 | 区域-市级代理 | 贵阳市区域代理 |
| 910003 | 19900000013 | 区域-区县代理 | 南明区区域代理 |
| 910004 | 19900000014 | 区域-买家主测 | 纯区域测试买家 |
| 910005 | 19900000015 | 区域-买家备用 | 备用买家 |
| 910006 | 19900000016 | 区域测-分销三级 | 钻石分销商 A |
| 910007 | 19900000017 | 区域测-分销二级 | 黄金分销商 B |
| 910008 | 19900000018 | 区域测-分销一级 | 白银分销商 C(直推) |
| 910009 | 19900000019 | 区域-买家D | 联合测试主买家 |
关系结构
分销链:910006(钻石A) ← 910007(黄金B) ← 910008(白银C) ← 910009(买家D)
区域代理:收货地址落在「贵州省/贵阳市/南明区」时
→ 910001 省 3%
→ 910002 市 2%
→ 910003 区县 1%
(叠加模式 stack,默认配置)
910006(19900000016)团队统计预期(setup 脚本会自动刷新 child_user_count* / child_agent_count*):
| 指标 | 预期值 |
|---|---|
| 团队总人数 | 3(910007+910008+910009) |
| 一级成员 | 1(910007) |
| 二级成员 | 1(910008) |
| 团队分销商 | 2(910007、910008;910009 为买家非分销商) |
脚本自动配置
| 模块 | 配置项 | 测试值 |
|---|---|---|
| 分销 | commission_mode | differential(级差+管理奖) |
| 分销 | 等级档位 | 白银40/5% 黄金80/10% 钻石120/15% |
| 分销 | 复购 | 推荐人继续分佣 + 本人固定返现5元 |
| 分销 | 结算时机 | 支付后(payed) |
| 分销 | 团队统计 | 初始化后自动刷新(小程序「我的团队」可直接用) |
| 区域 | commission_mode | stack(省+市+区叠加) |
| 区域 | 等级比例 | 省3% / 市2% / 区县1% |
| 区域 | 结算时机 | 支付后(payed) |
| 商品 | regional_enable | 1(参与区域分佣) |
| 商品 | differential_enable / management_enable | 1(参与级差/管理奖) |
三、手动测试场景
场景 A:联合测试(分销 + 区域代理同时触发)★ 推荐
目的: 一笔订单同时验证两套分佣互不干扰。
- 执行
dist_regional_reset.php重置数据 - 小程序用 19900000019(买家D) 登录
- 选择脚本输出的测试商品,确认默认收货地址为「贵州省/贵阳市/南明区」
- 余额支付完成
- 服务器验证:
# 从后台订单列表或数据库获取 order_id、order_item_id
php addons/shopro/tests/commission_verify.php verify-item {订单明细ID}
php addons/shopro/tests/regional_agent_verify.php verify-order {订单ID}
- 后台核对:
- 分销 → 佣金明细:910008/910007/910006 应有级差奖 + 管理奖
- 区域代理 → 佣金明细:910001/910002/910003 各一条区域佣金
预期(实付 1000 元举例):
| 类型 | 受益人 | 预期 |
|---|---|---|
| 级差奖 | 910008 白银C | 40 元 |
| 级差奖 | 910007 黄金B | 40 元 |
| 级差奖 | 910006 钻石A | 40 元 |
| 管理奖 | 910008 | 50 元(5%) |
| 管理奖 | 910007 | 100 元(10%) |
| 管理奖 | 910006 | 150 元(15%) |
| 区域 | 910001 省 | 30 元(3%) |
| 区域 | 910002 市 | 20 元(2%) |
| 区域 | 910003 区县 | 10 元(1%) |
实际金额以商品实付为准,比例不变。
场景 B:仅区域代理
目的: 不触发分销链,只测区域匹配。
- 用 19900000014(买家主测) 登录下单(该用户无上级分销商)
- 验证:
php addons/shopro/tests/regional_agent_verify.php verify-order {订单ID}
- 预期:仅 910001/910002/910003 有区域佣金,分销佣金表无记录
场景 C:分销商自购
目的: 验证自购时级差跳过本人、管理奖本人仍拿。
- 用 19900000018(白银C) 登录自己下单
- 验证分销佣金:
- 910008 无级差奖
- 910007、910006 级差照常
- 910008 有管理奖(5%)
- 区域代理仍按收货地址匹配(若地址在测试区域)
场景 D:复购测试
目的: 第二单触发复购本人返现。
- 用 19900000019 先下一单(首购)
- 再下一单(复购)
- 第二单预期:
- 分销链级差+管理奖照常(repurchase_referrer_enable=1)
- 买家D 额外获得 5 元复购返现(repurchase_self_enable=1)
场景 E:区域分佣模式切换
目的: 测试 stack / exclusive / differential 三种模式。
- 后台 → 区域代理 → 代理设置 → 修改「分佣模式」
- 清理上一单佣金或用新买家下单
- 对比三种模式下省/市/区县佣金金额变化
| 模式 | 1000元实付预期(3%/2%/1%) |
|---|---|
| stack 叠加 | 省30 + 市20 + 区10 = 60 |
| exclusive 独占 | 仅区县 10 |
| differential 级差 | 省10 + 市10 + 区10 = 30 |
四、后台检查清单
- 区域代理 → 代理列表:910001~910003 状态正常、区域正确
- 区域代理 → 代理等级:省3%/市2%/区县1%
- 区域代理 → 佣金明细:订单号、佣金规则、结算状态
- 分销 → 分销商:910006~910008 等级与上下级正确
- 分销 → 佣金明细:award_type 区分级差/管理/复购
- 分销 → 分销设置:commission_mode=differential
- 分销 → 分销商品:测试商品已开启级差/管理/区域
五、常见问题
| 问题 | 处理 |
|---|---|
| 下单提示不在配送范围 | 脚本已自动配置运费模板;可再执行 fix_dispatch_express_areas.sql |
| 无区域佣金 | 检查订单 province_id/city_id/area_id 是否有值;商品 regional_enable=1 |
| 无分销佣金 | 检查 commission_mode、商品 differential_enable/management_enable |
| 一级佣金0%仍出现推广佣金 | 勿开启「关系链分佣」;级差模式下旧版 repurchase_rate=5% 不应再覆盖一级佣金(已修复) |
| 我的团队人数显示 0 | 运行 dist_regional_reset.php 会自动刷新;旧数据可手动跑 setup 脚本或见下方团队统计说明 |
| 区县佣金比例不对 | 检查代理是否设置了「单独佣金」覆盖等级配置 |
| 想清空重测 | dist_regional_reset.php 或 cleanup --confirm |
六、测试完成后清理
php addons/shopro/tests/regional_agent_cleanup_test_users.php --confirm
或 SQL:dist_regional_test_cleanup.sql