- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
👁️ Недавно просмотренные товары для MiniShop3
Компонент для отображения блока «Недавно просмотренные» в интернет-магазине на MODX Revolution 3 и MiniShop3. Показ товаров, которые пользователь уже просматривал, увеличивает вовлечённость, время на сайте и конверсию.
Возможности
- Блок «Недавно просмотренные» — вывод по списку ID (AJAX через коннектор или серверный вызов сниппета)
- Хранение в браузере — localStorage (по умолчанию) или cookie, без регистрации
- Синхронизация в БД — для авторизованных пользователей
- Автосинхронизация при входе — данные из localStorage автоматически переносятся в БД при авторизации
- Месячное архивирование — настройка ms3recentlyviewed.archive_enabled (по умолчанию включено): агрегация и уменьшение размера основной таблицы
- Исключение ботов — настройка ms3recentlyviewed.block_bots
- Выбор метода определения ботов — crawler_detect или regex (в системных настройках)
- Сниппет «Похожие на просмотренные» — товары из тех же категорий (ms3recentlyviewedSimilar)
- Админка — дашборд (KPI, топ товаров), история просмотров с фильтрами и экспортом CSV
- Локализация — MODX Lexicon (ru, en), фронтенд-лексикон через ms3rvLexiconScript
- Кастомизация — Fenom-чанки, BEM-классы (префикс ms3rv), CSS-переменные



Сниппеты
ms3recentlyviewed
Выводит список недавно просмотренных товаров.
[[!ms3recentlyviewed?
&tpl=`tpl.ms3rv.product`
&limit=`8`
&parents=`0`
&toPlaceholder=`recentProducts`
]]Основные параметры:
- &tpl — чанк для вывода одной позиции
- &limit — максимальное количество товаров
- &parents — ограничение по категориям
- &depth — глубина поиска по родителям
- &toPlaceholder — сохранить вывод в плейсхолдер
- &return — формат возврата (tpl / ids / data / json)
- &showLog — вывод отладочной информации
Важно: рекомендуется вызывать некэшированно [[!ms3recentlyviewed]].
ms3recentlyviewedSimilar
Выводит товары из тех же категорий, что и недавно просмотренные.
[[!ms3recentlyviewedSimilar?
&tpl=`tpl.ms3rv.similar`
&limit=`6`
]]Поддерживает параметры фильтрации и форматирования аналогично основному сниппету.
ms3rvLexiconScript
Подключает фронтенд-лексикон для JavaScript.
[[!ms3rvLexiconScript]]Определение ботов (crawler_detect / regex)
Компонент позволяет исключать просмотры от поисковых систем и краулеров.
Доступны два метода (выбираются в системных настройках):
- crawler_detect — используется библиотека jaybizzle/crawler-detect для точного определения краулеров по User-Agent.
- regex — встроенная проверка по регулярному выражению (/bot|crawl|slurp|spider|mediapartners|googlebot|bingbot|yandex|baiduspider|duckduckbot|teoma|ahrefs|semrush|mj12bot|dotbot|rogerbot|screaming|petalbot|bytespider/i).
⚙️ Требования
MODX 3.0+, MiniShop3, PHP 8.1+, Fenom (pdoTools) 3.x, VueTools (для админки)
📈 Почему выбирают
Блок «Просмотренные ранее» стимулирует повторный интерес, увеличивает глубину просмотра и конверсию. Один сниппет для списка, один — для похожих, коннектор для AJAX. Подробная документация — в пакете.
Changelog
Format: Keep a Changelog
[1.2.5] - 2026-03-02
Fixed
- ms3recentlyviewedSimilar — закреплена отказоустойчивая цепочка вывода:
where->resources->ms3recentlyviewed(ids)->direct(sql+chunk). - Лексиконы корзины — при рендере карточек через connector/direct корректно загружается
minishop3:cart(ключи вродеms3_cart_addбольше не выводятся как текст). - Frontend JS — добавлены авто-подключение
viewed.css, авто-добавление классаrowдля.ms3rv__listи авто-рендер#ms3-recently-viewed/#ms3-similar.
[1.2.4] - 2026-03-02
Fixed
- ms3recentlyviewedSimilar — стабильный подбор «Похожих»:
whereпередаётся в формате JSON-массива, исключение просмотренных идёт черезid:NOT IN. - ms3recentlyviewedSimilar — усилен fallback-алгоритм вывода:
where->resources->ms3recentlyviewed(ids)->direct(sql+chunk).
[1.2.3] - 2026-03-02
Fixed
- EncryptedVehicle uninstall — повышена совместимость деинсталляции (класс загружается безопасно; добавлен alias-файл для xPDO class lookup).
[1.2.2] - 2026-03-01
Fixed
- ms3recentlyviewedSimilar — корректная глубина поиска категорий (
depth >= 2) и fallback в корень каталога (parents=0,depth>=3). - ms3recentlyviewedSimilar — fallback по ID товаров через БД:
ms3rv_get_product_ids_from_parents()с учётом контекста (context_key). - connector (action=similar) — явное переключение в рабочий контекст (
ms3recentlyviewed.context, по умолчаниюweb) и защитный fallback при пустом ответе сниппета. - ms3recentlyviewed — при пустом ответе от
msProductsдобавлен прямой fallback-рендер поids.
[1.2.1] - 2026-03-02
Changed
- Счётчик просмотренных — показывает общее число товаров в списке (включая текущую страницу); исключение текущего товара из подсчёта убрано
- ms3recentlyviewedSimilar — при пустых категориях (все просмотренные в корне) глубина поиска msProducts не менее 2, чтобы находить товары в подкатегориях
[1.2.0] - 2026-02-27
Added
- Интеграция jaybizzle/crawler-detect — определение ботов через библиотеку CrawlerDetect; настройка
block_bots_detector(crawler_detect / regex); fallback на regex при отсутствии vendor
[1.1.0] - 2026-02-18
Added
- lexicon/properties — описания параметров сниппетов (ids, tpl, emptyTpl, limit, depth) вместо ключей
- license.txt — лицензионное соглашение для коммерческого дополнения
- readme.txt — краткое описание, требования, установка, возможности (для пакета)
- Топ-10 — порядковый номер (ранг), колонка «#» сортируется, ранг обновляется при сортировке по любым колонкам
- Сниппет ms3rvDebugGetViews — заглушка для совместимости (возвращает пустую строку)
Changed
- Модель xPDO — metadata.mysql.php переведён на формат xPDO 3.0 (PSR-4 autoloading)
- Структура model — файлы ms3recentlyviewedItem перенесены в model/ и model/mysql/ для корректной загрузки классов
- Админка — скролл контента вкладок (max-height для .p-tabpanels)
- KPI «Всего просмотров» — подсказки периодов (за сегодня / неделю / месяц) визуально различаются цветом, отступы между блоками
- KPI-карточки — заголовки (Всего просмотров, Уникальных товаров и др.) выделены (font-weight, цвет)
- Стили — все px заменены на rem (единицы в rem)
Fixed
- Деинсталляция — резолвер удаляет настройки с пустым ключом перед удалением namespace (избегает "Error removing dependent object")
- Загрузка класса ms3recentlyviewedItem — ошибка «Could not load class» из-за устаревшего формата metadata
- Экспорт CSV — колонка User показывает «Гость» или email/username вместо 0/1
[1.0.0] - 2026-02-12
Added
- Блок «Недавно просмотренные» — вывод на страницах товара и каталога
- localStorage / cookie — хранение списка просмотренных товаров в браузере
- Синхронизация в БД — для авторизованных пользователей (настройка
sync_enabled) - Админка — дашборд со статистикой, топ товаров, история просмотров с фильтрами
- Экспорт CSV — выгрузка истории просмотров
- TTL и автоочистка — настраиваемый срок хранения (90 дней по умолчанию)
- Месячное архивирование — сводка за месяц для больших объёмов (опционально)
- Сниппет «Похожие» — рекомендации товаров из тех же категорий
- Фильтрация ботов — просмотры от краулеров не сохраняются (
block_bots) - Слайдер — горизонтальная прокрутка с кнопками навигации
- Разметка карточек — Bootstrap, формы корзины (ms3_form)
Changed
- Карточки — tplViewedItem и tplSimilarItem: Bootstrap card, ms3_form
- Стили — viewed.css: счётчик, слайдер, пустое состояние
Security
- Коннектор — лексиконы для сообщений sync/get/track
- Коннектор админки — проверка CSRF (MODX HTTP_MODAUTH)
- Удаление записей — проверка права
save_log




Последние обсуждения в сообществе MODX.pro