JBRelated Items (auto) — автоматический поиск похожих товаров в каталоге

9.8/10 оценка (6 голосов)

Пример элемента JBRelated Items (auto)JBRelated Items (auto) — это элемент, который отображает похожие товары на сайте. Посетители смогут увидеть не только основной товар, которым они заинтересовались, но и похожие по каким-либо параметрам. Элемент выбирает их автоматически, а администратору не приходится это делать вручную.

Наглядный пример вы можете увидеть на демо-сайте. Для этого зайдите в один из товаров в продуктовом каталоге.

Как добавить JBRelatedItems (auto) в тип материала?

Настройки приложенияПриложение JBZoo AppЧтобы настроить элемент, перейдите во вкладку Шестеренка, нажмите на приложение JBZoo App

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

На следующей странице вы увидите Библиотеку. Выберите JBZoo Related items (auto).

Слева у вас появится новый элемент со следующими настройками:

Настройки элемента в типе материала

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

Как добавить элемент в шаблон материала?

Шаблоны вывода материаловНайдите на странице ваш тип материала. Напротив него, в колонке Вывода шаблона, зайдите в тот, в котором хотите настроить JBZoo Related Items (auto), к примеру Full.

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

Описание настроек элемента

Нажмите на иконку карандаша и вы увидите следующие настройки:

Настройки элемента в шаблоне материала

  1. Показать ярлык — параметр, позволяющий включить имя элемента, которое будет показано на сайте.
  2. Альтернативная метка — другой вариант заголовка, отображающийся вместо основного. Это будет происходить только в случае, если в опции Показать ярлык вы выберите Да.
  3. Лимит — максимальное количество похожих материалов, выводимых на странице (до 100).
  4. Лимит релевантности — минимальное количество совпавших полей. Например, если поставить число 7, то будут подбираться только те товары, в которых совпало минимум 7 полей. Максимально можно поставить до 30 полей. Что такое релевантность и как она считается, смотрите ниже.
  5. Метод поиска — способ, по которому будет производиться отбор похожих материалов:
    1. точное совпадение одинаковых полей — поиск, с абсолютно одинаково заполненными полями.
    2. полнотекстовый поиск по одинаковым полям — материалы, в которых может совпасть только часть слова или словосочетание из предложения. При этом сравниваются одинаковые поля между собой, например, значение страны.
  6. Учитывать каталог — похожие продукты будут выбираться только из того каталога, в котором находится материал. Если выбрать Нет, то из всех каталогов.
  7. Учитывать типы материалов — при включении данной опции поиск будет учитывать тип. Т.е., если выбрать Да, то похожие продукты будут выбраны по одинаковым типам, а если Нет товары будут выбираться вне зависимости от них. Но опция будет работать только в том случае, если совпадут поля ядра. Это происходит из-за того, что системные идентификаторы пользовательских элементов (Element ID) уникальны и никогда не совпадают, даже если их назвать одинаково и выбрать один и тот же тип, а Element ID ядра могут.
  8. Учитывать категории — параметр, показывающий, из каких категорий будут браться похожие материалы. Примечание: Настройка работает только в случае, если в опции Выберите поля указать Категории:
    1. только основную категорию — учитывается только одна основная категория у всех продуктов.
    2. все связанные категории — учитывается не только основная категория, но и дополнительные подкатегории.
  9. Выберите поля — поля элементов, по которым JBRelatedItems будет искать и сравнивать похожие товары. В данной опции вы можете выбрать от одного и более поля как пользовательских, так и элементов ядра.
  10. Доп. условия — устанавливается равенство между Element ID и каким-либо значением. Подробнее о дополнительных условиях вы можете прочитать ниже.
  11. Шаблон вывода материала — шаблон, с помощью которого будет показываться найденный материал. Если выбрать Имя элемента, то на сайте будут отображаться только названия товаров. Все остальные параметры в выпадающем списке являются шаблонами. Ранее было описано, где находятся шаблоны вывода.
  12. Ссылка имени элемента — параметр, позволяющий отображать продукты в виде ссылок (только если выбран шаблон Имя элемента).
  13. Количество колонок — настройка, показывающая, сколько колонок со связанными товарами будет выводиться на странице продукта. При выборе параметра Не использовать выводимые на странице товары никакими тегами обрамляться не будут. Это особенно удобно когда нужно вывести список в виде таблицы.
  14. Разделитель — символ, которым будут разделяться похожие продукты между собой. Разделитель активен только в случае, если в опции Шаблон вывода материала вы выбрали Имя элемента. Так будут выглядеть продукты с разделителем Канал.

Пример отображения разделителя

Принцип работы дополнительных условий

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

Например, у нас есть магазин одежды. Под каждым из товаров мы хотим отображать спец. предложения магазина. В дополнительных условиях указываем

_itemtag = Распродажа

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

Таким образом, можно дополнительно корректировать результат поиска элемента.

Как узнать Element ID?

Где находится Element ID?

Зайдите в редактирование типа материала и нажмите на иконку карандаша. У пользовательских полей он уникальный, поэтому вы не сможете задать для него дополнительные условия. Но элементы ядра (Edit Core Elements), могут совпадать.

Так, например, вы можете поставить условие _itemcategory = имя категории, где «_itemcategory» — ключ, а «имя категории» — значение. Или Element ID=синий. Тогда похожие материалы будут выбираться не по ID, а по значению «синий».

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

Поиск будет работать далеко не по всем полям. Их список указан в опции Выберите поля. Например, набор полей ядра сильно ограничен, потому что нет большого смысла искать по дате создания. Будут отличаться как минимум секунды.

Какие значения можно указывать в условиях?

Помимо простых значений, вроде числа или слова, можно указывать множественные, в виде массива в формате JSON. Например, чтобы сразу указать несколько тегов, напишите следующее:

_itemtag = ["Новость", "Обновление", "Скачать"]

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

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

Что такое релевантность и как она рассчитывается?

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

Пример расчета релевантности похожих товаровКак же она рассчитывается? Допустим, в опции Выберите поля, для продуктов одного типа, установим следующие: Теги (элемент ядра), Текст и Дата (множественные поля). В настройках укажем, что искать нужно с учетом типа, лимит количества равен 2, а лимит релевантности — 6.

На картинке сравниваются похожие товары таким образом, что поиск проходит по отдельности для каждого поля. Рядом с ними, для наглядности, мы подписали каждое совпадение — это одно «очко» релевантности. Суммируя эти «очки», мы получаем релевантность по каждому товару в отдельности.

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

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

Важные замечания о производительности элемента

JBRelatedItems (auto) спроектирован таким образом, чтобы все выборки из базы данных были выполнены в рамках одного SQL-запроса. Практически вся математика и логика вычисления релевантности ложиться на плечи базы данных MySQL.

Таким образом, достигается оптимизация работы всего элемента в целом.

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

Критерии, влияющие на скорость работы элемента

  • Количество полей, по которым будет происходить поиск. Например, выборка по одному полю в 30 раз быстрее чем выборка по 30 полям (при прочих равных условиях).
  • Ограничение по типу, каталогу и категориям. Так, при ограничении материала по какому-либо из этих параметров, количество похожих товаров для поиска будет меньше, а значит и скорость работы увеличится.
  • Количество материалов на сайте и общий объем информации. Если ваш каталог имеет большое количество товаров с множественными полями, то скорость поиска будет значительно меньше, чем в маленьком каталоге с обычными полями.
  • Метод поиска. Точный зачастую работает в разы быстрее, чем полнотекстовый, т.к. будут использоваться встроенные индексы в базе данных MySQL.
  • Производительность всего хостинга в целом и скорость работы базы данных. Т.к. основная часть тяжелых вычислений происходит на уровне SQL-запроса, то скорость элемента (как в прочем и любого web-сайта) напрямую зависит от работы базы данных. Обычно с этим нет никаких проблем даже на дешевых тарифных планах.

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

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

 

Категория, Материал, Связанные материалы, Теги, Шаблон, Элементы

У меня остались вопросы, где я могу их задать?

Вы можете обратиться на наш специальный форум техподдержки JBZoo. Если у вас нет активного аккаунта со знаком «плюс» в тарифном плане, то вы можете задать свой вопрос в одном из этих разделов или на любой из наших контактов. Форум специально предназначен для JBZoo, приоритет и скорость ответа там выше.