Модуль устанавливается стандартно. На этом не будем долго заострять внимание, об этом подробно написано на странице О Маркетплейсе.
После установки модуля на странице редактирования разделов любого инфоблока появляется дополнительная вкладка с названием Товарные коллекции. В этом можно убедится, открыв любой раздел любого инфоблока на редактирование в административном разделе сайта.


На данной вкладке формируются все необходимые условия/правила подбора товаров (элементов инфоблока). Согласно настроенным условиям элементы инфоблока привязываются к данному настроенному разделу инфоблока (далее раздел-коллекция).
Модуль имеет 2 конструктора условий:
Отдельного механизма, чтобы отвязать товары от раздела-коллекции нет. Т.к. не видим в этом особой необходимости. Этот момент можно решить множествами способов:
В данной главе приведены наиболее яркие, распространенные примеры использования модуля.
С помощью конструктора удобно собирать наборы товаров в те или иные разделы инфоблока. Конечно, чаще всего товары уже структурированы уже по своим разделам, но этого не достаточно. Очень часто возникает задача собирать товары в некоторые особо продвигаемые страницы сайта, например, по бренду, по цвету, по времени года или любые другие произвольные выборки.
Например, необходимо в раздел "Красные платья" собрать все доступные товары из инфоблока, содержащие фразу "платье" и имеющие цвет (свойство) "красный". Выглядеть это будет следующим образом:

После этого возвращаемся на форму редактирования нашего раздела, переходим в нужную закладку «Товарные коллекции», становится доступна кнопка ПЕРЕИНДЕКСАЦИИ. Необходимо ее выполнить:

Все, коллекция готова к работе.
Использование стандартных разделов инфоблока в качестве коллекций и привязка товаров к ним влечет ряд преимуществ:
Ранее для сбора товаров со скидкой рекомендовался следующий подход - реализация с помощью коллекций.
Но продукт постоянно развиваем и появились новые возможности - «Действия над товарами со скидкой» со следующими значениями:
В 1С-Битрикс нет явного признака (поля или свойства инфоблока), означающего, что товар доступен по скидке. Поэтому вывод акционных товаров на той или иной странице может оказаться далеко не тривиальной задачей. Но с помощью модуля Товарные коллекции в разделах этот вопрос можно легко решить. Т.к. один из конструкторов аналогичен конструктору условий в скидках, то достаточно настроить раздел-коллекцию с такими же условиями как и в скидках.
Например, имеются 2 настроенные программы скидок:

Условия первой выглядят следующим образом:

Условия второй:

Необходимо создать раздел инфоблока с условиями, комбинирующими данные скидки:

В итоге получится посадочная страница товаров со скидкой.
При необходимости скидки можно не комбинировать, а, наоборот, создать разные, например, можно создать общую категорию (раздел инфоблока) Распродажа и настроить подразделы-коллекции в них: товары со скидкой 5%, 10%, 25% и т.п.
Или в имеющихся базовых категориях создать подразделы с акционными товарами, например:
У коллекций имеются дополнительное условие - Не менять активность коллекции, об этом указано на странице Интерфейс скидок. При указании которого игнорируется изменение поля Активность у раздела-коллекции, следовательно при таких операциях как обмен товарами с 1С или иными внешними программами деактивация разделов не происходит.
Это позволяет создавать структуру вашего каталога абсолютно отличающейся от структуры в вашей внешней учетной программе.
Как это сделать?
Рассмотрим на примере выгрузки номенклатуры из 1С:
Обычно при выгрузке товаров создаются все необходимые объекты, поля и связи, такие как: разделы, свойства товаров, значения свойств, товары и тому подобное.
После первого же обмена с данными можно начать работать, создать иерархию разделов инфоблока (разделы-коллекции) и настроить условия попадания товаров в те или иные разделы с помощью конструкторов: Интерфейс скидок или Интерфейс фильтра, зависит от того, какой больше подойдет для той или иной коллекции. Останется только деактивировать ненужные разделы, которые были созданы при обмене, чтобы на сайте они не выводились.
Таким образом будет создана оригинальная иерархия вашего каталога.
Еще более модуль необходим, когда во внешней программе нет разделения по категориям. В этом случае модуль Товарные коллекции в разделах будет просто являться спасением. Вы легко сформируете нужные вам разделы на базе полей или свойств товаров, этим самым создав удобную навигацию для посетителей сайта, что безусловно увеличит конверсию сайта.
Завсегдатая задача - привязка раздела инфоблока к нескольким разделам родителям. На многих форумах встречается этот вопрос. Суть проблемы в том, что в 1С-Битрикс нет возможности привязать какой либо раздел к нескольким родителям, как это, например, легко делается для элементов инфоблока. Для чего так сделано и хорошо ли это или плохо, нам остается только догадываться.
Модифицировать модули и компоненты 1С-Битрикс для решения данного вопроса является, на наш взгляд, не лучшим способом, т.к. правка ядра cms ни к чему хорошему не приведет.
С помощью товарных коллекций этот вопрос легко решается, а, вернее обходится. В конструкторах условий есть возможность задать разделы для подбора товаров.

Или то же самое с использованием интерфейса фильтра:

Использование данного условия позволяет решить эту задачу. А именно, создать подразделы-дубли в настройках коллекций, для которых указать разделы, товары которых должны в них также отображаться.
Получится раздел с таким же названием, символьным кодом и прочими характеристиками, с теми же товарами но привязанный к другому родительскому разделу.
Примеры:
Таким образом можно создать необходимое количество подразделов-дублей в нужных родительских разделах.
Модуль Товарные коллекции позволяет создавать категории из набора нужных товаров по гибким условиям. Но как быть, если возникает задача добавлять всю эту категорию (коллекцию) сразу в корзину, не товары по отдельности, а коллекцию целиком, как один объект, как одна позиция в корзине?
Компоненты ЦМС 1С-Битрикс: корзины, списка заказов с товарами, отложенные товары, - не позволяют работать с категориями инфоблока, а только с товарами. Можно разработать свои компоненты, но это не лучший вариант, особенно, если вести заказы в административной панели или сторонних учетных системах.
Мы также можем в этом помощь, но за отдельное вознаграждение. Обратиться за помощью можно в наш чат в правом нижнем углу нашего сайта (в рабочее время отвечаем достаточно оперативно). Но оставляем за собой право отказать в доработке без объяснения причин.
Мы предлагаем следующий подход:
Например, если для вывода разделов-коллекций вместо стандартного компонента bitrix:catalog.section.list использовать компонент для вывода товаров bitrix:catalog.section, но из служебного инфоблока (задав для него нужный предустановленный фильтр), то весь механизм давления в корзину уже будет доступен. Останется немного кастомизировать шаблон, чтобы товары вели на страницу категории, а неизвестно куда - на страницы служебного товара.
Иногда возникает задача как то выделить коллекции, отдельно их разобрать или даже выгрузить в файл. По умолчанию явного функционала для этого нет. Но можно опираться на штатный функционал от 1С-Битрикс - экспорт в Excel файл.

Чтобы выделить разделы-коллекции от остальных разделов, достаточно создать пользовательское свойство для разделов, например, с названием Раздел-коллекция? и с кодом UF_IS_COLLECTONS.

Данное свойство будет доступен у разделов и при создании коллекций можно вручную отмечать разделы как коллекция и сортировать и экспортировать разделы в Excel файл:

Вернет разделы-коллекции:

Если необходимо автоматизировать процесс пометки разделов как коллекции, то можно воспользоваться обработчиками событий модуля:
//обработчик события: после редактирования коллекции
AddEventHandler("scoder.collections", "OnAfterScoderCollectionEdit", "OnAfterScoderCollectionEditHandler");
function OnAfterScoderCollectionEditHandler($arFields)
{
//Помечаем раздел, что он является "Товарной коллекцией"
$ar_load = array(
"UF_IS_COLLECTONS" => 1
);
if ($arFields["IBLOCK_ID"]>0 && $arFields["SECTION_ID"]>0)
$GLOBALS["USER_FIELD_MANAGER"]->Update("IBLOCK_".$arFields["IBLOCK_ID"]."_SECTION", $arFields["SECTION_ID"], $ar_load);
}
//обработчик события: после удаления коллекции
AddEventHandler("scoder.collections", "OnAfterScoderCollectionDelete", "OnAfterScoderCollectionDeleteHandler");
function OnAfterScoderCollectionDeleteHandler($section_id)
{
//Помечаем раздел, что он не является "Товарной коллекцией"
if ($section_id>0)
{
$ar_load = Array(
"UF_IS_COLLECTONS" => 0,
);
$arFilter = array('ID' => $section_id);
$rsSect = CIBlockSection::GetList(array('left_margin' => 'asc'),$arFilter,false,array("ID","IBLOCK_ID"),array("nTopCount" => 1));
if ($arFields = $rsSect->GetNext())
{
$GLOBALS["USER_FIELD_MANAGER"]->Update("IBLOCK_". $arFields["IBLOCK_ID"] ."_SECTION", $section_id, $ar_load);
}
}
}