dlds / yii2-mlm
Yii2 多级营销组件
Requires
- dlds/yii2-nested-sets: ~1.3.1
- yiisoft/yii2: ~2.0.12
Requires (Dev)
- codeception/codeception: ^2.3.3
- codeception/specify: ^0.4.6
- codeception/verify: ^0.3.3
This package is not auto-updated.
Last update: 2024-09-19 10:18:15 UTC
README
模块处理从适当主题生成的奖励。
安装
composer require dlds/yii2-mlm
什么是MLM?
MLM是一种推荐营销系统,用户通过成功分享或销售产品获得奖励。它与联盟营销类似,但具有多个奖励层级。在MLM中,您构建自己的用户结构(自己的团队)。
示例
| –– 你
| –––– 汤姆 (第一层级奖励)
| –––––––– 罗伯特 (第二层级奖励)
| –––– 爱丽丝 (第一层级奖励)
| –––––––– 吉米 (第二层级奖励)
| –––––––– 乔治 (第二层级奖励)
| ––––––––––––– 马克 (第三层级奖励)
在这种情况下,当您结构中的任何6个用户购买产品时,您将获得一些奖励。
模块中的实体
以下命名和实体在MLM模块中使用。
主题
用作奖励生成源的类。它通常是某种ProductOrder或其他与用户支付相关的实体。
参与者
表示MLM结构中用户身份的类。
奖励
表示单个奖励条目的类。
模块实现
首先,您必须准备您的数据库。在app/data文件夹中有一个MySQL Workbench模式/ SQL导入脚本,展示了实现所需的简单数据库结构示例。
以下表
- subject
- participant
- rwd_basic
- rwd_extra
- rwd_custom
如您所见,有三种类型的奖励。不需要使用所有三种类型。标准奖励存储在rwd_basic表中。有关奖励类型的更多信息,请参阅“奖励类型”部分。
然后,您必须将以下接口实现到您的应用程序中。
MlmSubjectInterface
此接口通常由类似ProductOrder.php的东西实现。
MlmParticipantInterface
此接口通常由类似UsrIdentityModel.php的东西实现。
MlmRewardInterface
此接口通常由类似OrderReward.php的东西实现。
模块如何工作?
完成必要的实现后,奖励生成和验证将由cron和命令行命令自动处理。
当Subject
准备好生成奖励时,模块将自动根据模块设置生成相应的奖励数量。
在创建过程中,将验证每个参与者是否具有获得奖励的资格。
然后,在保护期结束时(例如,14天,在此期间用户可以取消主题订单),将验证这些奖励。
然后,奖励将被批准并准备好支付。支付处理尚未成为本模块的一部分。
模块设置
模块提供了一组设置选项,可以更改奖励生成。
rules
数组
定义主题价格将用于每个奖励层级的百分比金额。
示例显示40%的主题价格被推入奖励并分配给5个层级
[ 1 => 20, 2 => 10, 3 => 5, 4 => 3, 5 => 2 ]
limitRules
int
规则配置的限制。定义所有规则的最大百分比总和。在上述示例中,40将合适。
delayPending
int (Unix格式)
表示每个单个奖励将在保护状态下停留多长时间。在此期间,奖励将具有PENDING状态。在此延迟之后,将使用APPROVED/DENY状态。
对于1天,必须使用86400这个值。它是Unix中一天的值:14 * 24 * 60 * 60 = 86400
roundPrecision
int
奖励值的位数。
roundMode
枚举(Mlm::MLM_ROUND_UP | Mlm::MLM_ROUND_DOWN)
指示奖励值将向上还是向下取整。
skipWorthlessRewards
boolean
当为true时,零奖励或四舍五入后值为0.0000...的奖励将被忽略。
clsParticipant
string
应用程序中参与者的模型类名。
clsRewardBasic
string
基本奖励模型类名在您的应用程序中。
clsSubjects
array
应用程序中所有主题的类名。您可以在该数组中定义1到N个主题,并且所有主题都将获得奖励。
isCreatingActive
boolean
启用/禁用奖励创建。
isVerifyingActive
boolean
启用/禁用奖励验证。验证在保护期之后处理。
isLevelRestrictionAllowed
当为true时,奖励将带有针对参与者的特殊验证创建。默认情况下,只有在有资格领取奖励的情况下才会对参与者进行验证。但是当允许等级限制时,如果参与者有资格领取特定等级的结构奖励,则将对其进行验证。
这意味着您可以将某些参与者限制为只能领取第1和第2等级的奖励,而另一些参与者则可以领取所有等级的奖励。