PHPackages                             pistol88/yii2-order - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. pistol88/yii2-order

ActiveYii2-extension[Admin Panels](/categories/admin)

pistol88/yii2-order
===================

yii2-order it's a module for site cart order

111.0k13PHP

Since Mar 13Pushed 8y ago9 watchersCompare

[ Source](https://github.com/pistol88/yii2-order)[ Packagist](https://packagist.org/packages/pistol88/yii2-order)[ RSS](/packages/pistol88-yii2-order/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

Внимание!
=========

[](#внимание)

Разработка модуля с 24.04.2017 ведется здесь: [dvizh/yii2-order](https://github.com/dvizh/yii2-order). Рекомендую устанавливать модуль из репозитория Dvizh, именно там находится последняя версия.

Yii2-order
==========

[](#yii2-order)

Это модуль для реализации функцинала заказа на сайте. Сейчас в заказ попадают элементы корзины, советую в качестве сервиса корзины использовать модуль [pistol88/yii2-cart](https://github.com/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](https://github.com/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' =&gt; 'Новый', 'approve' =&gt; 'Подтвержден', 'cancel' =&gt; 'Отменен', 'process' =&gt; 'В обработке', 'done' =&gt; 'Выполнен')
- defaultStatus - статус нового заказа (по умолчанию 'new')
- successUrl - урл, куда будет перенаправлен покупатель в случае успешной покупки (по умолчанию /order/info/thanks/)
- ordersEmail - почта администратора, туда уходят письма с заказами
- robotEmail - e-mail робота (по умолчанию no-reply@localhost)
- robotName - имя почтового робота (по умолчанию Robot)
- orderColumns - массмв полей для вывода. Кастомные поля добавляются как массив, содержащий ID и наименование поля: \['field' =&gt; 2, 'label' =&gt; 'Автомобиль'\]
- 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-&gt;order и предоставляет следующие сервисы:

- get($id) - получить заказ по ID
- getStatInMoth($month) - получить статистику заказов за месяц
- getStatByDate($date) - получить статичтику заказов за день
- getStatByDatePeriod($dateStart, $dateStop) - получить статистику заказов за период
- getStatByModelAndDatePeriod($model, $dateStart, $dateStop) - получить статистику заказов определенной модели за период

Виджеты
-------

[](#виджеты)

За вывод формы заказа отвечает виджет pistol88\\order\\widgets\\OrderForm

```

```

Кнопка "заказ в один клик" - pistol88\\order\\widgets\\OneClick:

```

```

Триггеры
--------

[](#триггеры)

В 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](https://github.com/pistol88/yii2-paymaster)
- Liqpay: [pistol88/yii2-liqpay](https://github.com/pistol88/yii2-liqpay)
- Сбербанк: [pistol88/yii2-sberbank-payment](https://github.com/pistol88/yii2-sberbank-payment)

Скриншоты
---------

[](#скриншоты)

***Форма заказа***[![1](https://cloud.githubusercontent.com/assets/27691515/25094364/7dbb15a6-239f-11e7-992d-1325560546f3.png)](https://cloud.githubusercontent.com/assets/27691515/25094364/7dbb15a6-239f-11e7-992d-1325560546f3.png)***Главная панель***[![2](https://cloud.githubusercontent.com/assets/27691515/25094385/91f5be9a-239f-11e7-8803-1c0f491f2f13.png)](https://cloud.githubusercontent.com/assets/27691515/25094385/91f5be9a-239f-11e7-8803-1c0f491f2f13.png)***Поиск по заказам***[![3](https://cloud.githubusercontent.com/assets/27691515/25094387/91f8d224-239f-11e7-8ec4-88c93598121e.png)](https://cloud.githubusercontent.com/assets/27691515/25094387/91f8d224-239f-11e7-8ec4-88c93598121e.png)***Статистика***[![4](https://cloud.githubusercontent.com/assets/27691515/25094384/91f52e44-239f-11e7-803b-f3454a74eed1.png)](https://cloud.githubusercontent.com/assets/27691515/25094384/91f52e44-239f-11e7-803b-f3454a74eed1.png)***Добавление заказа***[![5](https://cloud.githubusercontent.com/assets/27691515/25094386/91f61e80-239f-11e7-8ce1-5e8e2e2471d3.png)](https://cloud.githubusercontent.com/assets/27691515/25094386/91f61e80-239f-11e7-8ce1-5e8e2e2471d3.png)

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity25

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 82.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/30aa23b0866557cfaf8fba075bde99f331f4cc0c4eae50b37af0fe78b2c862b6?d=identicon)[pistol88](/maintainers/pistol88)

---

Top Contributors

[![pistol88](https://avatars.githubusercontent.com/u/8104605?v=4)](https://github.com/pistol88 "pistol88 (186 commits)")[![halumein](https://avatars.githubusercontent.com/u/5361342?v=4)](https://github.com/halumein "halumein (23 commits)")[![PROloggg](https://avatars.githubusercontent.com/u/25814457?v=4)](https://github.com/PROloggg "PROloggg (5 commits)")[![TheElk2](https://avatars.githubusercontent.com/u/27691515?v=4)](https://github.com/TheElk2 "TheElk2 (3 commits)")[![mazurva](https://avatars.githubusercontent.com/u/1152567?v=4)](https://github.com/mazurva "mazurva (3 commits)")[![usesgraphcrt](https://avatars.githubusercontent.com/u/17561572?v=4)](https://github.com/usesgraphcrt "usesgraphcrt (2 commits)")[![AlChilyakov](https://avatars.githubusercontent.com/u/18215959?v=4)](https://github.com/AlChilyakov "AlChilyakov (2 commits)")[![slam-mt](https://avatars.githubusercontent.com/u/20283374?v=4)](https://github.com/slam-mt "slam-mt (1 commits)")

### Embed Badge

![Health badge](/badges/pistol88-yii2-order/health.svg)

```
[![Health](https://phpackages.com/badges/pistol88-yii2-order/health.svg)](https://phpackages.com/packages/pistol88-yii2-order)
```

###  Alternatives

[jeroennoten/laravel-adminlte

Easy AdminLTE integration with Laravel

4.0k4.8M43](/packages/jeroennoten-laravel-adminlte)[dmstr/yii2-adminlte-asset

AdminLTE backend theme asset bundle for Yii 2.0 Framework

1.1k1.8M67](/packages/dmstr-yii2-adminlte-asset)[dwij/laraadmin

LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like CRUD Generation, Module Manager, Media, Menus, Backups and much more

1.6k68.7k](/packages/dwij-laraadmin)[filament/spatie-laravel-media-library-plugin

Filament support for `spatie/laravel-medialibrary`.

1764.8M125](/packages/filament-spatie-laravel-media-library-plugin)[bezhansalleh/filament-exceptions

A Simple &amp; Beautiful Pluggable Exception Viewer for FilamentPHP's Admin Panel

193195.9k13](/packages/bezhansalleh-filament-exceptions)[filament/infolists

Easily add beautiful read-only infolists to any Livewire component.

1220.8M36](/packages/filament-infolists)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
