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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Показать ярлык — параметр, позволяющий включить имя элемента, которое будет показано на сайте.
  2. Альтернативная метка — другой вариант заголовка, отображающийся вместо основного. Это будет происходить только в случае, если в опции Показать ярлык вы выберите Да.
  3. Лимит — максимальное количество похожих материалов, выводимых на странице (до 100).
  4. Лимит релевантности — минимальное количество совпавших полей. Например, если поставить число 7, то будут подбираться только те товары, в которых совпало минимум 7 полей. Максимально можно поставить до 30 полей. Что такое релевантность и как она считается, смотрите ниже.
  5. Метод поиска — способ, по которому будет производиться отбор похожих материалов:
    1. точное совпадение одинаковых полей — поиск, с абсолютно одинаково заполненными полями.
    2. полнотекстовый поиск по одинаковым полям — материалы, в которых может совпасть только часть слова или словосочетание из предложения. При этом сравниваются одинаковые поля между собой, например, значение страны.
    1. только основную категорию — учитывается только одна основная категория у всех продуктов.
    2. все связанные категории — учитывается не только основная категория, но и дополнительные подкатегории.
    Принцип работы дополнительных условий

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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