pistol88/yii2-order

yii2-order 是一个用于网站购物车订单的模块

安装量: 1,026

依赖者: 3

建议: 0

安全性: 0

星标: 11

关注者: 10

分支: 13

开放性问题: 0

类型:yii2-extension

dev-master 2017-06-14 10:13 UTC

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,添加新的支付方式,在“组件”字段中指定将返回支付表单的组件类。支付组件单独安装。

屏幕截图

订单表单 1 主面板 2 订单搜索 3 统计信息 4 添加订单 5