Вернуться к списку Вернуться к статьям
Статьи

Как рассчитать скидку в роботе Битрикс24 по своим правилам

В «Конструкторе роботов S-WEBS» можно рассчитать скидку по входной сумме: выбрать ставку условием, выполнить арифметику и вернуть результат следующему шагу. Разберём учебное правило: при сумме от 10 000 рублей скидка 5%, ниже порога скидки нет.

Это пример расчётной схемы, которую нужно собрать и проверить. Он не относится к встроенному шаблону скидок и не записывает значение в CRM автоматически. Изменение полей карточки, цен и товарных строк требует отдельной настройки и проверки.

Опишите правило до настройки блоков

Для примера договоримся о четырёх условиях:

  • входная сумма указана до скидки;
  • сумма неотрицательная и передаётся числом с точностью не более двух знаков после запятой;
  • при сумме ровно 10 000 рублей уже применяется ставка 5%;
  • результат выражается в рублях с округлением до двух знаков.

Учебные 10 000 рублей и 5% не служат рекомендацией по ценовой политике. Замените их утверждёнными правилами компании. Если скидки зависят от категории клиента, товара или договора, сначала опишите эти зависимости. Входы с большей точностью отклоняйте или приводите к денежной точности по отдельному согласованному правилу до расчёта.

Отдельно решите, считается ли скидка от суммы всего заказа или от отдельных позиций. Эти подходы могут дать разный результат из-за правил применения и округления.

Объявите вход и результаты

В «Параметрах робота» создайте вход amount типа «Число» с понятной подписью «Сумма до скидки». Не передавайте в него строку «10 000 руб.»: числу не нужны обозначение валюты и пробелы форматирования.

Объявите выходы:

Код Смысл
rate Ставка скидки в процентах
discount Размер скидки в рублях
total Сумма после скидки

Если схема принимает недопустимые значения, дополнительно предусмотрите понятный отрицательный результат проверки входа. Не считайте отрицательную сумму обычным заказом со ставкой 0%. Выбранное поведение должно быть видно следующему шагу.

Единицы измерения сохраняйте в подписях. Значение 5 здесь означает 5 процентов, а не коэффициент 5 и не денежную сумму 5 рублей.

Входная сумма amount и выходная ставка rate с числовыми типами

Видимый верх параметров: обязательная сумма amount и ставка rate имеют числовой тип. Скидка и итог находятся ниже этого фрагмента.

Выберите ставку через условие

Добавьте условие, которое сравнивает amount с числом 10 000. Для включения самой границы нужен оператор «Больше или равно».

Ветка «Да» должна передать ставку 5, ветка «Нет» ставку 0. Через «Слияние ветвей» сведите их к одному общему выходу rate. Дальнейшая арифметика будет одинаковой для двух путей.

Для проверки входа до этого расчёта можно выделить отдельную ветвь по условию amount>=0. Недопустимый вход должен возвращать предусмотренный отрицательный результат или останавливать вычисление с понятной ошибкой. Не направляйте его незаметно в ветку обычного расчёта.

Логику развилки удобно проверить отдельно: как настроить условия робота. Если ставка теряется на общем пути, проверьте сопоставления слияния.

Сравнение суммы с 10000 через Больше или равно

Условие включает границу 10 000: используется «Больше или равно». Первое значение берётся из суммы до скидки, второе задано числом.

Соберите арифметику

После выбора ставки выполните три действия:

  1. Умножьте amount на rate.
  2. Разделите полученное число на 100.
  3. Округлите размер скидки до двух знаков, затем вычтите его из исходной суммы.

Формулы этого примера:

text
discount = округлить(amount × rate / 100, 2)
total = amount − discount

Для вычитания используйте именно тот округлённый размер скидки, который возвращается пользователю. Если показать одну сумму, а вычесть другую, при дробных значениях возможны расхождения.

В «Результате» укажите источники из вычисленных блоков. Ставка берётся после слияния, скидка после округления, итог после вычитания. Исходная сумма не должна случайно попасть в выход total.

Схема выбора ставки, слияния и расчёта скидки

Видны две ставки, слияние, умножение, деление на 100, округление и вычитание. Это расчётная схема без записи цен в CRM.

Проверьте порог и дробные суммы

В моделировании используйте синтетические значения и заранее посчитайте ожидаемый результат. Чистая арифметика не требует чтения CRM.

Входная сумма Ставка Скидка Итог
0 0% 0 0
9 999 0% 0 9 999
10 000 5% 500 9 500
12 000 5% 600 11 400
10 000,25 5% 500,01 9 500,24

Сумма ровно на границе обнаруживает ошибку «Больше» вместо «Больше или равно». Дробный пример помогает проверить выбранный порядок округления.

Дополнительно передайте отрицательное число, пустое значение и текст. Убедитесь, что недопустимый вход не воспринимается следующим шагом как корректный расчёт. После изменения формулы, порога или источников повторите проверку.

Порог скидки включён: 9 999 без скидки, 10 000 со скидкой 500 и итогом 9 500; дробный пример 10 000,25 даёт 500,01 и 9 500,24

Сначала округляется размер скидки, затем именно он вычитается из исходной суммы. Схема сама не изменяет CRM.

Моделирование вернуло ставку 5, скидку 600 и итог 11400

Успешное моделирование в тестовом приложении: ставка 5%, скидка 600,00 и итог 11 400,00. Изменение полей CRM не проверялось этим запуском.

Вход 10000.25 и результаты: скидка 500,01, итог 9500,24

Для входа 10 000,25 модель вернула скидку 500,01 и итог 9 500,24. Это проверка округления на синтетических данных.

Как передать результат в рабочую автоматизацию

Расчёт возвращает значения, но их дальнейшее применение нужно настроить отдельно. Если следующий робот должен записать итог в поле CRM, проверьте тип поля, валюту, права исполнителя и условие успешного завершения расчёта.

Запись в обычное поле суммы и изменение товарных строк решают разные задачи. Не ожидайте, что переданный итог сам пересчитает цены, налоги или скидки каждой позиции.

Для рабочего запуска создайте сохранённую версию, подключите её и проверьте результат на тестовых данных портала. Успешное моделирование формулы подтверждает вычисление на заданных входах; оно не подтверждает запись цены в карточку.

Частые вопросы

Почему скидка не изменилась в CRM?

Расчётная схема возвращает числа. Для записи нужен отдельный настроенный и проверенный шаг.

Можно сделать несколько порогов?

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

Этот пример меняет скидку в каждой товарной строке?

Нет. В нём рассчитывается скидка от одной переданной суммы. Работа с товарными строками требует отдельного сценария.

Общий расчёт можно использовать повторно через вызов сохранённой версии сценария. С возможностями приложения можно познакомиться на странице Конструктора роботов.

Приложение из статьи

  • Конструктор роботов

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