📋

Как реализовать функционал лайков

Для работы потребуется: Таблица с товарами и пользователями.

  1. В таблицах вам необходимо добавить следующие колонки
    • В таблице с товарами добавьте колонку в Избранном
    • В таблице пользователей добавьте колонку Избранные товары
    • После добавления колонки обновите таблицу на стороне Креатиум через повторный импорт.
  2. Добавьте форму в секцию или в блок где у вас подключена таблица с товарами.
  3. В форме должно присутствовать два поля
    1. Скрытое поле в котором должно передаваться id товара
    2. image

      b. Поле импортированное по номеру 238, в данном поле включаете предзаполнение по колонке В избранном

  4. У формы выбираете действие Выполнение JavaScript кода и даете уникальное название форме, чтобы мы могли ее в дальнейшем найти в интегромате.
image

В редакторе все необходимые настройки завершены, переходим в интегромат.

  1. Включаем вебхук через Run once и ставим лайк.
  2. Теперь в интегромате мы получили заявку для дальнейшей работы. Добавляем ветку в роутере и задаем фильтр (нажав на ключ) по названию формы.
image
  1. Теперь найдем товар который пришел в заявке. Добавляем модуль Google Sheets - Search Rows, в данном модуле добавляем фильтр по id товара.
image

Так же ищем пользователя, добавляем еще один модуль Search Rows и ищем пользователя который нажал на поле

image
  1. Для работы с лайками нам нужно создать массив, для этого добавляем модуль Tools - Set miltiple variables
image

Теперь нам нужно будет создать два массива, в первом массиве будут собраны id пользователей для таблицы с товарами, а во втором массиве будут указаны id товаров.

Порядок действий следующий:

  1. Нажимаем на модуль и выбираем Add item
  2. В поле variable name указываем название переменной, в нашем примере это “Выбравшие пользователи”
  3. Во втором поле нужно будет создать массив из строки в которой указаны id клиентов. Сначала нажимаем на шестеренку и добавляем функцию ifempty
  4. Далее внутри функции добавляем функцию split которая находится во вкладке A,
  5. Внутри split сначала добавляем колонку из таблицы с товарами, которая называется “В избранном”, после точки с запятой ставим запятую.
  6. После второй точки с запятой добавляем emptyarray
image

По такому же принципу создаем массив для таблицы Пользователей, для этого еще раз нужно нажать на Add item и повторить шаги из прошлой инструкции. Готовый результат на скриншоте.

image
  1. Добавляем еще один роутер с двумя ветками, в первой ветке добавляем условие если лайк поставлен и его надо добавить.
    • В первом поле добавляем значение из поля Лайк которое должно равняться (equal to) единице (1)
    • Нажимаем на кнопку Add a rule и добавляем условие Выбравшие пользователи из модуля Set miltiple variables не должны содержать (does not contain) id пользователя
    • Так же добавляем еще одно условие в Избранных товарах не должно быть (does not contain) id товара.
    • По такой же аналогии настраиваем фильтр Удалить лайк.

    • В первом поле добавляем значение из поля Лайк которое должно равняться (equal to) единице (0)
    • В условии Выбравшие пользователи проверяем что поле содержит (contains) id пользователя
    • В условии Избранных товарах проверяем что поле содержит (contains) id товара.
    • image
  2. В ветке Добавить в избранное добавляете модуль Google Sheets - Update Row, выбираем таблицу Товары и в поле Row Number добавляется Row number модуля с товаром. В строке В избранном добавляете следующую конструкцию
    • Нажимаем на иконку таблицы и выбираем join
    • Внутри join добавляем add, после этого в add добавляем значение из модуля в котором мы создавали массив в шаге 8.
    • После точки запятой добавляем id пользователя.
    • После следующей точки с запятой ставим запятую пробел и слово space которое находится во вкладке A
image
image

После модуля с товарами добавляем еще один модуль Update a Row и подключаем к ней таблицу пользователи.

В поле Избранные товары добавляем такую же формулу, только заменяете Выбравшие пользователи на Избранные товары, и вместо id пользователя добавляете id товара

image

После этого дублируем два модуля. Для этого зажмите правую клавишу мыши и нажмите на модуль. Появится всплывающее меню, в данном меню выбираете clone.

image

Скопированные модули переносим в ветку Удаления лайка. Откройте каждый модуль и замените в поле слово add на remove. Не забудьте сохранить изменения.

image
image

После каждого модуля добавляете модуль http для обновления таблицы.