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

 

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

 

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

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

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

 

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

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

 

 

  1. Теперь найдем товар который пришел в заявке. Добавляем модуль Google Sheets - Search Rows, в данном модуле добавляем фильтр по id товара.

 

 

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

 

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

 

 

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

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

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

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

 

  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 товара.

     

 

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

     

 

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

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

 

 

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

 

 

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

 

 

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

Работает на Creatium