pistol88 / yii2-order
yii2-order 是一个用于网站购物车订单的模块
Requires
- php: >=5.4.0
- 2amigos/yii2-grid-view-library: *
- kartik-v/yii2-export: @dev
- kartik-v/yii2-grid: *
- kartik-v/yii2-mpdf: dev-master
- nex/yii2-datepicker: *
- yiisoft/yii2: *
- yiisoft/yii2-bootstrap: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-27 21:42:25 UTC
README
从 2017 年 4 月 24 日起,模块的开发在这里进行:[dvizh/yii2-order](https://github.com/dvizh/yii2-order)。建议从 Dvizh 的仓库中安装模块,那里有最新版本。
Yii2-order
这是一个实现网站订单功能的模块。目前订单中包含购物车中的元素,建议使用 pistol88/yii2-cart 作为购物车服务。
功能
- 添加订单,在后台查看和管理订单
- 在后台管理订单字段
- 在后台管理配送和支付方式
安装
执行命令
php composer require pistol88/yii2-order "*"
或者添加到 composer.json
"pistol88/yii2-order": "*",
然后
php composer update
接下来,迁移数据库
php yii migrate --migrationPath=vendor/pistol88/yii2-order/migrations
接下来,将模块与购物车关联。安装 pistol88/yii2-cart 并将其添加到应用程序配置的开头
yii::$container->set('pistol88\order\interfaces\Cart', 'pistol88\order\drivers\Pistol88Cart');
要将模块与另一个购物车关联
yii::$container->set('pistol88\order\interfaces\Cart', 'app\objects\Cart');
app\objects\Cart 应包含一个实现 \pistol88\order\interfaces\Cart 的类。
作为模块安装
如果您计划对代码进行大量修改,将扩展作为模块安装是更好的做法。
将 Github 上的扩展克隆到所需的文件夹
git clone https://github.com/pistol88/yii2-order.git
在 composer.json 中添加模块的路径
"autoload": {
"psr-4": {
"pistol88\\order\\": "common/modules/order"
}
}
执行 update
php composer update
执行迁移
php yii migrate --migrationPath=common/modules/order/migrations
添加到配置文件
'bootstrap' => ['pistol88\order\Bootstrap'],
如上所述与购物车关联。
连接和设置
在应用程序配置文件中添加 order 模块
'modules' => [ 'order' => [ 'class' => 'pistol88\order\Module', 'layoutPath' => 'frontend\views\layouts', 'successUrl' => '/page/thanks', //Страница, куда попадает пользователь после успешного заказа 'ordersEmail' => 'test@yandex.ru', //Мыло для отправки заказов ], //... ]
模块的所有设置
-
orderStatuses - 状态(默认:'new' => '新', 'approve' => '已确认', 'cancel' => '已取消', 'process' => '处理中', 'done' => '已完成')
-
defaultStatus - 新订单状态(默认 'new')
-
successUrl - 成功购买后买家将被重定向到的 URL(默认 /order/info/thanks/)
-
ordersEmail - 管理员邮箱,订单邮件将发送到此邮箱
-
robotEmail - 机器人邮箱(默认 no-reply@localhost)
-
robotName - 机器人名称(默认 Robot)
-
orderColumns - 输出字段。自定义字段添加为包含 ID 和字段名称的数组:['field' => 2, 'label' => '汽车']
-
dateFormat - 日期格式(默认 d.m.Y H:i:s)
-
cartService - 实现购物车的组件名称(默认 cart)。接口请查看 pistol88/yii2-cart。
-
currency - 货币,默认为卢布
-
currencyPosition - 货币符号相对于价格的位置(before 或 after)
-
priceFormat - 价格格式(默认 [2, '.', ''])
-
adminRoles - 具有访问 CRUD 订单的角色的列表(默认 ['admin', 'superadmin'])
服务
模块自动注入到 yii2(在 Service locator 中)的 order 组件(服务),可以在全局范围内通过 yii::$app->order 访问,并提供以下服务
- get($id) - 根据 ID 获取订单
- getStatInMoth($month) - 获取当月订单统计
- getStatByDate($date) - 获取特定日期的订单统计
- getStatByDatePeriod($dateStart, $dateStop) - 获取指定日期段的订单统计
- getStatByModelAndDatePeriod($model, $dateStart, $dateStop) - 获取特定模型在指定日期段的订单统计
小部件
订单表单的输出由widget pistol88\order\widgets\OrderForm 负责的
<?=OrderForm::widget();?>
"一键下单" 按钮 - pistol88\order\widgets\OneClick
<?=OneClick::widget(['model' => $model]);?>
触发器
在Module中
- create - 创建订单
- delete_order - 删除订单
- delete_element - 删除订单元素
通过配置文件的使用示例
'order' => [ 'class' => 'pistol88\order\Module', 'on create' => function($event) { send_sms(...); //Отправляем СМС оповещение }, ],
在线支付
要添加支付方式,请转到 ?r=/order/payment-type/index,添加新的支付方式,在“组件”字段中指定将返回支付表单的组件类。支付组件单独安装。
- Paymaster.ru: pistol88/yii2-paymaster
- Liqpay: pistol88/yii2-liqpay
- Сбербанк: pistol88/yii2-sberbank-payment