roilafx/shop
Composer 安装命令:
composer require roilafx/shop
包简介
Интернет-магазин для Evolution CMS
README 文档
README
Ставить поверх свежей установки Evolution CMS CE 3.1.30
Выполните команды из директории /core:
- Установка пакета
php artisan package:installrequire roilafx/shop "*"
Иногда тут возникает ошибка, в таком случае нужно выполнить composer dump-autoload, чтобы появились миграции и можно было публиковались скрипты
- Выполнение миграций
php artisan migrate
- Публикация стилей и скриптов
php artisan vendor:publish --provider="roilafx\Install\InstallServiceProvider"
- Импорт данных
php artisan site:full-import --all --clear-first
- Отредактировать
/core/custom/composer.json, добавив автозагрузку
"autoload": { "psr-4": { "EvolutionCMS\\Shop\\": "packages/shop/src/" } }
- Обновить composer
composer dump-autoload
- Очистить кеш любым удобным вам способом:
- консоль
- административная панель
Магазин на Evolution CMS CE
Реализовано
- Каталог и фильтрация товаров
- Корзина и оформление заказов
- Поиск по сайту
- Личный кабинет
Установленные компоненты
- Commerce
- Commerce-history
- AESearch (evoSearch)
- ClientSettings
- EditDocs
- eFilter
- MultiTV
- FormSender (Formlister)
- TemplatesEdit
- TinyMCE4 (не используется, можно включить в настройках)
- DocLister
- Multicategories (не используется)
Стили
Стили настраиваются в двух местах:
resources/css/main.css- глобальные стили, используемые на нескольких страницах- 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: переключение изображенийprofile.blade.php: переключение тобов
Логика на стороне сервера
Контроллеры
Используется 4 контроллера:
- BaseController - получение элементов, используемых на большинстве страниц
- CatalogController - работа с компонентом eFilter
- PageController - универсальная текстовая страница
- ShopController - работа с корзиной
- UserControler - для работы с личным кабинетом
BaseController
Получает из traits:
- Верхнее меню
- Нижнее меню
- Информацию для пользователей из
ClientSettings - Мини-корзину
- Хлебные крошки
- Если пользователь авторизорован, то получает
Name,Email,Phone
CatalogController
Работает с сервисом eFilter через интерфейс FilterServiceInterface.
PageController
Универсальный контроллер, выполняющий следующие задачи:
- Получение информации для стартовой страницы (категории с меткой "хит" и новые позиции)
- Получение данных для страницы "Спасибо" (необходимые плейсхолдеры)
ShopController
Предоставляет необходимые для корзины и оплаты данные:
- Корзину
- Способы оплаты
- Методы доставки
Фасад Snippet
Для вызовов сниппетов используется фасад Snippet:
use EvolutionCMS\Shop\Facades\Snippet;
Доступные методы (название соответствует вызываемому сниппету):
run($name, $params)- вызов любого сниппета- Так же через метод
__callреализован вызов любого сниппета.
Пример использования:
Snippet::run($name, $params); Snippet::DLCrumbs($config);
Фасад GetPlaceholder
Для получения плейсхолдеров используется фасад Placeholder с методом get:
use EvolutionCMS\Shop\Facades\Placeholder;
Пример использования:
return Placeholder::get($config);
Конфигурация
Для работы с параметрами используются конфиги и соответствующий фасад:
use Illuminate\Support\Facades\Config;
В проекте используется следующие конфигураций:
aesearch- внешний вид быстрых результатов поиска (нужно будет вынести в blade через @VIEW)settings- настройки Evolution CMSCart- параметры для вызова корзиныCommerce- список плейсхолдеров для сообщения спасибоDoclister- параметры для всех вызовов DocListereFilter- параметры для фильтрации и результатов фильтрацииorder- оплата без перезагрузки страницы через FormSenderlogin- для контроллера Login из FormLister (используется FormSender)Register- для контроллера Register из FormLister (используется FormSender)Profile- для контроллера Profile из FormLister (используется FormSender)
Форматирование цены
Форматирование цены происходит во view, для этого добавлена директива ($convert- не обязательно):
@price($price, $convert)
Плагин Commerce
Кастомизация логики Commerce осуществляется через плагин. Добавлены следующие события:
OnBeforeCartItemAddingOnBeforeCartItemRemovingOnManagerBeforeOrderRenderOnRegisterDeliveryOnRegisterPaymentsOnOrderRawDataChanged
Добавлены две "глобальные" переменные (способы доставки и оплаты):
$deliveries$payments
Особенности работы с опциями товара:
- Факт выбора опции хранится в
$params['item']['options'] - Данные о выбранных опциях записываются в
$params['item']['meta'] - Удаление работает по той же логике: если есть информация об удалении опции, удаляется она, иначе удаляется весь товар (стандартная логика Commerce)
roilafx/shop 适用场景与选型建议
roilafx/shop 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 36 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 02 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 roilafx/shop 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 roilafx/shop 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 36
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2026-02-25