pistol88 / yii2-promocode
在网站上添加促销代码(优惠券)功能,与 pistol88/cart 和 pistol88/order 一起工作
dev-master
2017-04-24 05:56 UTC
Requires
- php: >=5.4.0
- kartik-v/yii2-widget-datepicker: @dev
- pistol88/yii2-cart: *
- pistol88/yii2-order: *
- yiisoft/yii2: *
- yiisoft/yii2-bootstrap: *
This package is auto-updated.
Last update: 2024-08-27 22:11:05 UTC
README
从 2017 年 4 月 24 日起,模块的开发在这里进行: dvizh/yii2-promocode。建议从 Dvizh 的仓库中安装模块,最新版本就在那里。
Yii2-promocode
在网站上添加折扣(促销代码、优惠券)功能,与 pistol88/cart 稳定配合工作。
模块可以通过 Behavior 动态更改订单价格,根据应用的优惠券类型:累积折扣、百分比折扣、固定金额折扣。
安装
执行以下命令
php composer require pistol88/yii2-promocode "*"
或者在 composer.json 中添加
"pistol88/yii2-promocode": "*",
然后
php composer update
迁移
php yii migrate --migrationPath=vendor/pistol88/yii2-promocode/migrations
连接和设置
在应用程序的配置文件中添加模块 promocode
在 targetModelList 中指定绑定促销代码的模型
'modules' => [ //.. 'promocode' => [ 'class' => 'pistol88\promocode\Module', 'informer' => 'pistol88\cart\widgets\CartInformer', // namespace to custom cartInformer widget 'informerSettings' => [], //settings for custom cartInformer widget 'usesModel' => 'dektrium\user\models\User', //Модель пользователей //Указываем модели, к которым будем привязывать промокод 'targetModelList' => [ 'Категории' => [ 'model' => 'pistol88\service\models\Category', 'searchModel' => 'pistol88\service\models\category\CategorySearch' ], 'Продукты' => [ 'model' => 'pistol88\shop\models\Product', 'searchModel' => 'pistol88\shop\models\product\ProductSearch' ], ], ], //.. ]
使用
要管理促销代码,需要转到模块控制器:?r=promocode/promo-code
为当前用户添加促销代码
yii::$app->promocode->enter($promocode);
清除当前用户的促销代码
yii::$app->promocode->clear()
检查是否输入了促销代码
if(yii::$app->promocode->has())
获取当前促销代码
yii::$app->promocode->getCode()
获取当前折扣百分比
$persent = yii::$app->promocode->get()->promocode->discount;
要使折扣适用于 pistol88/cart,在配置中连接 cart 时,需要添加行为 pistol88\promocode\behaviors\Discount 到 cart
'cart' => [ 'class' => 'pistol88\cart\Cart', 'as PromoDiscount' => ['class' => 'pistol88\promocode\behaviors\Discount'], ]
要使折扣适用于单个模型,在配置中连接组件时,需要添加行为 pistol88\promocode\behaviors\DiscountToElement 到 cart
'cart' => [ 'class' => 'pistol88\cart\Cart', //'as PromoDiscount' => ['class' => 'pistol88\promocode\behaviors\Discount'], 'as ElementDiscount' => ['class' => 'pistol88\promocode\behaviors\DiscountToElement'], ]
小部件
为用户输出促销代码输入表单
暂时如此!