Вывод рандомных товаров через формулы

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

Для работы вам понадобится:

  • Редактор 4.2 и выше
  • Секция Глобальные переменные
  • Подключенная таблица

Инструкция

  1. В редакторе добавляем секцию Глобальные переменные. В данной секции возможно подключать несколько разных таблиц и задавать формулы для работы с данными. На опубликованной странице секции видно не будет.
  1. При добавлении страницы у вас появляются переменные, нажмем у одной из переменных на гаечный ключ и разберем какие поля есть для работы:
    • Название переменной - в поле необходимо вписать любое название на английском, это поле необходимо нам для взаимодействия с переменными и формулами ниже.
    • Описание переменной - в этом поле можно написать что делает данная переменная, например “Вывод данных из бд”. Данное поле можно оставить пустым, его заполняете для удобства, чтобы было легче ориентироваться в множестве переменных.
    • Тип переменной - в выпадающем списке нужно выбрать один из вариантов Формула или Запрос к базе данных. При выборе первого варианта появится поле в котором вводите формулу, о том какие формулы доступны можно ознакомится в инструкции Формулы, при выборе второго варианта появится возможность подключить нужную таблицу.
  1. В первой переменной нужно подключить таблицу, поэтому в поле Тип переменной выбираем Запрос к базе данных. Рассмотрим какие поля нам доступны после выбора Запрос к базе данных:
    • В выпадающем списке Подключение к таблице выбираем таблицу с которой будем работать.
    • В Фильтрах можно ограничить список выводимых значений по определенному значению.
    • Так же можно задать Сортировку, например по возрастанию.
    • В поле Количество записей можно задать сколько записей выводить в поле.

    Обязательно нажимаем применить чтобы таблица подключилась.

  1. Теперь откроем вторую переменную, зададим ей название ids и выберем тип переменной Формула. В данной переменной мы получим все id товаров которые были найдены в первой переменной. Для этого нам понадобится функция map которая выполняет преобразование каждого элемента массива. В данную функцию передается два параметра массив, формула (array, expression). Нам нужно получить id всех значений из таблицы, поэтому формула будет иметь вид
map(my_table.rows, item.title) == ["16","23","22","17"....]

Разберем несколько новых значений

  • rows - в этом объекте хранятся все значения из таблицы
  • item - содержит один элемент массива
  • title - название поля

Чтобы увидеть все доступные названия полей необходимо вернуться в настройки первой переменной и нажать на вкладку Переменная: Название переменной

  1. Добавим еще одну переменную с именем shuffled с типом переменной Формула. В которую запишем формулу Перемешивание списка в случайном порядке.
let({
  array: [1, 2, 3, 4, 5]
}, map(
  sort(map(array, [item, random()]), item[1]),
  item[0]
))

Вместо [1, 2, 3, 4, 5] подставляем имя переменной созданной в шаге 4.

Больше доступных форм для работы вы найдете в инструкции Готовые формулы

  1. Создадим еще одну переменную чтобы обрезать количество выводимых значений до 5 и преобразовать массив в строку. Имя переменной будет FinalList с типом переменной Формула. Добавляем следующую формулу:
  2. join(slice(shuffled, 0, 5 ), ", ")

    Теперь разберем что же делает эта формула

    • join - функция переводит массив в строку, в нее передается два параметра первый обязательный это массив(strings) и второй не обязательный разделитель (separator). Если разделитель опустить все значения массива объединятся в одну строку. Нам же нужно чтобы функция разделила все значения через запятую, поэтому передаем запятую после массива внутри кавычек (", ")
    • slice - функция обрезает массив, возвращая заданный промежуток. В данную функцию передается три параметра массив (array), start индекс по которому начинается отсчет (счёт начинается с нуля) и count по которому заканчивается извлечение. Важно! Метод slice() извлекает элементы с индексом меньше count.
  1. И последний шаг. Добавляем виджет или секцию Набор блоков задаем фильтр по нашей переменной FinalList, в условии фильтра обязательно выбираем Один из вариантов.

Готово, теперь каждый раз при открытии страницы у вас будут подтягиваться разные товары.

ТЕХНИЧЕСКАЯ ПОДДЕРЖКА

Не можете найти то, что ищите?

Напишите нам. на связи 24/7. Среднее время ожидания ответа: 10-15 минут. Также вы можете вступить в наш Телеграм-чат, где собралось много специалистов и пользователей.

Поддержка Creatium

Агенты ответят через 10 минут

Агенты ответят

Блог, курсы и полезные материалы 

Платформа сайтов любой сложности