芸众商城我店模式源码插件测试安装记录

芸众商城商家让利的模式主要是将平台的提成盈利让给消费者/⻔店商家或者是推⼴者团队,通过让利的⽅式来刺激平台推⼴和消费以及去吸引⻔店商家⼊驻平台。那么在实现让利的过程中,我们功能⾥⾯设计了有多种不同的让利机制,来刺激不同的平台⻆⾊。⽐如:把让利⾦额转化为冻结资产进⾏倍数奖励,让消费者或⻔店获得翻倍的奖励额度。或者是直接以佣⾦收⼊的⽅式进⾏奖励,让推⼴者实时获得佣⾦进⾏提现。不仅有多种类型的奖励,还有即时性的奖励和动态的奖励,不同类型不同状态的奖励组合,让平台紧紧锁定⽤户和商家。欢迎大家登录后台体验测试一下~ 还有其他400+插件,可以一起测试一波,选择合适自己商业模式的组合上线运营

让利⾦额会如何进⾏拆分?

一、全部插件,找到商家让利插件:

1、基础设置

1)插件开启:启用插件则可以使用相关功能

2)支持自定义插件/会员中心/冻结积分/可用积分名称

3)商家让利比例:让利金额=订单金额(优惠前的金额)*让利比例

(⼀) ⻔店订单的让利⾦额=订单原价*提成⽐例

(⼆) 平台订单的让利⾦额=订单原价*让利⽐例

4)会员消费获得倍数:会员可以获取X倍的冻结积分
会员消费获得冻结积分公式=订单金额(优惠前的金额)*让利比例*会员消费获得倍数 

5)门店商家获得倍数:门店店长可以获取X倍的冻结积分
门店商家获得冻结积分公式=订单金额(优惠前的金额)*让利比例*门店商家获得倍数 

6)推广者团队获得倍数:推广者团队可以获取X倍的冻结积分

推广者团队获得冻结积分公式=订单金额(优惠前的金额)*让利比例*推广者团队获得倍数

因为在消费者的推⼴团队队列中会有多个代理商会员,每个代理商获得多少冻结积分会根据【代理奖励机制】进⾏分配。冻结积分⾸先会分为两个部分:推⼴者团队冻结积分和推⼴者团队管理冻结积分⽐例;

一、推⼴者团队冻结积分:推⼴者团队中会有多个代理商获得冻结积分

(⼀) 公式:让利金额×推⼴者团队获得倍数×推⼴者团队冻结积分⽐例

1. 团队奖冻结积分公式:让利金额×推⼴者团队获得倍数×推⼴者团队冻结积分⽐例×(⾼等级-低等级代理佣⾦⽐例)-拨出的平级奖冻结积分

2. 平级奖冻结积分公式:拨出者获得的冻结积分×对应等级平级奖⽐例

3. 区域奖冻结积分公式:让利金额×推⼴者团队获得倍数×推⼴者团队冻结积分⽐例×区域分公司冻结积分奖励⽐例
 

⼆、推⼴者团队管理冻结积分:推⼴团对中会有多个同等级代理商获得冻结积分

(⼀) 第⼀个管理奖公式:让利金额×推⼴者团队获得倍数×推⼴者团队管理冻结积分比例

(⼆) 后续逐层管理奖公式:上⼀个管理奖冻结积分×管理每层比例

7)每日补贴前:每日补贴前XX单,没有设置默认是前100单

8)业绩统计:订单完成后/支付后 结算奖励

9)团队业绩统计是否包含自己:只影响代理商管理列表的显示

10)可用积分抵扣返还:开启可用积分抵扣返还:未付款订单、退款订单关闭订单后,用于抵扣的可用积分返还到会员账户

插件开发逻辑代码块:PluginApplication.php

<?php
namespace Yunshop\ProductRebate;

use Yunshop\ProductRebate\common\listeners\AfterOrderPaidEventListener;
use Yunshop\ProductRebate\common\listeners\AfterOrderReceivedEventListener;
use Yunshop\ProductRebate\common\listeners\AfterOrderRefundSuccessListener;
use Yunshop\ProductRebate\common\listeners\AgentLevelChangeEventListener;
use Yunshop\ProductRebate\common\listeners\RegisterMemberListener;
use Yunshop\ProductRebate\common\listeners\StoreCashierEventListener;
use Yunshop\ProductRebate\common\models\IncomeWithdrawModel;
use Yunshop\ProductRebate\common\services\PluginMenuService;
use Yunshop\ProductRebate\frontend\services\MemberCenterService;

class PluginApplication extends \app\common\services\PluginApplication
{
    public function setConfig()
    {
        //商品挂件保存
        \app\common\modules\shop\ShopConfig::current()->set('observer.goods.product_rebate', [
            'class'         => 'Yunshop\ProductRebate\backend\services\GoodsWidgetService',
            'function_save' => 'addGoods'
        ]);
    }

    public function getWidgetItems()
    {
        return [
            'vue-goods.product_rebate' => [
                'title' => trans('Yunshop\ProductRebate::productRebate.plugin_name'),
                'class' => 'Yunshop\ProductRebate\backend\services\GoodsWidgetService'
            ]
        ];
    }

    public function getFrontendWidgetConfig(): array
    {
        return [
            'member_center.product-rebate' => MemberCenterService::class,
        ];
    }

    public function getAssetConfig(): array
    {
        return [
            'income' => [
                259 => function () {
                    return ['name' => trans('Yunshop\ProductRebate::productRebate.plugin_name'), 'class' => IncomeWithdrawModel::class];
                }
            ],
        ];
    }

    public function getIncomePageItems()
    {
        return [
            'productRebate' => [
                'class' => 'Yunshop\ProductRebate\common\services\IncomePageService',
                'type' => 'marketing'
            ]
        ];
    }

    public function getIncomeItems()
    {
        return [
            'productRebate' => [
                'title' => trans('Yunshop\ProductRebate::productRebate.plugin_name'),
                'type' => 'productRebate',
                'class' => 'Yunshop\ProductRebate\common\models\IncomeWithdrawModel',
                'order_class' => '',
            ]
        ];
    }

    /**
     * 菜单、权限、路由
     */
    protected function setMenuConfig()
    {
        \app\backend\modules\menu\Menu::current()->setPluginMenu('product-rebate',PluginMenuService::menu());
    }

    public function boot()
    {
        $events = app('events');
        $events->subscribe(AfterOrderPaidEventListener::class); //订单支付监听
        $events->subscribe(AfterOrderReceivedEventListener::class); //订单完成监听
        $events->subscribe(AfterOrderRefundSuccessListener::class); //订单退款监听
        $events->subscribe(AgentLevelChangeEventListener::class); //代理等级变更监听
        $events->subscribe(RegisterMemberListener::class); //会员注册监听
        $events->subscribe(StoreCashierEventListener::class); //门店入驻监听
        //==================================积分(米币)抵扣逻辑============================================
        /**
         * 虚拟币模型
         */
        app('CoinManager')->bind('product_rebate_point', function ($coinManager, $attributes = []) {
            return new \Yunshop\ProductRebate\frontend\deductions\PointCoin($attributes);
        });

        /**
         * 用户模型
         */
        app('CoinManager')->make('MemberCoinManager')->bind('product_rebate_point', function ($memberCoinManager, array $params) {
            return new \Yunshop\ProductRebate\frontend\deductions\MemberPointCoin($params[0]);
        });

        /**
         * 商品抵扣模型
         */
        app('DeductionManager')->make('GoodsDeductionManager')->bind('product_rebate_point', function ($goodsDeductionManager, $params) {
            $aDeductionSettingManager = app('DeductionManager')->make('DeductionSettingManager')->make('product_rebate_point');
            $deductionSettingCollection = $aDeductionSettingManager->getDeductionSettingCollection($params[0]);
            return new \Yunshop\ProductRebate\frontend\deductions\GoodsDeduction($deductionSettingCollection);
        });

        /**
         * 抵扣设置模型
         */
        app('DeductionManager')->make('DeductionSettingManager')->singleton('product_rebate_point', function ($deductionSettingManager, $attributes = []) {
            return new \Yunshop\ProductRebate\frontend\deductions\PointDeductionSettingManager();
        });
        //==================================积分(米币)抵扣逻辑============================================
    }

    public function cronConfig()
    {
        /**
         * 补贴发放(每分钟一次)
         */
        \Event::listen('cron.collectJobs', function () {
            \Cron::add('product-rebate-subsidy-grant', '* * * * *', function () {
                (new \Yunshop\ProductRebate\common\cron\SubsidyGrantCorn())->handle();
                return;
            });
        });

        /**
         * 补贴结算&更改队列出局状态(每分钟一次)
         */
        \Event::listen('cron.collectJobs', function () {
            \Cron::add('product-rebate-subsidy-settlement', '* * * * *', function () {
                (new \Yunshop\ProductRebate\common\cron\SubsidySettlementCorn())->handle();
                return;
            });
        });

        /**
         * 收益结算(每分钟一次)
         */
        \Event::listen('cron.collectJobs', function () {
            \Cron::add('product-rebate-income-settlement', '* * * * *', function () {
                (new \Yunshop\ProductRebate\common\cron\IncomeSettlementCorn())->handle();
                return;
            });
        });

        /**
         * 激活记录生成(每天0点10分执行一次)
         */
        \Event::listen('cron.collectJobs', function () {
            \Cron::add('product-rebate-activate-log', '10 0 * * *', function () {
                (new \Yunshop\ProductRebate\common\cron\ActivateLogCorn())->handle();
                return;
            });
        });

        /**
         * 等级考核(每天凌晨两点一次)
         */
        \Event::listen('cron.collectJobs', function () {
            \Cron::add('product-rebate-agent-level-examine', '0 2 * * *', function () {
                (new \Yunshop\ProductRebate\common\cron\AgentLevelExamineCorn())->handle();
                return;
            });
        });

        /**
         * 生成假数据(每5分钟一次,特殊设置,上线删除)
         */
//        \Event::listen('cron.collectJobs', function () {
//            \Cron::add('product-rebate-test-cron', '* * * * *', function () {
//                (new \Yunshop\ProductRebate\common\cron\TestCorn())->handle();
//                return;
//            });
//        });
    }

    public function register()
    {
        define('PRODUCT_REBATE_DIY_NAME', trans('Yunshop\ProductRebate::productRebate.plugin_name'));
    }

    /**
     * 发布资源文件
     * @return void
     */
    public function toPublishes()
    {
        $this->publishes(
            [
                //插件图标
                plugin_assets_path('product-rebate', 'images/product-rebate.png') => plugin_icon_path('product-rebate.png'),
                //会员中心图标
                plugin_assets_path('product-rebate', 'images/product-rebate-center.png') => entry_icon_path('product-rebate-center.png'),
                //推广中心图标
                plugin_assets_path('product-rebate', 'images/product-rebate-income.png') => extension_icon_path('product-rebate-income.png')
            ]
        );
    }
}

小程序前端编译展示:

欢迎大家登录后台体验测试一下~ 还有其他400+插件,可以一起测试一波,选择合适自己商业模式的组合上线运营

祝大家生意兴隆~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芸众商城二次开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值