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

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

 

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

 

  • Редактор 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 минут

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