PHPackages                             pistol88/yii2-shop - 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. pistol88/yii2-shop

ActiveYii2-extension

pistol88/yii2-shop
==================

yii2-shop it's a module for site shop backend

1525115[1 issues](https://github.com/pistol88/yii2-shop/issues)PHP

Since Sep 16Pushed 8y ago6 watchersCompare

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

READMEChangelogDependenciesVersions (2)Used By (0)

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

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

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

Yii2-shop
=========

[](#yii2-shop)

Модуль представляет из себя бекенд для Интернет-магазина.

[![yii2-shop](https://cloud.githubusercontent.com/assets/8104605/15448447/751a647a-1f7b-11e6-87e7-c7354306f10e.png)](https://cloud.githubusercontent.com/assets/8104605/15448447/751a647a-1f7b-11e6-87e7-c7354306f10e.png)

В состав входит возможность управлять (CRUD):

- Категориями
- Производителями
- Товарами
- Ценами
- Фильтрами (опциями)
- Дополнительными полями

Если есть необходимость, можно также подтянуть мои другие модули:

- [pistol88/yii2-cart](https://github.com/pistol88/yii2-cart) - корзина
- [pistol88/yii2-order](https://github.com/pistol88/yii2-order) - заказ
- [pistol88/yii2-promocode](https://github.com/pistol88/yii2-promocode) - промокоды

Установка
---------

[](#установка)

Рекомендую устанавливать в common/modules/pistol88:

```
git clone https://github.com/pistol88/yii2-shop.git

```

И подключать через psr-4 секцию composer.json:

```
"autoload": {
    "psr-4": {
        "pistol88\\shop\\": "common/modules/pistol88/yii2-shop"
    }
}

```

Модуль зависит от многих других пакетов, скопируйте их из моего в свой composer.json в секцию require. После этого не забудьте выполнить composer update и миграции каждого модуля.

Если хотите установить в папку vendor через composer и ничего не менять потом, устанавливайте стандартно: 'php composer require pistol88/yii2-shop' и 'php composer update' в командной строке.

Миграция:

```
php yii migrate --migrationPath=vendor/pistol88/yii2-shop/migrations

```

Настройка
---------

[](#настройка)

В конфиг (скорее всего, bootstrap.php) добавить:

```
Yii::setAlias('@storageUrl','/frontend/web/images');

```

В секцию modules конфига добавить:

```
    'modules' => [
        //..
        'shop' => [
            'class' => 'pistol88\shop\Module',
            'adminRoles' => ['administrator', 'superadmin', 'admin'],
        ],
        'filter' => [
            'class' => 'pistol88\filter\Module',
            'adminRoles' => ['administrator'],
            'relationFieldName' => 'category_id',
            'relationFieldValues' =>
                function() {
                    return \pistol88\shop\models\Category::buildTextTree();
                },
        ],
        'field' => [
            'class' => 'pistol88\field\Module',
            'relationModels' => [
                'pistol88\shop\models\Product' => 'Продукты',
                'pistol88\shop\models\Category' => 'Категории',
                'pistol88\shop\models\Producer' => 'Производители',
            ],
            'adminRoles' => ['administrator'],
        ],
        'relations' => [
            'class' => 'pistol88\relations\Module',
            'fields' => ['code'],
        ],
        'gallery' => [
            'class' => 'pistol88\gallery\Module',
            'imagesStorePath' => dirname(dirname(__DIR__)).'/storage/web/images/store',
            'imagesCachePath' => dirname(dirname(__DIR__)).'/storage/web/images/cache',
            'graphicsLibrary' => 'GD',
            'placeHolderPath' => dirname(dirname(__DIR__)).'/storage/web/images/placeHolder.png',
        ],
        //..
    ]

```

В shop можно передать modelMap, где указать нужные вам модели. Также можно указать стандартные yiiшные controllerMap, viewPath, чтобы подменить контроллеры и вьюхи своими в процессе развития вашего магазина.

В секцию components:

```
    'components' => [
        //..
        'fileStorage' => [
            'class' => '\trntv\filekit\Storage',
            'baseUrl' => '@storageUrl/source',
            'filesystem'=> function() {
                $adapter = new \League\Flysystem\Adapter\Local(dirname(dirname(__DIR__)).'/frontend/web/images/source');
                return new League\Flysystem\Filesystem($adapter);
            },
        ],
        //..
    ]

```

Использование
-------------

[](#использование)

- ?r=shop/product - продукты
- ?r=shop/category - категории
- ?r=shop/producer - производители
- ?r=filter/filter - фильтры (опции)
- ?r=field/field - доп. поля

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

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

- pistol88\\shop\\widgets\\ShowPrice - передается 'model', выводит цену. Связан с pistol88\\cart\\widgets\\ChangeOptions через jQuery триггер и может определять, какая модификация выбрана и динамически менять цену.

Пример карточки товара со всеми виджетами магазина и корзины, которые работают сообща и динамически меняют данные друг-друга.

```

    Shop

        ShowPrice

    Cart

            ChangeCount

            ChangeOptions

            BuyButton

            TruncateButton

            CartInformer

            ElementsList

        .block {
            border: 2px solid blue;
        }

```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 92.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 (101 commits)")[![AlChilyakov](https://avatars.githubusercontent.com/u/18215959?v=4)](https://github.com/AlChilyakov "AlChilyakov (4 commits)")[![PROloggg](https://avatars.githubusercontent.com/u/25814457?v=4)](https://github.com/PROloggg "PROloggg (2 commits)")[![Deadly299](https://avatars.githubusercontent.com/u/10967614?v=4)](https://github.com/Deadly299 "Deadly299 (1 commits)")[![ivanfilatov](https://avatars.githubusercontent.com/u/10758036?v=4)](https://github.com/ivanfilatov "ivanfilatov (1 commits)")

### Embed Badge

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

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

PHPackages © 2026

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