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

ActiveLibrary

roilafx/shop
============

Интернет-магазин для Evolution CMS

029PHP

Since Mar 27Pushed 1mo agoCompare

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

READMEChangelogDependenciesVersions (1)Used By (0)

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

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

Выполните команды из директории `/core`:

1. Установка пакета

```
php artisan package:installrequire roilafx/shop "*"

```

*Иногда тут возникает ошибка, в таком случае нужно выполнить `composer dump-autoload`, чтобы появились миграции и можно было публиковались скрипты*

2. Выполнение миграций

```
php artisan migrate

```

3. Публикация стилей и скриптов

```
php artisan vendor:publish --provider="roilafx\Install\InstallServiceProvider"

```

4. Импорт данных

```
php artisan site:full-import --all --clear-first

```

5. Отредактировать `/core/custom/composer.json`, добавив автозагрузку

```
{
    "autoload": {
        "psr-4": {
            "EvolutionCMS\\Shop\\": "packages/shop/src/"
        }
    }
}
```

6. Обновить composer

```
composer dump-autoload

```

Магазин на Evolution CMS
========================

[](#магазин-на-evolution-cms)

Сборка интернет-магазина для Evolution CMS

Реализовано
-----------

[](#реализовано)

- Каталог товаров
- Корзина и оформление заказов
- Поиск по сайту
- Фильтрация товаров

### Установленные компоненты

[](#установленные-компоненты)

- Commerce
- AESearch (evoSearch)
- ClientSettings
- EditDocs
- eFilter
- MultiTV
- FormSender (Formlister)
- Templatesedit
- TinyMCE4 (не используется, нужно включить в настройках)
- DocLister
- Multicategories (не используется)

Стили
-----

[](#стили)

Стили настраиваются в двух местах:

1. `resources/css/main.css` - глобальные стили, используемые на нескольких страницах
2. Blade-файлы в секции `styles`

### Дополнительная стилизация

[](#дополнительная-стилизация)

Для упрощения разработки вместо фотографий использовались иконки из `fontawesome-free-7.2.0-web`.

Логика на клиенте
-----------------

[](#логика-на-клиенте)

Весь JavaScript находится в Blade-файлах в секции `scripts`. Его немного, при желании можно вынести в отдельный файл или удалить.

- `cart.blade.php`: вызов клиентского обработчика FormSender и дополнительные функции для модального окна оплаты заказа
- `catalog.blade.php`: подключение jQuery, необходимого для работы формы фильтрации
- `item.blade.php`: переключение табов и изменение количества товара
- `pagetext.blade.php`: переключение изображений

Логика на стороне сервера
-------------------------

[](#логика-на-стороне-сервера)

### Контроллеры

[](#контроллеры)

Используется 4 контроллера:

- **BaseController** - получение элементов, используемых на большинстве страниц
- **CatalogController** - работа с компонентом eFilter
- **PageController** - универсальная текстовая страница
- **ShopController** - работа с корзиной

#### BaseController

[](#basecontroller)

Получает из traits:

- Верхнее меню
- Нижнее меню
- Информацию для пользователей из `ClientSettings`
- Мини-корзину
- Хлебные крошки

#### CatalogController

[](#catalogcontroller)

Работает с сервисом `eFilter` через интерфейс `FilterServiceInterface`.

#### PageController

[](#pagecontroller)

Универсальный контроллер, выполняющий следующие задачи:

1. Получение информации для стартовой страницы (категории с меткой "хит" и новые позиции)
2. Получение данных для страницы "Спасибо" (необходимые плейсхолдеры)

#### ShopController

[](#shopcontroller)

Предоставляет необходимые для корзины и оплаты данные:

- Корзину
- Способы оплаты
- Методы доставки

### Фасад Snippet

[](#фасад-snippet)

Для вызовов сниппетов используется фасад `Snippet`:

```
use EvolutionCMS\Shop\Facades\Snippet;
```

Доступные методы (название соответствует вызываемому сниппету):

- `run($name, $params)` - вызов любого сниппета
- `doclister($params)`
- `dlcrumbs($params)`
- `cart($params)`
- `dlmenu($params)`
- `priceformat($params)`
- `efilter($params)`
- `efilterresult($params)`

Пример использования:

```
Snippet::run($name, $params);
Snippet::doclister($params);
```

### Конфигурация

[](#конфигурация)

Для работы с параметрами используются конфиги и соответствующий фасад:

```
use Illuminate\Support\Facades\Config;
```

В проекте используется 6 конфигураций:

- `aesearch` - внешний вид быстрых результатов поиска (*нужно будет вынести в blade через @VIEW*)
- `settings` - настройки Evolution CMS
- `Cart` - параметры для вызова корзины
- `Doclister` - параметры для всех вызовов DocLister
- `eFilter` - параметры для фильтрации и результатов фильтрации
- `order` - оплата без перезагрузки страницы через FormSender

### Форматирование цены

[](#форматирование-цены)

Форматирование цены происходит во view, для этого добавлена директива (*`$convert`- не обязательно*):

```
@price($price, $convert)
```

### Плагин Commerce

[](#плагин-commerce)

Кастомизация логики Commerce осуществляется через плагин. Добавлены следующие события:

- `OnBeforeCartItemAdding`
- `OnBeforeCartItemRemoving`
- `OnManagerBeforeOrderRender`
- `OnRegisterDelivery`
- `OnRegisterPayments`
- `OnOrderRawDataChanged`

Добавлены две "глобальные" переменные (способы доставки и оплаты):

- `$deliveries`
- `$payments`

**Особенности работы с опциями товара:**

- Факт выбора опции хранится в `$params['item']['options']`
- Данные о выбранных опциях записываются в `$params['item']['meta']`
- Удаление работает по той же логике: если есть информация об удалении опции, удаляется она, иначе удаляется весь товар (стандартная логика Commerce)

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance59

Moderate activity, may be stable

Popularity10

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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/bed32336358dc3fe7d66414cfc6ce74c69fcaa31f3aee2d71b3975521743e317?d=identicon)[Kolya1222](/maintainers/Kolya1222)

---

Top Contributors

[![Kolya1222](https://avatars.githubusercontent.com/u/48295740?v=4)](https://github.com/Kolya1222 "Kolya1222 (26 commits)")

### Embed Badge

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

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

PHPackages © 2026

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