Модуль устанавливается стандартно. На этом не будем долго заострять внимание, об этом подробно написано на странице О Маркетплейсе.
После установки модуля на странице редактирования разделов любого инфоблока появляется дополнительная вкладка с названием Товарные коллекции. В этом можно убедится, открыв любой раздел любого инфоблока на редактирование в административном разделе сайта.
На данной вкладке формируются все необходимые условия/правила подбора товаров (элементов инфоблока). Согласно настроенным условиям элементы инфоблока привязываются к данному настроенному разделу инфоблока (далее раздел-коллекция).
Модуль имеет 2 конструктора условий:
Само название данного интерфейса говорит о том, что он аналогичен интерфейсу Условий в скидках 1С-Битрикс. Данный интерфейс рассчитан для работы с товарами и торговыми предложениями.
В данном конструкторе доступны все те же поля и свойства, что и в условиях скидок. Следовательно механизм подбора товаров работает по той же логике, т.е. по всем правилам логический операций: сложения (Или), умножения (И), отрицания (Не).
Более подробно настройки рассмотрены на примерах:
Для данного интерфейса есть ряд дополнительных условий.
I. Учитывать родительские разделы
Это доп. условие полезно, если в основных условиях выбрано поле "Раздел". При отмеченной опции учитывается принадлежность к разделу родителю. Например: иерархия разделов устроена так:
Стоит задача, перебрать все товары подразделов раздела "Обувь". Указывать в условиях все подразделы не очень удобно, особенно если таких подразделов действительно много или часто появляются новые. При отмеченной опции "Учитывать родительские разделы" достаточно указывать родительский раздел (для нашего примера - это раздел "Обувь") и товары будут удовлетворять условию и попадать в коллекцию. В противном случае, т.к. реальной привязки к разделу "Обувь" нет, то в коллекцию вообще бы не попал ни один товар.
II. Товары каких инфоблоков перебирать
При переиндексации модуль проходит по всем инфоблокам, являющимися торговым каталогом или инфоблоком торговых предложений. Частенько нет необходимости перебирать элементы всех этих инфоблоков, т.к. условия (поля, свойства) коллекции ограничиваются одним инфоблоком. Поэтому, чтобы без необходимости не перебирать элементы всех инфоблоков, можно указать явно, лишь которые необходимы.
III. Учитывать доступность товаров / Только доступные
При данной отмеченной опции будет учитываться «Доступность» товаров, недоступные товары не будут попадать в коллекции.
IV. Не менять активность коллекции
При указании данной опции у раздела инфоблока, являющейся коллекцией, не возможно будет поменять Активность. Бывают ситуации, например, при обмене с 1С, разделы отсутствующие в 1С деактивируются. Чтобы этого не происходило и разделы-коллекции не деактивировались, необходимо отметить эту опцию.
V. Действия над товарами со скидкой.
Доступны следующие значения:
Сравнительно новый интерфейс. Главным преимуществом является, то что он доступен во всех редакциях 1С-Битрикс. Для ее использованию необходимо включить соответствующую опцию во вкладке "Товарные коллекции" на странице редактирования раздела инфоблока.
Принцип работы данного конструктора аналогичен работе фильтра в списке элементов инфоблока, доступны те же поля и свойства (свойства, в настройках которых отмечено "Выводить на странице списка элементов поле для фильтрации по этому свойству").
Следовательно как работает конструктор можно опробовать в списке элементов любого инфоблока.
Как и у интерфейса скидок у данного конструктора имеются дополнительные условия, но только одно - Не менять активность коллекции.
В административном разделе на странице: Настройки - Настройки продукта - Настройки модулей - Товарные коллекции в разделах доступны опции модуля.
Отдельного механизма, чтобы отвязать товары от раздела-коллекции нет. Т.к. не видим в этом особой необходимости. Этот момент можно решить множествами способов:
OnBeforeScoderCollectionElementEdit |
Вызывается перед привязкой / отвязкой элемента инфоблока к разделам инфоблока, может быть использовано для модификации данных Параметры:
|
В данной главе приведены наиболее яркие, распространенные примеры использования модуля.
С помощью конструктора удобно собирать наборы товаров в те или иные разделы инфоблока. Конечно, чаще всего товары уже структурированы уже по своим разделам, но этого не достаточно. Очень часто возникает задача собирать товары в некоторые особо продвигаемые страницы сайта, например, по бренду, по цвету, по времени года или любые другие произвольные выборки.
Например, необходимо в раздел "Красные платья" собрать все доступные товары из инфоблока, содержащие фразу "платье" и имеющие цвет (свойство) "красный". Выглядеть это будет следующим образом:
После этого возвращаемся на форму редактирования нашего раздела, переходим в нужную закладку «Товарные коллекции», становится доступна кнопка ПЕРЕИНДЕКСАЦИИ. Необходимо ее выполнить:
Все, коллекция готова к работе.
Использование стандартных разделов инфоблока в качестве коллекций и привязка товаров к ним влечет ряд преимуществ:
Ранее для сбора товаров со скидкой рекомендовался следующий подход - реализация с помощью коллекций.
Но продукт постоянно развиваем и появились новые возможности - «Действия над товарами со скидкой» со следующими значениями:
В 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); } } }