Это пример расчётной схемы, которую нужно собрать и проверить. Он не относится к встроенному шаблону скидок и не записывает значение в CRM автоматически. Изменение полей карточки, цен и товарных строк требует отдельной настройки и проверки.
Опишите правило до настройки блоков
Для примера договоримся о четырёх условиях:
- входная сумма указана до скидки;
- сумма неотрицательная и передаётся числом с точностью не более двух знаков после запятой;
- при сумме ровно 10 000 рублей уже применяется ставка 5%;
- результат выражается в рублях с округлением до двух знаков.
Учебные 10 000 рублей и 5% не служат рекомендацией по ценовой политике. Замените их утверждёнными правилами компании. Если скидки зависят от категории клиента, товара или договора, сначала опишите эти зависимости. Входы с большей точностью отклоняйте или приводите к денежной точности по отдельному согласованному правилу до расчёта.
Отдельно решите, считается ли скидка от суммы всего заказа или от отдельных позиций. Эти подходы могут дать разный результат из-за правил применения и округления.
Объявите вход и результаты
В «Параметрах робота» создайте вход amount типа «Число» с понятной подписью «Сумма до скидки». Не передавайте в него строку «10 000 руб.»: числу не нужны обозначение валюты и пробелы форматирования.
Объявите выходы:
| Код | Смысл |
|---|---|
rate |
Ставка скидки в процентах |
discount |
Размер скидки в рублях |
total |
Сумма после скидки |
Если схема принимает недопустимые значения, дополнительно предусмотрите понятный отрицательный результат проверки входа. Не считайте отрицательную сумму обычным заказом со ставкой 0%. Выбранное поведение должно быть видно следующему шагу.
Единицы измерения сохраняйте в подписях. Значение 5 здесь означает 5 процентов, а не коэффициент 5 и не денежную сумму 5 рублей.
Видимый верх параметров: обязательная сумма amount и ставка rate имеют числовой тип. Скидка и итог находятся ниже этого фрагмента.
Выберите ставку через условие
Добавьте условие, которое сравнивает amount с числом 10 000. Для включения самой границы нужен оператор «Больше или равно».
Ветка «Да» должна передать ставку 5, ветка «Нет» ставку 0. Через «Слияние ветвей» сведите их к одному общему выходу rate. Дальнейшая арифметика будет одинаковой для двух путей.
Для проверки входа до этого расчёта можно выделить отдельную ветвь по условию amount>=0. Недопустимый вход должен возвращать предусмотренный отрицательный результат или останавливать вычисление с понятной ошибкой. Не направляйте его незаметно в ветку обычного расчёта.
Логику развилки удобно проверить отдельно: как настроить условия робота. Если ставка теряется на общем пути, проверьте сопоставления слияния.
Условие включает границу 10 000: используется «Больше или равно». Первое значение берётся из суммы до скидки, второе задано числом.
Соберите арифметику
После выбора ставки выполните три действия:
- Умножьте
amountнаrate. - Разделите полученное число на 100.
- Округлите размер скидки до двух знаков, затем вычтите его из исходной суммы.
Формулы этого примера:
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 |
Сумма ровно на границе обнаруживает ошибку «Больше» вместо «Больше или равно». Дробный пример помогает проверить выбранный порядок округления.
Дополнительно передайте отрицательное число, пустое значение и текст. Убедитесь, что недопустимый вход не воспринимается следующим шагом как корректный расчёт. После изменения формулы, порога или источников повторите проверку.
Сначала округляется размер скидки, затем именно он вычитается из исходной суммы. Схема сама не изменяет CRM.
Успешное моделирование в тестовом приложении: ставка 5%, скидка 600,00 и итог 11 400,00. Изменение полей CRM не проверялось этим запуском.
Для входа 10 000,25 модель вернула скидку 500,01 и итог 9 500,24. Это проверка округления на синтетических данных.
Как передать результат в рабочую автоматизацию
Расчёт возвращает значения, но их дальнейшее применение нужно настроить отдельно. Если следующий робот должен записать итог в поле CRM, проверьте тип поля, валюту, права исполнителя и условие успешного завершения расчёта.
Запись в обычное поле суммы и изменение товарных строк решают разные задачи. Не ожидайте, что переданный итог сам пересчитает цены, налоги или скидки каждой позиции.
Для рабочего запуска создайте сохранённую версию, подключите её и проверьте результат на тестовых данных портала. Успешное моделирование формулы подтверждает вычисление на заданных входах; оно не подтверждает запись цены в карточку.
Частые вопросы
Почему скидка не изменилась в CRM?
Расчётная схема возвращает числа. Для записи нужен отдельный настроенный и проверенный шаг.
Можно сделать несколько порогов?
Да, правило можно разложить на дополнительные условия и выбор ставки. Для каждого порога нужны тесты ниже, ровно на границе и выше него.
Этот пример меняет скидку в каждой товарной строке?
Нет. В нём рассчитывается скидка от одной переданной суммы. Работа с товарными строками требует отдельного сценария.
Общий расчёт можно использовать повторно через вызов сохранённой версии сценария. С возможностями приложения можно познакомиться на странице Конструктора роботов.





