Virtual categories

Виртуальные категории

Виртуальные категории

Модуль превращает обычную категорию каталога в виртуальную: товары в неё не привязываются вручную, а отбираются по условиям — цене, скидке, характеристикам, остатку на складе, дате создания, продавцу и другим. Условия объединяются в группы с логикой «каждое» и «любое», поэтому одной категорией можно описать выборку любой сложности.

Что модуль даёт из коробки:

  • два режима работы: виртуальный, когда товары подбираются в момент открытия категории, и физическая привязка, когда товары привязываются к категории по-настоящему;
  • до восемнадцати условий отбора — часть из них появляется при установленных модулях отзывов, лидеров продаж и поставщиков;
  • вложенные группы условий с выбором «выполняется / не выполняется» и «каждое / любое»;
  • запуск привязки вручную или Cron-командой по расписанию;
  • сводный список категорий магазина с фильтром по признаку виртуальности;
  • наполнение блока Товары из виртуальной категории;
  • перенос признака виртуальности и условий вместе с импортом и экспортом категорий.
Документация описывает версию модуля 2.9.0.
Совместимость

Модуль совместим с CS-Cart версии 4.3.1 и новее, с такими редакциями как CS-Cart, CS-Cart Ultimate, Multivendor, Multivendor Plus, Multivendor Ultimate.

Часть условий отбора появляется только при установленных модулях:

  • Кол-во продаж товара — при модуле Лидеры продаж;
  • Кол-во отзывов на товар, Средняя оценка товара и Прошло дней с момента последнего отзыва — при модуле отзывов. На CS-Cart 4.13.1 и новее модуль работает с Отзывами о товарах, на более ранних версиях — с Комментариями и отзывами;
  • Поставщик — при модуле Поставщики.

Условие Кол-во товара на складе учитывает модуль Склады: при разделении остатков по складам берётся суммарный остаток. Отзывы по вариациям товара учитываются как отзывы всей группы вариаций, если в настройках модуля отзывов не включён их раздельный учёт.

Отдельно проверена совместимость со сторонними решениями: темой UniTheme2 и модулем AB Баннеры для категорий.

На данный момент нет информации о полной несовместимости модуля с какой-либо темой. В случае конфликта модуля с вашей темой обращайтесь в наш центр поддержки.

Установка модуля

После оформления и оплаты, ваш заказ будет автоматически переведен в статус Оплачен в течение считанных минут. Статус заказа Оплачен означает активацию лицензии и вам на e-mail отправляется письмо с подтверждением о получении оплаты и письмо со ссылкой на скачивание модуля. Так же модуль всегда можно скачать в нашем разделе Управление лицензиями. Для установки модуля на ваш сайт, пожалуйста, выполните следующие шаги:

  1. Скачайте последнюю версию модуля на нашем сайте в разделе "Управление лицензиями" или по ссылке, отправленной по e-mail.
  2. Пройдите в раздел Модули → Управление модулями и в меню шестерёнки выберите Ручная установка.
  3. Выберите ранее скачанный файл и завершите установку модуля.

На этом установка модуля завершена. Для перехода на страницу настроек модуля выберите установленный модуль в разделе Модули → Модули CS-Commerce

Управление модулем

После установки модуль добавляет в панель администратора:

  • Модули → Модули CS-Commerce → Виртуальные категории — настройки модуля и сводный список категорий;
  • вкладку Виртуальные категории на странице редактирования категории — там задаются условия отбора товаров;
  • наполнение Виртуальные категории для блока Товары в макетах.

Основная работа ведётся не на странице настроек, а на странице каждой категории: глобальных настроек у модуля всего две, всё остальное задаётся для конкретной виртуальной категории.

Разделы ниже разбирают эти страницы по шагам.

Основные настройки модуля

Настройки находятся в разделе Модули → Модули CS-Commerce → Виртуальные категории. Туда же ведёт кнопка настроек модуля на странице Модули → Управление модулями.

Режим

Глобальный режим работы, общий для всех виртуальных категорий магазина:

  • Виртуальный режим (режим реального времени) — товары подбираются в тот момент, когда покупатель открывает категорию;
  • Физическая привязка товара к виртуальной категории — товары привязываются к категории по-настоящему, при запуске линковки.

Значение по умолчанию — виртуальный режим. Чем режимы отличаются на практике и что выбрать, разбирает следующий раздел.

Команда

Появляется только в режиме Физическая привязка. Это не настройка, а готовая Cron-команда для запуска привязки по расписанию: модуль подставляет в неё путь к магазину и пароль для Cron из настроек CS-Cart. Показываются два варианта — консольный (рекомендуется) и альтернативный через wget.

Скрывать виртуальные категории в селекторах категорий

Появляется только в виртуальном режиме. Убирает виртуальные категории из выпадающих списков и селекторов категорий — например, на странице редактирования товара. Полезно, чтобы менеджеры случайно не привязали товар руками к категории, которая наполняется условиями.

Настройки модуля общие для всего магазина. Отдельных значений для витрин, продавцов или магазинов редакции Ultimate у модуля нет: переключатель витрины на странице настроек не показывается.

Режимы работы модуля

Режим выбирается один раз для всего магазина в настройках модуля и определяет, когда именно вычисляется состав виртуальной категории.

Виртуальный режим

Товары не привязываются к категории. Когда покупатель открывает виртуальную категорию, модуль подставляет её условия прямо в запрос выборки товаров, и категория наполняется в момент показа.

  • каталог не меняется: у товара остаются его собственные категории;
  • изменение цены, остатка или характеристики сразу меняет состав категории — пересчитывать ничего не нужно;
  • категория не считается пустой, даже если товары в неё пока не попали, и не пропадает из меню;
  • акции и скидки, настроенные на виртуальную категорию, применяются к товарам, которые в неё попали.

Обратная сторона — каждое открытие категории выполняет более тяжёлый запрос к базе. На больших каталогах и сложных условиях это заметно.

Физическая привязка

Модуль создаёт настоящие связи товар — категория. Привязка дополнительная: главная категория товара не меняется, товар просто оказывается ещё и в виртуальной. Состав категории сам по себе не обновляется — линковку нужно запускать.

Запустить привязку можно тремя способами:

  1. кнопка Запустить виртуальную линковку в меню шестерёнки на странице настроек модуля — пересчитываются все виртуальные категории;
  2. та же кнопка в меню шестерёнки на странице редактирования категории — пересчитывается только эта категория;
  3. Cron-командой по расписанию — готовая команда показана в настройках модуля.

Категории обрабатываются в порядке поля Позиция. Благодаря этому одна виртуальная категория может опираться на результат другой: если в условиях второй категории указать первую, к моменту её обработки первая уже наполнена.

При каждом запуске модуль сначала удаляет дополнительные привязки к обрабатываемым виртуальным категориям, а затем создаёт их заново. Товары, для которых виртуальная категория является главной, не затрагиваются.

Потерянные товары

После каждой линковки модуль ищет товары, которые в результате остались вообще без категорий, и складывает их в служебную категорию «Виртуальные категории» потерянные товары. Она создаётся автоматически, отключённой, отдельно для каждого продавца или магазина. Товары в ней не теряются и не пропадают из админки — их видно и можно разложить по каталогу вручную.

Если в режиме физической привязки снять флажок «Сделать категорию виртуальной», уже созданные привязки останутся на месте. Так режим можно использовать для разового автоматического раскладывания товаров по обычным категориям.

За один проход в категорию привязывается не более 100 000 товаров.

Настройка виртуальной категории

Виртуальной делается обычная категория каталога — отдельной сущности модуль не заводит.

  1. Откройте Каталог → Категории и создайте новую категорию или откройте существующую.
  2. Перейдите на вкладку Виртуальные категории.
  3. Включите флажок Сделать категорию виртуальной — под ним раскроется дерево условий.
  4. Соберите условия отбора и сохраните категорию.

Дерево условий

Дерево устроено так же, как условия акций в CS-Cart, и собирается теми же двумя ссылками:

  • Добавить условие — добавляет одно условие: выбираете, по какому свойству товара отбирать, оператор сравнения и значение;
  • Добавить группу — добавляет вложенную группу со своей логикой. Группы можно вкладывать друг в друга без ограничений по глубине.

В шапке каждой группы, включая корневую, стоят два выпадающих списка: выполняется / не выполняется и каждое / любое.

«Каждое» означает, что товар должен удовлетворять всем условиям группы (логическое И), «любое» — хотя бы одному из них (логическое ИЛИ).
«Не выполняется» инвертирует не группу целиком, а каждое условие в ней по отдельности: «равно» становится «не равно», «больше» — «меньше или равно», «содержит» — «не содержит». Связка «каждое / любое» при этом сохраняется, а не меняется на противоположную.

Ненужное условие или группу убирает значок корзины справа.

Категория без условий

Если флажок виртуальности включён, но ни одного условия не задано, категория остаётся пустой. Это защита: без неё в категорию попал бы весь каталог.

Пересчёт

В виртуальном режиме сохранения категории достаточно — состав пересчитывается при каждом открытии. В режиме физической привязки в меню шестерёнки на странице категории появляется кнопка Запустить виртуальную линковку, которая пересчитывает эту категорию сразу же.

Условия отбора товаров

Условие состоит из свойства товара, оператора сравнения и значения. Набор операторов у каждого условия свой.

Цена и скидка

  • Цена товара — базовая цена товара без учёта групп пользователей и количественных скидок. В редакции Ultimate, если для витрины задана своя цена, берётся она. Операторы: равно, не равно, больше, больше или равно, меньше, меньше или равно.
  • Скидка на товар (%) — размер скидки в процентах, посчитанный от старой цены товара. Условие удобно для категорий вида «Скидки от 30%». Операторы те же.

Каталог

  • Категории — товар входит или не входит в выбранные категории. Вложенные категории учитываются: выбрав родителя, вы захватываете всё его поддерево. Категории выбираются селектором, учитываются только активные и скрытые.
  • Товары — перечисление конкретных товаров селектором: «в списке» или «не в списке». Пригодится, чтобы вручную добавить или исключить отдельные позиции.
  • Характеристика товара — сначала выбирается характеристика, затем её значение. Для операторов «в списке» и «не в списке» можно указать несколько значений сразу. Если значение оставить пустым, условие проверяет само наличие характеристики у товара.
  • Название товара — поиск подстроки в названии на текущем языке. Операторы: содержит, не содержит.
  • Вес товара — в единицах веса магазина.
  • Продавец — товары выбранных продавцов или магазинов. Продавцы выбираются селектором.
  • Поставщик — только при установленном модуле Поставщики.

Склад и наличие

  • Кол-во товара на складе — остаток товара. При включённом модуле Склады и разделении остатков по складам берётся суммарный остаток.
  • Действие при отсутствии товара в наличии — что магазин делает с товаром, которого нет: Ничего, Купить заранее или Подписаться на уведомление. Операторы: равно, не равно. Условие появилось в версии 2.9.0 и в связке с остатком позволяет собрать категорию предзаказов.

Время

  • Дата создания товара — сравнение с конкретной датой, выбирается в календаре. Операторы: больше, больше или равно, меньше, меньше или равно.
  • Товар создан, дней — сколько дней прошло с момента создания товара. Операторы: больше, меньше. Условие удобнее предыдущего для категорий вида «Новинки за 30 дней»: дату не нужно менять руками.

Популярность, продажи и отзывы

  • Популярность товара — накопленный CS-Cart рейтинг популярности: просмотры, добавления в корзину, покупки.
  • Кол-во продаж товара — только при установленном модуле Лидеры продаж.
  • Кол-во отзывов на товар — количество одобренных отзывов.
  • Средняя оценка товара — выбирается из значений от 0 до 5.
  • Прошло дней с момента последнего отзыва — сколько дней товар не получал отзывов. Условие появилось в версии 2.6.0.

Три последних условия требуют установленного модуля отзывов.

Условия можно комбинировать: например, группа «каждое» из условий «Кол-во товара на складе больше 0» и «Скидка на товар (%) больше или равна 20» даёт категорию распродажи только из того, что есть в наличии.

Список категорий и права доступа

Пункт Управление категориями в боковом меню страницы модуля показывает сводный список категорий магазина — по двадцать на страницу.

Для каждой категории видно:

  • название и полный путь в каталоге;
  • признак Виртуальная — да или нет;
  • статус категории, который здесь же можно переключить.

Название ведёт сразу на вкладку Виртуальные категории страницы редактирования, так что до условий не нужно добираться через каталог.

В боковой панели — поиск по названию и флажок Виртуальная. Включите его, чтобы оставить в списке только виртуальные категории: это самый быстрый способ увидеть, что в магазине настроено модулем.

Права доступа

Модуль добавляет группу прав Управление модулем Виртуальные категории с двумя правами: просмотр и управление. Настраиваются они в группах пользователей (Покупатели → Группы пользователей) в разделе Модули стандартными средствами CS-Cart, так что сотруднику можно дать доступ только на чтение.

По умолчанию права не выданы никому, кроме администраторов с полным доступом. Флажок виртуальности и условия на странице категории при этом закрываются обычными правами на редактирование категорий.

Вывод товаров блоком

Товары виртуальной категории можно показать где угодно на витрине — блоком, не открывая саму категорию.

  1. Откройте Дизайн → Макеты и выберите нужный макет и страницу.
  2. Добавьте блок Товары или откройте настройки уже существующего.
  3. В качестве наполнения выберите Виртуальные категории.

У наполнения четыре поля:

  • Категория — выпадающий список, в котором показаны только виртуальные категории, каждая с полным путём в каталоге;
  • Сортировать по — дата, название или цена;
  • Направление сортировки — по возрастанию или по убыванию;
  • Количество — сколько товаров показать в блоке, по умолчанию пять.
Наполнение работает в обоих режимах: в виртуальном товары подбираются по условиям в момент показа блока, в режиме физической привязки берутся уже созданные привязки.

Импорт и экспорт

Если в магазине установлен наш модуль Импорт/экспорт категорий, признак виртуальности и условия отбора переносятся вместе с категориями. В файле категорий появляются два столбца:

  • IsVirtual — виртуальная категория или нет;
  • VirtualConditions — всё дерево условий в формате JSON.

Так виртуальные категории можно переносить между магазинами и правкой файла массово менять условия сразу у многих категорий. Возможность появилась в версии 2.5.1.

Условия хранят внутренние идентификаторы категорий, товаров, характеристик, продавцов и поставщиков. При переносе в другой магазин эти идентификаторы должны совпадать, иначе условия придётся собрать заново.

Обновление модуля

Для того, чтобы иметь доступ к обновлениям модуля, у вас должен быть активный период подписки на обновления. При истекшем периоде подписки, вам будут доступны только обновления, выпущенные до даты истечения вашей подписки. Продлить подписку на обновления можно в разделе "Управление лицензиями" на нашем сайте. 

Модуль поддерживает поставку обновлений через Центр обновлений CS-Cart. О выходе новых версий модуля вас оповестит встроенный Центр уведомлений Cart (колокольчик). Обновление модуля с помощью Центра обновлений позволит без потерь настроек данных модуля произвести переход на более новую версию модуля.

Непосредственно перед обновлением, крайне рекомендуется делать полный бэкап сайта (базы данных и файлов) вашего магазина средствами сервера или хостинга.

Обновление модуля через Центр обновлений:

  1. В верхнем меню пройдите в раздел Администрирование → Центр обновлений;
  2. В меню шестеренки нажмите "Проверить доступные обновления"
  3. Cреди списка доступных обновлений найдите нужное и нажмите кнопку Обновить;
  4. Следуйте всем инструкциям, которые будут показаны при процедуре обновления;
  5. Рекомендуется произвести очистку кэша CS-Cart после завершения устанвоки обновлений удалением папки var/cache на вашем сервере или добавлением в адресную строку параметра ctpl (прмиер: https://domain.com/admin.php?ctpl).

Переустановка модуля удалением:

Переустановка модуля означает удаление настроек и данных модуля. Переустановка позволит получить чистую установку модуля. Для переустановки модуля с сохранением настроек и данных, пожалуйста, обратитесь в наш Центр поддержки для оказания такой услуги. 

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

  1. Пройдите в раздел Модули → Управление модулями и найдите старый установленный модуль.
  2. Нажмите в меню шестеренки модуля кнопку удалить.
  3. Скачайте последнюю версию модуля на нашем сайте в разделе "Управление лицензиями".
  4. Пройдите в раздел Модули → Управление модулями и в меню шестеренки выберите Ручная установка.
  5. Выберите ранее скачанный файл и завершите установку модуля.

Техническая поддержка

Техническая поддержка модуля уже включена в его стоимость. Прежде чем обращаться в центр поддержки, пожалуйста, убедитесь что вы используете последнюю выпущенную версию модуля. Старые версии  модуля не обслуживаются технической поддержкой.

Для того, чтобы воспользоваться нашей технической поддержкой, выполните следующие шаги:

  1. На нашем сайте центра поддержки https://helpdesk.cs-commerce.com/ авторизуйтесь под своей учетной записью;
  2. Нажмите на кнопку "Новая заявка";
  3. Заполните все необходимые поля и создайте заявку (Вы получите на e-mail письмо с подтверждением);
  4. Ожидайте ответ специалиста (на ваш e-mail придет уведомление об ответе на вашу заявку) в соответствии с регламентами работы службы техподдержки.

Если Вы не получили ответ в течении сроков, обозначенных в регламентах, напишите нам на e-mail [email protected] сообщение с темой заявки и мы постараемся решить вас вопрос в ближайшее время.

Техническая поддержка по диалогу в чате на сайте, прямым телефонным обращениям или e-mail письмам не осуществляется. Вся помощь проходит через центр поддержки. Внимательно изучайте документацию к модулю и условия технической поддержки перед созданием обращения.

Ограничения и предупреждения

Рекомендуем ознакомиться с общими ограничениями:

  1. Фрагменты кода  или некоторые файлы модуля могут иметь закрытую (закодированную) часть. Закодированная часть не создает проблемы в доработке модуля;
  2. Модуль будет работать только на тех доменах, которые указаны в лицензии пользователя. При попытке использования решения на установках CS-Cart, домены которых не включены в лицензию, модуль будет автоматически выключен;
  3. Установка локально не допускается системой лицензирования. Чтобы модуль работал на дополнительном домене (псевдониме) укажите этот псевдоним на странице управления лицензиями. На один домен допускается указать до трех псевдонимов для нужд тестирования и разработки.
  4. Главный домен лицензии вы можете менять самостоятельно на странице управления лицензиями. 
Для доступа к изменению/добавлению доменов и псевдонимов лицензии, подписка на обновления должна быть активной. Для изменения домена лицензии с истекшим периодом подписки, сначала необходимо продлить подписку на обновления. 

 

История версий

Версия 2.9.0 от 2 сентября 2026 года

  • [+] Добавлено условие «Действие при отсутствии товара в наличии»: категорию можно собирать из товаров с предзаказом или подпиской на уведомления, в том числе в связке с условием по количеству товара на складе;
  • [+] Добавлена совместимость со сторонним модулем AB Баннеры для категорий;
  • [*] Оптимизирована привязка товаров к виртуальным категориям по расписанию: пересчёт проходит заметно быстрее и создаёт меньшую нагрузку на сервер.

Версия 2.8.1 от 9 апреля 2026 года

  • [*] Оптимизация функций для повышения производительности;
  • [*] Базовые обновления безопасности модуля.

Версия 2.8.0 от 29 января 2026 года

  • [+] Добавлено условие «не содержит» для названия товара;
  • [!] Исправлена выборка товаров для блока виртуальной категории на некоторых конфигурациях сайтов;
  • [*] Базовые обновления безопасности модуля.

Версия 2.7.1 от 3 октября 2025 года

  • [*] Добавлена защита от подгрузки всех товаров в виртуальную категорию, когда не задано ни одного условия.

Версия 2.7.0 от 14 мая 2025 года

  • [*] Базовые обновления модуля;
  • [*] Товары, потерянные во время физической линковки, автоматически перемещаются в категорию «Виртуальные категории» потерянные товары;
  • [!] Исправлена ошибка SQL-запроса в виртуальном режиме привязки товаров с условием «Цена товара» в редакции CS-Cart Ultimate.

Версия 2.6.1 от 22 марта 2025 года

  • [!] Исправлена случайно возникавшая ошибка базы данных при построении условий выборки по категориям.

Версия 2.6.0 от 30 октября 2024 года

  • [+] Добавлена возможность отбирать товары по количеству дней, прошедших с момента последнего отзыва.

Версия 2.5.1 от 3 сентября 2024 года

  • [+] Добавлена возможность импорта и экспорта статуса виртуальности и условий виртуальной категории при использовании модуля Импорт/экспорт категорий;
  • [*] Базовые обновления безопасности модуля.

Версия 2.5.0 от 1 февраля 2024 года

  • [!] Исправлена ошибка в логике подборки с отрицательными условиями поиска по характеристикам;
  • [*] Улучшена функция привязки товаров к виртуальной категории;
  • [*] Базовые обновления безопасности модуля.

Это важное обновление, установите его как можно скорее.

Версия 2.4.4 от 12 октября 2023 года

  • [!] Исправлена ошибка в работе модуля после удаления виртуальной категории.

Версия 2.4.3 от 1 сентября 2023 года

  • [!] Исправлен конфликт в базе данных при определённых комбинациях характеристик в условиях виртуальной категории.

Версия 2.4.2 от 17 июля 2023 года

  • [*] Базовые обновления безопасности модуля.

Версия 2.4.1 от 11 июля 2023 года

  • [!] Исправлена ошибка при работе скрипта физической привязки.

Версия 2.4.0 от 30 июня 2023 года

  • [+] Категории в режиме физической привязки обрабатываются по очереди согласно значению поля «Позиция», благодаря чему одни виртуальные категории можно строить на основе других.

Версия 2.3.8 от 2 мая 2023 года

  • [+] Добавлена проверка, предотвращающая ошибку при некорректно заполненных условиях виртуальной категории;
  • [+] Добавлена совместимость с отзывами по вариациям товаров.