Нода «Формула»
Нода «Формула» считает выражение над переменными и записывает результат в новую переменную. Она нужна везде, где боту требуется что-то посчитать — сумму заказа, скидку, итог с доставкой, дату через неделю.
Как писать выражение
Переменные пишутся по имени, без фигурных скобок: price * qty, а не {{price}} × {{qty}}.
| Что | Как писать |
|---|---|
| Арифметика | +, -, * (умножение), /, % (остаток), ^ (степень), скобки |
| Функции | round, floor, ceil, abs, min, max, sqrt, random, randint(1, 10) |
| Строки | len(name), lower(city), upper(code), concat(first, " ", last) |
| Даты | today(), addDays(date, 7), addMonths(date, 1), diffDays(a, b) — даты в формате ГГГГ-ММ-ДД |
В формуле доступны только переменные сценария — ответы на вопросы, поля форм, результаты действий и данные клиента, которые бот кладёт при старте (name, phone). Системные {{system.*}} и глобальные {{global.*}} поля в формуле не работают: сначала скопируйте нужное значение в переменную действием «Установить пользовательское поле».
Если в формуле есть незаполненная переменная или выражение с ошибкой, результат не сохранится, а сценарий пойдёт дальше. Проверяйте ввод заранее — например, собирайте числа с типом ответа «Число».
Когда применять
- Сумма заказа —
price * qty. - Скидка и итог —
total * (1 - discount / 100)илиtotal - promo_discount. - Итог с доставкой —
total + 300. - Дата через неделю —
addDays(today(), 7).
Как настроить
Соберите исходные данные
Нодами «Вопрос» или «Форма» получите нужные значения — например, количество в
qty.Добавьте ноду «Формула»
Нажмите «Добавить шаг» и выберите «Формула».Задайте выражение
Впишите формулу, напримерqty * 500.Укажите переменную результата
Например,
total. Дальше результат доступен как{{total}}.Используйте результат
Подставьте
{{total}}в сообщение или в сумму ноды «Оплата».
С чем сочетать
- Нода «Вопрос» и «Форма» — поставляют исходные числа.
- Нода «Условие» — ветвит сценарий по результату: например, при сумме от 5000 ₽ — бесплатная доставка.
- Нода «Оплата» — берёт
{{total}}как сумму счёта: в самой ноде считать нельзя. - Нода «Сообщение» — показывает итог: «К оплате:
{{total}}₽».
Пример
Соберите количество
Нода «Вопрос» с типом «Число»: «Сколько штук?» → переменная
qty.Посчитайте сумму
Нода «Формула»:qty * 500→ переменнаяtotal.Покажите итог
Нода «Сообщение»: «Итого к оплате:
{{total}}₽».Выставьте счёт
Нода «Оплата» с суммой
{{total}}.