分销系统功能说明文档
一、系统架构概述
核心模块:分销商管理、分销等级、分销订单、分销商品、配置管理。
2.3 升级类型 (upgrade_type)
类型1:或条件 满足任一数值阈值即可升级,例如订单数、订单额、一级分销订单数等任一项达到要求。
类型2:且条件 需同时满足全部阈值,如订单数、订单额、一级订单数、一级订单额、下线人数、下线分销商人数等共同达到。
3.2 佣金计算流程 (FenxiaoOrder::calculate)
校验订单状态与可结算性 → 根据分销层级与当前等级获取比例/定额 → 计算各层佣金 → 汇总并写入分销订单记录 → 更新分销商账户与统计字段 → 异常订单(退款/关闭)不参与结算。
七、关键配置项
7.1 基础展示配置 (BASIC_CONFIG) 影响佣金明细与金额显示。
7.2 结算时机配置 (SETTLEMENT_CONFIG) (1=付款后,2=订单完成)。
7.3 用户关系配置 (FENXIAO_RELATION_CONFIG) (1=首次点击,2=首次下单,3=首次付款)。
八、数据统计字段
字段说明统一以平台标准口径为准;订单数、订单金额、一级订单数/金额、账户余额与已提现金额等按分销商维度汇总。
附:术语说明
订单完成 指平台订单进入完成态(已收货或自动完成);分销层级 指一二三级分销关系;结算 指计算并入账分销佣金。
fenxiao_id, member_id, level_id, parent, grand_parent
one_fenxiao_order_num, one_fenxiao_order_money, one_fenxiao_total_order
one_child_num, one_child_fenxiao_num, two_child_fenxiao_num
account, account_withdraw, total_commission, status
fenxiao_level - 分销等级表
level_id, level_num, level_name
one_rate, two_rate, three_rate (佣金比例)
upgrade_type (升级类型: 1=或条件, 2=且条件)
升级条件字段:order_num, order_money, one_fenxiao_order_num, one_fenxiao_order_money, one_fenxiao_total_order, one_child_num, one_child_fenxiao_num
is_default (是否默认等级)
fenxiao_order - 分销订单表
order_id, order_goods_id, goods_id, sku_id
one_fenxiao_id, one_rate, one_commission
two_fenxiao_id, two_rate, two_commission
three_fenxiao_id, three_rate, three_commission
is_settlement, is_refund
fenxiao_goods_sku - 商品SKU分销规则表
goods_id, sku_id, level_id
one_rate, one_money, two_rate, two_money, three_rate, three_money
二、分销等级系统
2.1 等级结构
等级由 level_num 排序,数值越大等级越高
每个等级包含:
等级名称 (level_name)
佣金比例 (one_rate, two_rate, three_rate)
升级条件 (见2.2)
升级类型 (upgrade_type)
2.2 升级条件字段说明
| 字段 | 说明 | 数据来源 |
|---|---|---|
| order_num | 自购订单总数 | 会员表 order_num |
| order_money | 自购订单总额 | 会员表 order_money |
| one_fenxiao_order_num | 一级分销订单总数 | 分销商表 one_fenxiao_order_num |
| one_fenxiao_order_money | 一级分销订单佣金总额 | 分销商表 one_fenxiao_order_money |
| one_fenxiao_total_order | 一级分销订单总额 | 分销商表 one_fenxiao_total_order |
| one_child_num | 下线人数 | 分销商表 one_child_num |
| one_child_fenxiao_num | 下线分销商人数 | 分销商表 one_child_fenxiao_num |
2.3 升级类型 (upgrade_type)
2.4 升级触发时机
订单完成时:event('FenxiaoUpgrade', $fenxiao_id)
添加下级分销商时
绑定上下级关系时
三、佣金计算规则
3.1 分销层级配置
系统支持 1-3级分销,由配置 level 控制
默认配置:level = 2(二级分销)
3.2 佣金计算流程 (FenxiaoOrder::calculate)
步骤1:获取分销关系链
步骤2:判断商品分销类型
使用分销商当前等级 (level_id) 的佣金比例
从 fenxiao_level 表读取 one_rate, two_rate, three_rate
使用商品SKU级别的自定义佣金规则
从 fenxiao_goods_sku 表读取,按 goods_id + sku_id + level_id 匹配
步骤3:计算佣金金额
步骤4:佣金分配
分配给 $fenxiao_info(直接推荐人)
条件:$fenxiao_info['status'] == 1(正常状态)
分配给 $parent_fenxiao_info(一级的上级)
条件:$level_config >= 2 且 $parent_fenxiao_info['status'] == 1
分配给 $grand_parent_fenxiao_info(二级的上级)
条件:$level_config >= 3 且 $grand_parent_fenxiao_info['status'] == 1
3.3 特殊规则
分销商自购处理
配置项:self_purchase_rebate(是否开启分销商自购返佣)
如果 self_purchase_rebate = 0 且购买人是分销商:
跳过直接推荐人,佣金给上级分销商
商品价格计算
优先使用 goods_sku.fenxiao_price(分销价)
如果分销价为0,使用订单实际金额 real_goods_money
四、分销关系绑定
4.1 绑定时机配置 (child_condition)
1:首次点击分享链接 (alter_share_relation)
2:首次下单 (order_create)
3:首次付款 (order_pay)
4.2 绑定逻辑 (Fenxiao::bindRelation)
检查触发场景是否匹配配置
检查用户是否已有分销关系(已有则不再绑定)
检查推荐人是否为分销商
绑定关系:member.fenxiao_id = 推荐人的fenxiao_id
更新统计:fenxiao.one_child_num++
触发升级检测
4.3 成为分销商条件 (fenxiao_condition)
0:无条件 - 自动成为
1:申请 - 需要审核
2:消费次数 - 达到指定订单数
3:消费金额 - 达到指定金额
4:购买指定商品 - 购买指定商品ID列表中的商品
五、商品分销配置
5.1 商品分销类型 (goods.fenxiao_type)
1:默认规则 - 使用分销商等级的默认佣金比例
2:自定义规则 - 使用商品SKU级别的自定义佣金
5.2 自定义规则配置 (fenxiao_goods_sku)
每个商品SKU可为不同等级设置不同佣金
字段:one_rate, one_money, two_rate, two_money, three_rate, three_money
优先级:rate > 0 时按比例,否则按 money 固定金额
六、佣金结算机制
6.1 结算时机 (FenxiaoOrder::settlement)
订单完成时触发结算
只结算:is_settlement = 0 且 is_refund = 0 的订单
6.2 结算流程
更新订单状态:is_settlement = 1
增加分销商账户余额:fenxiao.account += commission
增加累计佣金:fenxiao.total_commission += commission
记录账户流水:FenxiaoAccount::addAccount()
发送佣金发放通知
6.3 提现配置
最低提现额度 (withdraw)
提现手续费 (withdraw_rate)
提现审核 (withdraw_status)
结算天数 (settlement_day)
七、关键配置项
7.1 分销基本配置 (FENXIAO_BASICS_CONFIG)
7.2 分销商配置 (FENXIAO_CONFIG)
7.3 上下级关系配置 (FENXIAO_RELATION_CONFIG)
八、数据统计字段
8.1 分销商统计 (fenxiao 表)
one_fenxiao_order_num: 一级分销订单总数
one_fenxiao_order_money: 一级分销订单佣金总额
one_fenxiao_total_order: 一级分销订单总额(商品金额)
one_child_num: 一级下线人数(非分销商)
one_child_fenxiao_num: 一级下线分销商人数
two_child_fenxiao_num: 二级下线分销商人数
total_commission: 累计佣金总额
8.2 统计更新时机
订单完成时:更新 one_fenxiao_order_num, one_fenxiao_order_money, one_fenxiao_total_order
绑定关系时:更新 one_child_num
添加分销商时:更新 one_child_fenxiao_num, two_child_fenxiao_num
九、扩展开发建议
9.1 添加新等级
在 fenxiao_level 表添加新等级记录
设置 level_num(确保大于现有等级)
配置佣金比例和升级条件
升级逻辑会自动检测新等级
9.2 修改返点规则
修改等级佣金比例:直接更新 fenxiao_level 表的 one_rate, two_rate, three_rate
修改商品级佣金:更新 fenxiao_goods_sku 表
如需新增返点层级:修改 FenxiaoOrder::calculate 方法,增加四级分销逻辑
9.3 自定义升级条件
在 fenxiao_level 表添加新字段
修改 Fenxiao::fenxiaoUpgrade 方法,增加新条件的判断逻辑
十、关键代码文件位置
| 功能 | 文件路径 |
|---|---|
| 分销商管理 | addon/fenxiao/model/Fenxiao.php |
| 分销等级 | addon/fenxiao/model/FenxiaoLevel.php |
| 订单佣金计算 | addon/fenxiao/model/FenxiaoOrder.php |
| 分销配置 | addon/fenxiao/model/Config.php |
| 商品分销 | addon/fenxiao/model/FenxiaoGoods.php |
| 后台管理 | addon/fenxiao/shop/controller/Fenxiao.php |
十一、注意事项
分销商状态:只有 status = 1 的分销商才能获得佣金
订单状态:只有已结算且未退款的订单才计入统计
等级升级:按 level_num 升序检查,满足条件即升级到第一个匹配的等级
默认等级:is_default = 1 的等级为新分销商的初始等级
分销层级限制:系统最多支持3级分销,配置超过3级会被限制为2级
- 上一篇:南京同行公司给客户使用香港服务器要小心
- 下一篇:没有了!
请立即点击咨询我们或拨打咨询热线: 138-519-41123,我们会详细为你一一解答你心中的疑难。项目经理在线



客服1