Market PRO — модуль интернет-магазина и торговой площадки для Cotonti
Готовое решение для создания как классического интернет-магазина с одним продавцом, так и полноценной торговой площадки (маркетплейса) с множеством независимых продавцов. Работает на современном стеке PHP 8.5+ и MySQL 8.4, полностью совместим с актуальными версиями движка Cotonti.
1. Что такое Market PRO
Market PRO — это модуль для CMF Cotonti, превращающий обычный сайт в полноценный каталог товаров и услуг. Он умеет работать в двух режимах:
- Одиночный магазин — один продавец, все товары принадлежат владельцу сайта.
- Торговая площадка — множество независимых продавцов, каждый со своими товарами, собственной витриной в профиле и собственным набором прав.
Переключение между режимами не требует переустановки модуля — достаточно настроить права пользователей на категории.
2. Ключевые преимущества
2.1. Современная архитектура
Модуль написан с использованием актуальных практик PHP 8.5+, включая строгую типизацию, namespace-пространства, сервисы и паттерн Singleton. Это обеспечивает стабильность работы и лёгкость дальнейшего развития.
2.2. Полная поддержка мультипродавцовости
Каждый продавец получает собственную витрину в профиле пользователя, отдельные права на свои товары и возможность управлять публикациями без вмешательства администратора.
2.3. Гибкая система статусов товаров
Каждый товар может находиться в одном из трёх состояний: черновик, на модерации, опубликован. Это позволяет модерировать новые публикации до их появления на сайте.
2.4. Расширенная система дополнительных полей
Никаких ограничений на структуру товара — через систему extrafields Cotonti можно добавить любое количество своих полей: характеристики, бренды, размеры, статусы наличия, ссылки на видео, галереи и т. д. Значения полей могут быть разного типа: строка, число, дата, выбор из списка, файл, изображение.
2.5. Индивидуальные шаблоны для каждой категории
Для любой категории можно назначить собственный шаблон header, footer и страницы товара. Это даёт полную свободу в оформлении: от фирменного стиля отдельных разделов до специализированных шаблонов для разных типов товаров (например, книги и электроника могут отображаться по-разному).
2.6. SEO-ориентированность на уровне ядра
У каждого товара есть отдельные поля meta-заголовка, meta-описания, SEO-заголовка H1, алиаса и канонического URL. У категорий — свои мета-теги, ключевые слова и описания. Всё это работает без установки дополнительных плагинов.
2.7. Высокая производительность
Модуль поддерживает статическое и дисковое кэширование, а счётчик просмотров товаров реализован через AJAX-запросы, что позволяет отдавать закэшированные страницы товаров без потери статистики.
2.8. Мультиязычность «из коробки»
Встроенная поддержка мультиязычности: названия, описания и тексты товаров можно переводить на несколько языков. Модуль совместим с плагином i18n4marketpro, который добавляет переводы для категорий и товаров.
2.9. Интеграция с экосистемой Cotonti
Товары из Market PRO автоматически участвуют в общих сервисах Cotonti: поиске, системе комментариев, системе прикреплённых файлов и других механизмах, использующих абстрактные элементы (ItemDto).
2.10. Готовый AJAX-интерфейс
Списки товаров поддерживают кнопку «Загрузить ещё», которая подгружает следующую порцию элементов без перезагрузки страницы. Работает пока не во всех местах, пока только в профиле продавца.
3. Кому подойдёт модуль
- Интернет-магазинам — классическая витрина с категориями, фильтрами, поиском, карточками товаров и корзиной (при подключении соответствующего плагина).
- Торговым площадкам — маркетплейсы с самостоятельными продавцами, каждый со своим кабинетом и товарами.
- Каталогам услуг — с портфолио, ценами, отзывами.
- Доскам объявлений — с модерацией новых публикаций.
- Корпоративным сайтам — для публикации прайс-листов и каталогов продукции без необходимости в полноценном интернет-магазине.
4. Возможности витрины и продавца
4.1. Каталог товаров
- Иерархическая структура категорий с любой глубиной вложенности.
- Поддержка изображений и иконок у категорий.
- Отдельные описания для каждой категории.
- Специальные служебные категории: «Все товары», «Ожидают утверждения», «Черновики», «Системные».
- Списки подкатегорий с количеством товаров в каждой.
4.2. Карточка товара
- Заголовок, краткое описание, полный текст с визуальным редактором.
- Несколько вкладок внутри одного товара (разделитель страниц).
- Артикул товара для быстрого поиска.
- Две цены: основная цена и цена в USD (удобно для конвертации в валюту сайта).
- Галерея изображений и прикреплённые файлы.
- Комментарии посетителей (при активном плагине комментариев).
- Счётчик просмотров.
- Информация о продавце с ссылкой на его профиль.
- SEO-заголовок H1, meta title, meta description.
- Человекопонятный URL (ЧПУ) на основе алиаса.
4.3. Витрина продавца
- Отдельная вкладка «Мои товары» в профиле пользователя.
- Фильтрация своих товаров по категориям.
- Быстрый переход к редактированию и удалению.
- Просмотр количества товаров в каждой из своих категорий.
- Кнопка «Добавить товар» прямо из витрины.
4.4. Поиск и фильтрация
- Поиск по названию, по названию и полному описанию, по артикулу.
- Подсветка найденных слов в результатах поиска.
- Фильтрация по любым дополнительным полям.
- Фильтрация по категориям (с учётом подкатегорий).
4.5. Сортировка
- По дате добавления, по дате обновления, по алфавиту, по цене, по популярности.
- Сортировка по любым дополнительным полям.
- Направление сортировки: по возрастанию и по убыванию.
- Индивидуальные параметры сортировки для каждой категории.
4.6. Публикация товара
- Форма добавления с предпросмотром.
- Сохранение в черновик для продолжения работы позже.
- Отправка на модерацию администратору.
- Мгновенная публикация (при наличии прав).
- Клонирование существующего товара для быстрого создания похожего.
5. Возможности администратора
5.1. Управление товарами
- Единый список всех товаров с фильтрами по статусу: все, ожидающие утверждения, опубликованные, черновики, истёкшие.
- Поиск по названию, полному описанию, артикулу.
- Фильтрация по категориям.
- Сортировка по любым полям.
- Пагинация с настраиваемым количеством записей на странице.
5.2. Массовые операции
- Утверждение нескольких товаров одним действием.
- Массовое удаление выбранных товаров.
5.3. Индивидуальные действия
- Утверждение отдельного товара.
- Снятие с публикации (возврат в очередь на модерацию).
- Удаление товара.
- Редактирование любого товара.
- Изменение владельца товара.
- Редактирование счётчика просмотров.
5.4. Уведомления
- Администратор видит в верхней панели сайта количество товаров, ожидающих утверждения, и количество черновиков.
- Продавец видит количество своих товаров, ожидающих модерации, и своих черновиков.
5.5. Настройки модуля
- Разметка описаний: HTML или BBCode.
- Выбор парсера текста по умолчанию.
- Учёт посещений администратора в счётчике просмотров.
- Автоматическое утверждение публикаций для администраторов.
- Максимальное количество элементов на странице (глобально и для каждой категории).
- Формат заголовка страницы товара: с названием категории или без.
- Чёрный список категорий, исключаемых из дерева на страницах.
- Валюта по умолчанию.
- Длина обрезки текста в списках товаров.
- Разрешение публиковать товары без описания.
- Ключевые слова, meta-заголовок и meta-описание по умолчанию.
5.6. Управление структурой
- Настройка прав на каждую категорию (чтение, запись, администрирование).
- Блокировка отдельных категорий от публикации.
- Автоматический пересчёт счётчиков товаров в структуре.
6. SEO и продвижение
6.1. Мета-информация
- Отдельные поля meta title, meta description, H1 для каждого товара.
- Мета-информация для каждой категории: заголовок, описание, ключевые слова.
- Автоматическое формирование заголовка страницы по шаблону.
- Канонические URL для предотвращения дублирования страниц.
6.2. Человекопонятные URL
- Алиасы для товаров, формирующие ЧПУ вида
/market/electronics/noutbuk-lenovo. - Автоматическая проверка уникальности алиасов.
- Возможность задать алиас вручную.
6.3. Хлебные крошки
- Построение полного пути до товара и категории.
- Полная и сокращённая версии для использования в разных местах.
- Поддержка микроразметки (при необходимости включается в шаблоне).
6.4. Управление индексацией
- Автоматический noindex для страниц, которые не должны попадать в поиск (формы, страницы редактирования, предпросмотр).
- Управление индексацией списков и карточек товара.
7. Мультиязычность
Модуль готов к работе на многоязычных сайтах. Все системные сообщения вынесены в языковые файлы, а названия, описания и тексты товаров можно переводить на неограниченное количество языков.
- Отдельные языковые файлы для каждого языка интерфейса.
- Локализованные заголовки категорий и товаров.
- Совместимость с плагином
i18n4marketproдля перевода содержимого. - Автоматический выбор языка в зависимости от настроек пользователя.
- Поиск с учётом переводов на текущем языке.
Модуль уже локализован на русский, украинский и английский языки. Добавление нового языка сводится к копированию языкового файла и переводу строк.
8. Интеграция с Cotonti и сторонними расширениями
8.1. Стандартные механизмы Cotonti
- Работа с правами доступа по категориям — чтение, запись, администрирование.
- Совместимость с системой дополнительных полей (extrafields).
- Интеграция с сервисом ItemService (для поиска и внешних сервисов).
- Участие товаров в общих списках и выдачах Cotonti.
8.2. Плагины, совместимые с Market PRO
- Attacher — загрузка изображений и файлов к товару.
- TGM4Market — интеграция с телеграм-ботами для уведомлений.
- i18n4marketpro — переводы для категорий и товаров.
- aliasmarketpro — расширенные возможности для ЧПУ.
- xtradbrowmarket — расширенный вывод дополнительных полей.
8.3. Платёжные системы
Модуль поддерживает интеграцию с системой платежей Cotonti. Валюта магазина может автоматически подставляться из настроек платежей, а цена товара — выводиться в нужной валюте.
9. Шаблоны и оформление
9.1. Индивидуальные шаблоны
- Отдельный шаблон для каждой категории товаров.
- Свои шаблоны для страницы товара, формы добавления, формы редактирования.
- Свои шаблоны header и footer для каждой категории.
- Возможность переопределения шаблонов в теме без правки модуля.
9.2. Гибкость вывода
- Теги для каждого элемента товара с префиксами — для удобного использования в шаблонах.
- Блоки для вывода подкатегорий, дополнительных полей, кнопок администратора.
- Встроенные виджеты списков товаров для размещения на главной странице, в сайдбаре и в любых других местах.
9.3. Современная вёрстка
Шаблоны модуля построены на Bootstrap 5 и адаптированы для использования в современных темах Cotonti. При необходимости легко адаптируются под любую другую вёрстку.
10. Производительность и кэширование
- Поддержка статического кэша страниц Cotonti.
- Дисковое кэширование виджетов и списков товаров.
- AJAX-счётчик просмотров — работает даже когда страница отдаётся из кэша.
- Автоматическая очистка кэша при изменении товара, категории или структуры.
- Оптимизированные SQL-запросы без лишних JOIN'ов.
- Кэширование результатов выборки товаров по ID.
Модуль рассчитан на работу с каталогами из тысяч товаров без просадки производительности сайта.
11. Безопасность
- Защита от CSRF-атак на всех формах.
- Защита от SQL-инъекций через подготовленные запросы.
- Экранирование пользовательских данных при выводе.
- Разграничение прав доступа на уровне отдельных категорий.
- Дополнительная блокировка заблокированных категорий для обычных пользователей.
- Проверка владельца при редактировании и удалении товара.
- Журналирование попыток несанкционированного доступа к неопубликованным товарам.
12. Технические требования
| PHP | 8.5 и выше |
|---|---|
| MySQL | 8.4 и выше |
| Cotonti | актуальные версии (Siena и выше) |
| Обязательные модули | extrafields, forms, users |
| Опциональные плагины | comments, attacher, i18n4marketpro, tgm4market, aliasmarketpro |
Модуль не требует внешних зависимостей (composer-пакетов и т. п.) — все необходимые классы входят в его состав.
13. Сценарии использования
13.1. Интернет-магазин одной компании
Владелец сайта публикует товары от своего имени. Все категории настроены только для администратора и менеджеров. Покупатели просматривают каталог, читают описания, оставляют комментарии и оформляют заказ через платёжный плагин.
13.2. Мультивендорная торговая площадка
Регистрируются несколько продавцов. Каждому открыт доступ к своим категориям. Публикации проходят модерацию администратором. Покупатели выбирают товары конкретных продавцов прямо на витрине профиля.
13.3. Каталог услуг с портфолио
Специалисты публикуют свои услуги с описанием, ценами и примерами работ. Отдельные категории для разных видов услуг. Покупатели оставляют отзывы через комментарии.
13.4. Доска объявлений с модерацией
Все новые объявления попадают в очередь на утверждение. Администратор проверяет их и публикует или отклоняет. Черновики позволяют пользователям сохранять заготовки объявлений.
13.5. Корпоративный прайс-лист
Компания публикует свой каталог продукции с артикулами и ценами. Покупатели используют поиск по артикулу для быстрого нахождения нужной позиции.
14. Итог
Market PRO — это готовое, надёжное и современное решение для организации торговли на Cotonti. Он одинаково хорошо подходит как для небольшого магазина одного продавца, так и для крупной торговой площадки с десятками независимых продавцов.
Модуль не требует от администратора знания программирования: все настройки выполняются через панель администрирования Cotonti, а расширение функциональности сводится к добавлению новых полей через стандартную систему extrafields.
Благодаря использованию современных возможностей PHP 8.5 и MySQL 8.4 модуль работает быстро, безопасно и стабильно, а благодаря встроенной поддержке мультиязычности, SEO и кэширования — подходит для серьёзных проектов, рассчитанных на долгую работу и рост аудитории.
Актуальные обновления, документация и поддержка — на официальных страницах проекта. Если возникнут вопросы по установке или настройке, всегда можно обратиться к сообществу Cotonti или к автору модуля.