统一分销模块,支持多种模式。
本模块依赖 Drupal Commerce 8.x-2.5 或以上版本。
普通用户
是指没有 推广资格
的用户,他们无法通过推广商品来获取佣金。
分销用户
是指具有 推广资格
的用户,他们可以通过推广商品来获取佣金,
而且可以发展更多的 下级分销用户(即下线)
。
分销用户
可以通过多种方式来发展下线。
普通用户
可以通过多种方式 转化
为 分销用户
。
如果该转化是由某已有的 分销用户
的 发展行为
所促成的,
那么该新 分销用户
将成为其下线。
推广行为
是指 分销用户
通过分享商品来促成 普通用户
的购买行为。
同一 普通用户
可能会接受过来自不同 分销用户
的推广,
也就是查看过多个来自不同 分销用户
的分享的内容。
如果 普通用户
产生了购买行为,那么这些 推广者
可以平分一笔 推广佣金
。
分销用户
可以通过多种方式来发展下线。
当一个 分销用户
或其 最后推广用户
产生购买行为时,将产生 链级佣金
。
该用户的所有上级,将按设定的比例和特定方式分割这笔 链级佣金
。
购买行为
是指用户购买商品,产生订单的行为。
-
普通用户
的购买行为。有两种情况:
-
自主购买
没有接受过
推广者
的推广行为,自行主动购买。 不会产生佣金。 -
推广购买
接受过
推广者
的推广行为,推广者将获得推广佣金
。 最后一位推广者
将作为1级分佣者
,产生链级佣金
。
-
-
分销用户
的购买行为。如果开启了分销佣金直抵,那么该
分销用户
将作为1级分佣者
,产生的链级佣金
作为订单价值直接调整。 该分销用户
的上级将变为2级分佣者
,他的上级以此类推。如果没有开启分销佣金直抵,那么产生的
链级佣金
,和普通用户产生的链级佣金
是一样的,都从他的直接上级分销用户
开始分配佣金。
分销用户
可以进一步提升为 团队领导
,这意味着其所有下线发生购买行为时,
该 团队领导
都能获得一定的 团队佣金
。
团队领导
的下线可能也是 团队领导
,但仅限一层下级,这种二级团队领导称为 组长
。
组长
的下线或者下线的推广用户发生购买行为时,其 上级团队领导
会把一部分团队佣金
分给 组长
。
分销用户
提升为 团队领导
是有多种途径的。
分 推广佣金
、 链级佣金
、 团队佣金
三种。
它们分别取于商品购买价格中的一定比例,但本质上,它们只是针对特定商品所设定
的三个数字。
普通用户
接受推广而发生购买时,商品价格会进行折扣调整,称为 分销折扣
。
但如果 普通用户
是自主购买,则不能享受 分销折扣
。
分销用户
发生购买行为时, 也能享受 分销折扣
。
分销折扣
本质上是针对特定商品设定的一个优惠金额。
分销折扣
是可以选择是否开启的。
- distributor 分销用户
- leader 团队领导
- target 分销商品
- level 分佣链级分佣比例设置
- event 分销事件
- commission 分佣项
- promoter 普通用户绑定的推广者(分销用户)
-
DistributionManager
各种事件或接口,或外部模块可调用的服务。
本模块使用 Finance 模块来对分销用户的佣金进行管理。
本模块定义了2个账户类型 distribution
和 distribution_pending
。
每个分销用户创建时,都会同时创建一个 distribution
类型和一个 distribution_pending
类型的记账账户。
当订单付款后,佣金会先进入 distribution_pending
账户,当订单完成时,佣金会从 distribution_pending
账户
转账到 distribution
账户。
- 订单place时
- 对订单进行分佣处理
- 把用户转化为分销用户 (如果配置启用了自动转化)
- 订单 cancel 时,取消佣金
- 订单 complete 时,把佣金从
distribution_pending
账户转账到distribution
账户
- 设置
- 申请成为分销商接口
- 设置推广关系接口
- 分销用户管理列表
- 分销用户审核
- 把分销用户提升为团队领导
- 为commerce_product_variation entity 编辑表单添加佣金编辑功能
系统可以添加一系列的任务,分销会员
可以领取任务,当他完成领取的任务后,可以得到任务所设定的奖励。
如果一个任务是 新手任务
,那么它会被新转化的 分销会员
自动领取。
如果一个任务设定了完成任务后升级
,那么领取此任务的 分销会员
完成任务后,可以自动升级为 高级分销会员
,升级后享受的佣金会增加。
- Content Entity
- Task 代表可领取的任务
- Acceptance 代表用户领取的任务
- Achievement 记录已领取任务的完成进度
- TaskType 用于定义 Task的类型
- OrderQuantity 以推广的订单数量为任务指标的一种任务类型
- 当新的
分销用户
被创建时,自动领取所有新手任务。 - 当一个订单付款时,为订单的直属
分销用户
创建任务成绩。 - 当一个订单取消时,为订单的直属
分销用户
取消相对的任务成绩。 - 当一个领取任务完成时,执行相应的任务奖励。
- TaskManger
每成交一笔分销订单,从成交的产品价格中取一定比例,累计为月度奖励奖金基数。 这个比例是针对每一个商品进行可以有不同设置的。
当一个月度结束时,把这笔月度奖金按一定的分配策略奖励给符合条件的分销用户。
每月结束时,生成月度奖励报告
- MonthlyStatement
- month 月份
- reward_total 奖金总额
- reward_assigned 奖金分配总额
- quantity_assigned 达到奖励条件的总人数
- 月度奖金
- distribution_monthly_reward_pool 平台月度奖金池账户
- distribution_mr_order_quantity 用户奖励条件计算账户(3级业绩率专用)
- distribution_tla_inside 用户3级以内业绩计算账户(3级业绩率专用)
- distribution_tla_outside 用户3级以外业绩计算账户(3级业绩率专用)
月度奖励策略:
- MonthlyRewardCondition 检查给定分销用户是否达到奖励条件
- OrderQuantity 以订单数量为条件
- MonthlyRewardStrategy 计算给定分销用户可以得到的奖励金额
- ThreeLevelAchievement 3级业绩率
- MonthlyRewardCondition
- MonthlyRewardStrategy
- MonthlyRewardManager