Внедрение модуля не сложное, однако необходимо знать некоторые тонкости настройки, о которых мы расскажем в данном материале.
На первом этапе необходимо определиться с двумя моментами - как будет настраиваться каталог и как будет интегрироваться модуль на вашем сайте.
Необходимо определиться по каким общим признакам будут группироваться товары в каталоге, а также какие свойства будут являться параметрами SKU в каждом разделе или во всем каталоге. Также важно каким образом будут задаваться все эти параметры.
В модуле предусмотрено три варианта группировки товаров:
1.1 Используем 1 свойство каталога, в котором будет храниться связь между товарами. Глобально для всего сайта.
Например, зададим в инфоблоке свойство "Общий признак". Мы будем группировать все товары в рамках значения этого свойства. При этом мы можем ограничить поиск всех возможных комбинаций товара в рамках этого свойства конкретными разделами каталога. Можно выбрать какое-то одно свойство, которое уже задано в каталоге, либо создать новое свойство и заполнить во всех товарах. Такой вариант, как правило, подходит интернет-магазинам с небольшим ассортиментом товаров.
Также необходимо будет указать префикс свойств, которые будут выводиться в товарах в качестве торговых предложений SKU. Настройка выполняется глобально для всего сайта.
Например, укажем префикс в настройках модуля "DUB_SKU_". Это значит, что все свойства каталога, символьные коды которых начинаются на "DUB_SKU" являются свойствами торговых предложений. К примеру, цвет (DUB_SKU_COLOR) и размер ("DUB_SKU_SIZE"). Количество таких свойств не ограничивается. В данном случае модуль найдет все комбинации текущего товара по серии и выведет в качестве SKU параметры "Цвет" и "Размер". Если у найденных товаров будет найдено только одно свойство "Цвет", значит на сайте будет отображаться только один параметр. При этом чтобы выводились оба указанных параметра (или более) нужно чтобы у всех найденных товаров были заполнены все эти свойства. Если хотя бы у одного товара отсутствует значение. это свойство исключается из выборки.
1.2 Используем одно или несколько свойств (без ограничений) для группировки товаров отдельно в разделах каталога. Также указываем в разделах какие свойства будут являться параметрами SKU.
Это более гибкий способ настройки каталога, который подходит для интернет-магазинов с большим ассортиментом. В данном случае мы сможем группировать товары по отдельным свойствами в конкретных разделах. Например, в разделе "Насосы" мы группируем товары по серии и бренду, а выводим в карточке параметры "Напор", "Расход", "Длина кабеля". В другом разделе можем указать другие параметры для группировки и вывода торговых предложений. Причем можно задавать параметры как для вложенных разделов, так и для родительских (во втором случае поиск свойств будет выполняться рекурсивно).
Возможно комбинирование этого способа настройки каталога с первым. Это значит, что если модуль на нашел свойства в разделе для конкретного товара, возможен поиск свойств в самом инфоблоке по префиксу. Поиск свойств в разделах выполняется рекурсивно, то есть если свойства в основном разделе товара отсутствуют, модуль будет проверять заполненные свойства в родительских разделах, спускаясь от верхнего уровня вложенности до самого нижнего (родителя).
1.3 Группируем все товары в разделах без указания общего признака
Функция полезна, например, если у товаров не заданы никакие общие признаки в виде свойств, но товары уже сгруппированы в подразделах каталога. Достаточно поставить галочку в настройку любого раздела и все товары автоматически сгруппируются между собой
Не менее важный по значимости вопрос. В модуле поддерживается опять-таки 2 варианта интеграции:
- через внедрение компонента в карточке товара (программная доработка шаблона карточки товара)
- автоматическая интеграция (фоновая AJAX загрузка компонента без программной доработки).
Визуально внедрение модуля через компонент отличается тем, что SKU загружается моментально на странице и есть возможность сохранить положение курсора на странице при переходе по SKU. При использовании композитного кэширования на сайте можно добиться бесшовной загрузки карточек товара при выборе значений SKU. Для внедрения компонента подразумевается программная доработка шаблона карточке товара. Этот вариант реализации является более предпочтительным.
Внедрение модуля автоматически без компонента и программной доработки подразумевает небольшую задержку в отрисовке блока SKU, поскольку выполняется фоновый AJAX запрос и после отрисовки самой страницы блок SKU вставляется в выбранный селектор. Из плюсов, внедрение выполняется автоматически без программной доработки, а также такой вариант интеграции на влияет на скорость отрисовки самой страницы сайта, что особенно актуально на высоконагруженных проектах и сайтах с большим количеством товаров и свойств в инфоблоке.
Обратите внимание, что второй вариант реализации подразумевает не обновление всей карточки товара на AJAX, а лишь блок, который выводит SKU.
Также акцентируем внимание на том, что разница в скорости работы между этими двумя вариантами возникает только в крупных каталогах на несколько миллионов позиций, с тысячами свойств каталога, а также при большой нагрузке на сервер (в условиях высокой посещаемости). Либо если у вас сильно ограничены ресурсы сервера или некорректно настроен сервер.
В остальных случаях, между этими двумя вариантами не будет никакой разницы в скорости работы, вернее даже первый вариант через компонент намного предпочтительнее за счет того, компонент загружается сразу на странице. В то время как при фоновой AJAX загрузке модуль будет ждать когда загрузится вся страница товара. Поэтому не следует выбирать второй вариант реализации для обеспечения максимально быстрой отрисовки страницы на небольших и не нагруженных проектах.
Вариант без внедрения компонента будет также актуален, например, если вы используете готовое решение и хотите сохранить обновления продукта целиком.
Первый вариант внедрения через компонент подразумевает кастомизацию карточки товара готового решения и вынесение шаблона карточки в свое пространство имен. Это значит, что обновление готового решения будет возможно, ничего не затрется, однако шаблон карточки товара обновляться не будет. Во многих популярных готовых решениях с Маркетплейс 1С Битрикс все ключевые функции и блоки формируются за пределами карточки товара (внутри самого модуля), поэтому, как правило, такая кастомизация не особо повлияет на дальнейшее развитие проекта. Однако, все индивидуально и зависит от конкретного готового решения, которое вы используете на своем сайте.
Если у вас несколько сайтов на одной системе с разными настройками, не стандартное ЧПУ и / или вы хотите чтобы торговые предложения загружались моментально, то выберите интеграцию через компонент. Как уже отмечалось ранее, это более предпочтительный вариант.
В рамках акции (если такое предложение есть на странице нашего модуля) мы выполняем полную иннтеграцию и первичную настройку модуля бесплатно за 1 день. Обязательно проверяйте информацию на странице модуля на Marketplace. Предложение не является бессрочным.
Итак, когда вы определились каким образом будет настраиваться каталог и как будет интегрироваться модуль, переходим к детальной настройке и разбору всех тонкостей.
После стандартной установки модуля пользователь попадает на страницу центра управления модулем:
На данной странице вы можете обратиться в техническую поддержку через чат или телеграм-бот. Мы постараемся максимально оперативно помочь вам в решении возникшей ситуации.
Также в центре управления можно посмотреть актуальные инструкции, а также заказать доработку модуля и перейти к настройкам модуля.
Обратите внимание! Для обращения в техподдержку нужно иметь активную лицензию на модуль. Лицензия приобретается сроком на 1 год. Стоимость дальнейшего продления лицензии составляет 50% от актуальной стоимости продукта на момент такого продления. По истечению срока действия лицензии модуль будет работать, но без возможности устанавливать обновления и пользовататься технической поддержкой.
Все разделы настроек модуля находятся в основном меню вашей системы, можно быстро перейти в нужный раздел:
Первым делом после перехода на страницу с настройками модуля включите модуль и режим отладки.
В режиме отладки модуль виден только администраторам интернет-магазина
Дальше нужно настроить модуль, в зависимости от того какой вариант вы выбрали по настройке каталога (рассмотрено в этой главе).
Подсказки на странице модуля помогут быстро сориентироваться и выполнить необходимую настройку.
Вы можете указать символьный код свойства, по которому будет выполняться группировка товаров во всем каталоге. Если у вас нет такого свойства, то используйте значение по умолчанию "DUB_SKU". В этом случае в нужном каталоге (информационный блок) создайте свойство с этим символьным кодом (тип свойства - строка). Также нужно указать префикс свойств, которые будут выводиться в карточке товара в качестве параметров SKU. Значение по умолчанию "DUB_SKU_".
Префикс позволяет идентифицировать в каталоге все свойства, которые являются параметрами торговых предложений. Модуль найдет все свойства, которые начинаются с этого префикса, например, DUB_SKU_COLOR, DUB_SKU_SIZE. Модуль выберет только те свойства из этого списка, которые используются в конкретных товарах.
Пример создания свойств:
После создания свойств заполните все нужные значения в товарах.
Обратите внимание! Вы можете указать тип свойства "Справочник" для вывода картинок с изображением цвета товара. В данном случае справочник ссылается на отдельный highload блок сайта.
Пример highload блока:
Каждое поле highload блока основано на пользовательских полях:
Если вы хотите указать в разделах конкретные свойства, по которым нужно группировать товары в этих разделах, а также свойства, которые нужно выводить в товарах этих разделов, то найдите и активируйте в настройках модуля в самом низу галочку "Включить автоматическую группировку товаров по общим признакам":
Также в настройках модуля надо активировать галочку "Указывать свойства SKU в разделах". Если это не сделать, модуль будет искать свойства в каталоге по префиксу, а не в разделах.
Например, в разделе “Двигатели” нам нужно сгруппировать все товары, у которых совпадают значения двух свойств - серия двигателя (DUB_SERIA) и тип двигателя (DUB_TYPE). Модуль найдет все товары с одинаковыми значениями этих свойств и выведет SKU на основе различающихся свойств, которые мы также указали в разделах, например - количество скоростей и мощность. Тогда в карточке товара мы увидим возможность выбора этих параметров.
Для работы функционала задайте в каждом разделе, где нужно вывести SKU, список символьных кодов свойств, по которым будет выполняться группировка товаров в этом разделе. Если в подразделе каталога не задан список свойств, модуль будет искать свойства в родительском разделе
Также можно активировать опцию "Включить строгую проверку наличия всех значений свойств для выборки товаров".
Если для конкретного раздела каталога указано, к примеру, 2 свойства, по которым нужно группировать товары, то при включении строгой проверки в выборку попадут только те товары, у которых есть значения всех указанных свойств. При отключении опции допускается, что у товара не будет заполнено какое-либо значение свойства.
Например, для радела каталога мы указали свойства для выборки товара - серия и бренд. Если опция включена, в выборку попадут товары, у которых совпадают значения этих свойств. Если опция выключена, а у одного товара заполнен только бренд, но не заполнения серия, то в выборку попадут товары у которых совпадает только бренд. Деактивированная опция полезна в тех случаях, когда в одном и том же разделе нужно группировать товары по разным свойствам.
Последняя опция на скриншоте выше (ограничение выборки по разделам) позволяет ограничить область поиска возможных комбинаций товара. Доступно 4 варианта:
Искать товары без привязи к разделам во всем каталоге
Модуль будет искать все товары без ограничений по разделам. При выборе этой опции не будет учитываться привязанный раздел этого товара, поиск будет выполняться по всем товарам каталога во всех разделах.
Включение этой опции оправдано только если действительно вам необходимо искать товары по всему каталога без ограничений по разделам. Эта опция может замедлять скорость обработки запросов если в каталоге большое количество товаров. Выбирайте эту опцию только с пониманием дела.
Ограничить выборку только одним разделом товара
Выборка выполняется по основному разделу товара, даже если товар привязан к нескольким разделам каталога.
Искать товары для выборки во всех привязанных разделах товара
Выборка ограничивается только привязанными разделами товара.
Искать товары для выборки во всех привязанных разделах товара рекурсивно
Выборка идет по всем привязанным разделам товара на всех уровнях вложенности каталога. Поиск разделов выполняется рекурсивно - определяется родительский корневой раздел и все его вложенные разделы и подразделы.
Завершающим шагом по настройке каталоге будет создание пользовательских свойств в каталоге, в которых будут указываться символьные коды свойств для группировки и выборки товаров. Для этого перейдите на вкладку "Подготовка каталога" и выберете инфоблок, который используется на сайте в качестве каталога. Если у вас несколько сайтов на одной системе, то настройте сразу все информационные блоки на этой странице.
Если после запуска скрипта отображается ошибка создания свойств, это значит что свойства уже были созданы ранее.
Теперь в настройках каждого раздела вы можете указывать символьные коды свойств каталога для выборки и вывода SKU:
При этом если в основном разделе каталога не задан список свойств, модуль будет искать свойства в родительском разделе рекурсивно. То есть если у вас множество вложенных разделов, а настройки идентичны, можно задать список свойств только для родительского раздела.
Как видно на скриншоте выше, для каждого раздела можно включить индивидуальные настройки - проверка доступности товара по выбранной комбинации SKU и включение обратной сортировки SKU. Данные параметры рассмотрены в следующем разделе по настройке модуля.
Перед интеграцией ознакомьтесь с отличиями между двумя вариантами интеграции, которые были рассмотрены в самом начале, а также определитесь какой вариант для вас наиболее приемлем.
Если выбран способ интеграции модуля через компонент, разместите код вызова компонента dubovoi.sku_list в карточке товара (catalog.element).
Пример вызова компонента в карточке:
<?$APPLICATION->IncludeComponent( "dubovoi:sku_list", ".default", array( "ELEMENT_ID" => $arResult['ID'], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "CACHE_TYPE" => "A", "CACHE_TIME" => 36000000 ), $component ); ?>
Если вы не укажете четвертым аргументом $component при вставке компонента внутри другого компонента catalog.element, то стили модуля загружаться не будут
Вместо стандартного шаблона .default модуль поддерживает шаблоны для готовых решений "Аспро Максимум" и "Аспро Премьер". Названая шаблонов:
Модуль может работать без компонента.
В этом случае в каталоге должно быть настроено ЧПУ вида /catalog/#SECTION_CODE#/#ELEMENT_CODE#/
/catalog/#SECTION_CODE#/#ELEMENT_ID#/
где "catalog" - наименование корневой директории каталога (возможно изменение, описание настройки ниже)
Также символьный код раздела #SECTION_CODE# может быть заменен в ЧПУ на всю цепочку разделов #SECTION_CODE_PATH#, в данном случае укажите на каком уровне вложенности ЧПУ находится карточка товара (рассмотрено ниже).
Если карточка товара может находиться на разных уровнях вложенности, укажите минимальный, но в этом случае в некоторых ситуациях будет выполнен лишний запрос к БД (например, на одном из уровней ожидается карточка товара, но фактически там располагается раздел, что вызовет лишний запрос к БД на поиск карточки товара по символьному коду раздела). В таких случаях рекомендуется выбрать способ интеграции через компонент.
При включении автоматической интеграции создается событие, которое запускается на каждой странице сайта и отслеживает по URL наличие корневого раздела каталога и символьный код (или ID) карточки товара на указанном уровне вложенности URL. При совпадении запускается скрипт поиска товара по URL.
При переключении режима интеграции на компонент событие для отслеживания URL сайта удаляется автоматически.
Несмотря на то, что событие отслеживает каждую страницу сайта, это не оказывает существенного влияния на скорость работы сайта. Если страница сайта не является карточкой товара, событие срабатывает вхолостую и не запускает какие-либо запросы к БД (исключение составляет, рассмотренный выше, случай когда карточка товара может располагаться на разных уровнях вложенности ЧПУ).
Технически, при автоматическом варианте интеграции добавляется всего один запрос к БД на поиск товара по ID или символьному коду (если запрос есть в кэше, то он далее уже не выполняется, а данные берутся из кэша).
HTML селектор для вывода SKU - укажите класс элемента в карточке товара, внутри которого необходимо вывести SKU. Можно вывести блок в начале или в конце селектора. Если элементов с указанным селектором несколько на странице, будет найден первый.
Место для вывода SKU в селекторе - укажите где вывести SKU (в начале или в конце селектора).
Например, вы хотите разместить SKU в блоке с классом .product-item-detail-pay-block. Внутри этого блока уже есть 3 дочерних блока с классом .product-item-detail-info-container. Вы можете указать селектор .product-item-detail-pay-block и выбрать место размещения в начале - в этом случае SKU будет размещаться первым блоком. Если выбрать в конце - то SKU будет размещаться последним блоком после всех дочерних блоков с классом .product-item-detail-info-container.
Вы также можете указать селектор с указанием дочернего элемента .product-item-detail-pay-block .product-item-detail-info-container с типом размещения "в конце", тогда SKU будет размещаться после первого найденного блока с классом .product-item-detail-info-container внутри блока .product-item-detail-pay-block.
Название корневого раздела каталога - укажите в какой директории у вас работает каталог, например, catalog. Это нужно для того, чтобы событие не срабатывало в других директориях.
На каком уровне вложенности URL находится карточка товара - по умолчанию для стандартного построения ЧПУ вида /catalog/#SECTION_CODE#/#ELEMENT_CODE#/ карточка товара всегда находится на 3 уровне вложенности.
Рассмотрим такой пример - /shop/catalog/underwear/lingerie-intimate-evening/
В данном примере 4 уровня вложенности:
1. shop
2. catalog
3. underwear
4. lingerie-intimate-evening
где lingerie-intimate-evening - символьный код элемента каталога, значит нужно указать цифру 4. Если таких уровней вложенности меньше 4, значит работа скрипта будет прервана.
В данном разделе представлены все настройки модуля, даже если они уже рассмотрены в разделах выше. Также подробная информация о настройках размещена на странице самого модуля после установки на вашем сайте.
Модуль включен
Опция включает модуль для всех пользователей
Отладка включена
При включенной отладке компонент на сайте виден только администраторам при условии включении модуля
Сортировка значений SKU
Сортировка возможна по индексу значений свойств, а также по алфавиту.
Индекс сортировки может быть только в значениях свойств с типами "список" и "справочник". Задается в настройках свойств инфоблока.
Свойства с другими типами (строка, число) могут сортироваться только по алфавиту. По умолчанию значения сортируются от меньшего к большему.
Если в модуле включена сортировка по индексу, но у значений свойства нет индекса, тогда сортировка по этому свойству будет выполняться по алфавиту.
Включить проверку доступности товара по выбранной комбинации
Опция активирует жесткое ограничение доступных комбинаций параметрами текущего товара.
Доступность товара не связано с наличием товара на складе. Это наличие самой комбинации в каталоге.
Например, текущий товар - красная футболка размера M. Доступны параметры SKU - цвет и размер. Если пользователь выберет, допустим, размер L, это подразумевает красную футболку размера L. Если такого товара нет в каталоге, параметр со значением L будет недоступен для выбора в SKU. То есть опция позволяет искать комбинацию товаров по изменению одного параметра SKU.
При выключенной опции будут доступны для выбора все значения SKU. Но активные параметры текущего товара уже не учитываются. Если в каталоге нет искомой комбинации, будет предложена другая комбинация, которая идет первой по ID товара (текущие параметры будут сброшены).
Опция включена:
Опция выключена:
Показывать блок "Все варианты"
Все возможные товары с названиями и ценами в виде выпадающего списка
Показывать цены товаров в блоке "Все варианты"
При активации опции будут отображаться все типы цен, которые доступны текущему пользователю
Время кэширования торговых предложений
По умолчанию 36000000 секунд (1 год)
Время кэширования цен
По умолчанию 86400 секунд (1 сутки)
Для правильного и эффективного использования кэша модуля сопоставляйте время кэширования с периодичностью обновления информации на вашем сайте (изменение и заполнение характеристик товара, которые используются в группировке и выводе SKU, а также цены для блока "Все варианты").
По умолчанию при чистой установке ID неавторизованных пользователей - 2, это необходимо для правильного вывода цен в блоке "Все варианты".
Способ интеграции
Доступно 2 варианта - через компонент и с автоматическим внедрением без программной доработки
Подробнее об интеграции модуля
Сохранять положение на странице при переходе по SKU
Функция доступна только при интеграции через компонент. При активации опции пользователь останется в области блока SKU при переходе по карточкам товара.
Указывать свойства SKU в разделах
Вы можете для каждого раздела (или только в родительских) каталога указать символьные коды свойств, на основании которых необходимо формировать SKU в карточках товаров, которые находятся в этих разделах. Если не указывать, то модуль будет искать все свойства в инфоблоке, которые начинаются с префикса (по умолчанию, DUB_SKU_).
Выводить свойства справочника в виде картинки
Для такой реализации свойство SKU должно иметь тип "справочник" (привязка к highload блоку)
Свойство, по которому выполняется группировка товаров
Укажите код свойства, в котором будет храниться связь между товарами. Это может быть общее название, артикул или любой другой признак. Тип свойства - строка. Таким образом, модуль сможет сгруппировать товары в торговые предложения по этому общему признаку.
Параметр можно не использовать, если вы планируете использовать автоматическую группировку товаров по нескольким свойствам (поставьте галочку ниже у параметра - включить автоматическую группировку товаров по общим признакам).
Если у вас включена опция группировки товаров по нескольким свойствам, но при этом в разделе не указаны символьные коды свойств, то модуль будет искать свойства в самом инфоблоке по префиксу
Префикс свойств торговых предложений в инфоблоке
Укажите префикс свойств, по которому модуль будет искать свойства торговых предложений в инфоблоке. Модуль может работать с двумя типами свойств - список, справочник (привязка к highload инфоблоку). По умолчанию - DUB_SKU_
Например, в инфоблоке можно создать 2 свойства:
DUB_SKU_COLOR - тип справочник (для вывода картинок с цветами)
DUB_SKU_SIZE - тип список
Поскольку свойства имеют префикс DUB_SKU_ модуль сможет идентифицировать их в качестве свойств торговых предложений.
Параметр можно не использовать, если вы планируете задавать список свойств для формирования SKU в настройках самих разделов
Включить автоматическую группировку товаров по общим признакам
Можно указать свойства, которые являются общими для товаров в конкретном разделе.
Например, в разделе “Двигатели” нам нужно сгруппировать все товары, у которых совпадают значения двух свойств - серия двигателя (DUB_SERIA) и тип двигателя (DUB_TYPE). Модуль найдет все товары с одинаковыми значениями этих свойств и выведет SKU на основе различающихся свойств, которые мы также указали в разделах, например - количество скоростей и мощность. Тогда в карточке товара мы увидим возможность выбора этих параметров.
Для работы функционала задайте в каждом разделе, где нужно вывести SKU, список символьных кодов свойств, по которым будет выполняться группировка товаров в этом разделе. Если в подразделе каталога не задан список свойств, модуль будет искать свойства в родительском разделе
Включить строгую проверку наличия всех значений свойств для выборки товаров
Если для конкретного раздела каталога указано, к примеру, 2 свойства, по которым нужно группировать товары, то при включении строгой проверки в выборку попадут только те товары, у которых есть значения всех указанных свойств. При отключении опции допускается, что у товара не будет заполнено какое-либо значение свойства.
Например, для радела каталога мы указали свойства для выборки товара - серия и бренд. Если опция включена, в выборку попадут товары, у которых совпадают значения этих свойств. Если опция выключена, а у одного товара заполнен только бренд, но не заполнения серия, то в выборку попадут товары у которых совпадает только бренд. Деактивированная опция полезна в тех случаях, когда в одном и том же разделе нужно группировать товары по разным свойствам.
Ограничение выборки по разделам
Доступно 4 опции:
Искать товары без привязи к разделам во всем каталоге.
Модуль будет искать все товары без ограничений по разделам. При выборе этой опции не будет учитываться привязанный раздел этого товара, поиск будет выполняться по всем товарам каталога во всех разделах.
Ограничить выборку только одним разделом товара.
Выборка выполняется по основному разделу товара, даже если товар привязан к нескольким разделам каталога.
Искать товары для выборки во всех привязанных разделах товара.
Выборка ограничивается только привязанными разделами товара.
Искать товары для выборки во всех привязанных разделах товара рекурсивно.
Выборка идет по всем привязанным разделам товара на всех уровнях вложенности каталога. Поиск разделов выполняется рекурсивно - определяется родительский корневой раздел и все его вложенные разделы и подразделы.