Использование переменных

Материал из SaleBot Help
Перейти к навигации Перейти к поиску
ПОСЛЕДНЯЯ ЗНАЧИМАЯ ПРАВКА
Участник: BotDev.One
Пример использования переменной

Переменная — некая ячейка в памяти, содержащая определенное пользователем или программой значение.

Значение переменной можно использовать и изменять в ходе выполнения программы.


На картинке справа, приведён простой пример, помогающий понять, что такое переменные:

  • В верхнем блоке мы запрашиваем у пользователя его имя
  • В стрелке – сохраняем введенное значение в переменную user_name
  • В нижнем блоке – выводим значение переменной

Классы переменных

Классы переменных в Salebot
Классы переменных Salebot

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

В Salebot есть шесть основных классов переменных[1]:

  1. Константы — неизменяемые глобальные переменные проекта (без префикса)
  2. Проекта — глобальные переменные проекта (два префикса: project. или проект.)
  3. Клиента — локальные переменные клиента (два префикса: client. или клиент.)
  4. Сделки — локальные переменные сделки клиента (без префикса)
  5. Встроенные — динамические переменные конструктора Salebot (без префикса)
  6. Встроенные — неизменяемые переменные конструктора Salebot (без префикса)

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


Поле использования переменной Полное имя переменной (пример) Формат использования Указание префикса, при наличии
Поле "Текст сообщения" client.stage #{client.stage} Рекомендуется
Поле "Калькулятор" project.count count, project.count, #{count}, #{project.count} Рекомендуется

В блоках условий if - не рекомендуется

Поле "Задержка перед ответом" project.delay delay Нет
Поле "Время отправки с учетом задержки" project.webtime webtime Нет
Поле "Дата отправки с учетом задержки" project.webdate webdate Нет
Поле "Условие" client.birthday #{birthday}, #{client.birthday} Не требуется
Поле "Переменная для сравнения" client.status status Нет
Поле "Расширенные настройки кнопок" project.active_menu #{project.active_menu} Да
Поле "Подсказка в мессенджерах без кнопок" client.helpermenu #{client.helpermenu} Да
Поле "URL вложения" project.weblink #{project.weblink} Рекомендуется
Поле "Вводимые данные" client.name client.name Да


Константы

Настройка переменных проекта на вкладке Настройки проекта

Константы – это такие же глобальные переменные проекта, но с единственным отличием - значение константы не может быть изменено в процессе выполнения бота. Они создаются только на стадии разработки.

Задать константы, как и их значения, можно в Настройках проекта.


Проекта (общие переменные)

Глобальные переменные проекта и будут доступны для любого пользователя бота, в отличие от переменных Сделки и переменных Клиента.

Разумно использовать такие переменные для статистики бота, подсчета баллов и голосов, хранения общих ссылок на вебинары, дат, времени и т.д. То есть, те переменные, значения которых, как мы предполагаем, будет меняться в процессе выполнения бота.


Глобальные переменные в Конструкторе воронок используют профикс:

Есть два способа создания переменных:

  1. Переменные и их первоначальные значения задаются в настройках проекта.
  2. Переменные и их значения задаются в поле Калькулятор через оператор присвоения =.


Пример создания новой общей переменной count в Калькуляторе:

project.count = 1


Клиента (переменные клиента)

Переменные клиента и сделки во вкладке Клиенты

Переменные клиента имеют отношение только к конкретному пользователю бота. У каждого пользователя – свои переменные клиента.

Рекомендуется использовать для хранения баллов пользователя, постоянных персональных данных (имя, № телефона, e-mail, адрес).

Пример создания новой переменной Клиента ид в Калькуляторе:

клиент.ид = 333777


Сделки (переменные сделки)

Переменные сделки имеют отношение только к конкретному пользователю бота. У каждого пользователя – свои переменные сделки.

Переменные этого типа также доступны во вкладке Клиенты.


Пример создания новой переменной Клиента ответ в Калькуляторе:

ответ = 'Да'


Использование переменных

Поле Калькулятор

Пример подсчета значения переменной в поле Калькулятор

Основное поле для работы с переменными – поле Калькулятор. Калькулятор поддерживает логические и арифметические операции.

Поддерживаемые операторы

+ сложение
- вычитание
* умножение
/ деление
% остаток от деления
^ ** возведение в степень
==

!=

равно

не равно

>

<

больше

меньше

>=

<=

больше, либо равно

меньше, либо равно

and AND && логическое И
or OR || логическое ИЛИ
= присвоение


Смотри также


Оператор сравнения "IF" (условие "если")

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



Типичная запись:

var_2 = if(var_1 == 1, 3, 7) /* если var_1 равна единице, тогда var_2 будет равна 3, иначе 7 */
statusA = if(client_phone != '', "зарегистрирован", "не зарегистрирован") /*если в переменной client_phone ничего нет, тогда statusA будет "не зарегистрирован" */
newbie = if(user_name == "#{none}", True, False) /* если имя пользователя "пустое", тогда newbie = True, иначе newbie = False */
exist = if(len(variable) == 0, True, False) /* если в переменной variable что-то содержится, тогда exist = True, иначе exist = False */


Также, можно использовать вложенные конструкции "если". Это пригодится, если хотите научить бота подсчитывать сумму заказа, когда стоимость единицы товара зависит от его количества.

Сумма_Заказа = round(if(Количество >=100, if(Количество >=200, if(Количество >=300, if(Количество >=400, if(Количество >=500, if(Количество >=1000, if(Количество >=2000, if(Количество >=3000, if(Количество >=5000, 25*Количество, 30*Количество), 35*Количество), 40*Количество), 45*Количество), 50*Количество), 55*Количество), 60*Количество), 65*Количество), "Не могу посчитать... Вы ошиблись где-то при оформлении заказа. Попробуйте еще раз с самого начала.")  * 100) / 100


Заполнение полей проверки условия оператора IF

Результат работы данного выражения:

Результат проверки условия оператора IF



Другие поля редактора

Помимо поля Калькулятор, сравнивать переменные можно в поле Переменная для сравнения.

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

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

Проверим с какого мессенджера пришел клиент (для этого, воспользуемся встроенной динамической переменной client_type).

Проверить соответствие мессенджера можно так:

Пример. Задействовано поле Переменная для сравнения

Или так:

Пример. Задействованы поля Условие и Переменная для сравнения


Примеры сравнения в поле Переменная для сравнения:

возраст >= 18					#--> " Возраст больше 18 или равен 18 "
возраст > 18 or возраст == 18			#--> " Возраст больше 18 или равен 18 "
client_phone != ''				#--> " Номер телефона клиента не задан "
client_type != 6 || client_type != 2		#--> " Любой мессенджер, кроме WhatsApp и Viber "
client_type < 7					#--> " Мессенджеры с client_type меньше 7 (не включая 7) "

Полезные ссылки

Сноски

  1. Первые 4 класса переменных – это пользовательские переменные.