arrow_back_iosВопросы
help

Как писать формулы для цены?

check_circle
При создании скидок и надбавок вы указываете формулу расчета цены. Система вычисляет ее в момент совершения заказа. Для скидок значение должно быть отрицательным. Формула может считаться в процентах от стоимости или в валюте. Она может содержать параметры и функции.

Параметры

В формуле вы можете использовать параметры бронирования. Параметры нужно облачать в квадратные скобки. Например: 100 * [PARAMETER].
Названия параметров задаются в настройках компонента цены, под формулой.
Параметры формулы - это число штук, а не цена. Например, число забронированных билетов по детскому тарифу.
Для эксклюзивных тарифов параметр будет равен 1, если тариф забронирован в заказе. Иначе параметр будет равен 0.
Числовые поля формы так и передаются в формулу - в виде числа. Параметр флага примет значение 1, если он выбран на форме. Иначе - 0.
Также вы можете использовать параметр [INTERVALS]. Он равен числу забронированных интервалов. Например, часов для почасовой аренды. Этот параметр доступен, если тип ресурса - аренда.

Функции

Помимо обычных арифметических операций вы можете использовать функции:
  • Abs([X]) убирает минус у отрицательного числа.
    Пример: Abs(-2) = 2.
  • Ceiling([X]) округляет до целого числа в большую сторону.
    Пример: Ceiling(7.23) = 8.
  • Floor([X]) округляет до целого числа в меньшую сторону.
    Пример: Floor(4.75) = 4.
  • Max([X],[Y]) выбирает большее из двух чисел.
    Пример: Max(7,8) = 8.
  • Min([X],[Y]) выбирает меньшее из двух чисел.
    Пример: Min(7,8) = 7.
  • Pow([X],2) вычисляет первое число в степени второго.
    Пример: Pow(3,2) = 9.
  • Round([X]) округляет число до ближайшего целого.
    Пример: Round(3.45) = 3.
  • Round([X],2) округляет число с указанием точности.
    Пример: Round(3.4576,2) = 3.46.
  • Sign([X]) для отрицательных чисел возвращает -1. Для положительных единицу.
    Пример: Sign(-99) = -1.
  • Sqrt([X],2) вычисляет квадратный корень.
    Пример: Sqrt(4) = 2.
  • Truncate([X]) обрезает дробную часть числа.
    Пример: Truncate(15.7) = 15.
  • if([CONDITION], [X], [Y]) вычисляет условие и возвращает [X], если оно верно. Иначе возвращает [Y]. В условии можно использовать операции: >,>=,=,<,<=,<>, or, and.
    Пример: if([INTERVALS] > 5, 100, 200) = 100 для шести интервалов.
  • in([X], 1, 2, 3..) определяет входит ли число в последовательность. Результат можно использовать в условии функции if.
    Пример: in(7,1,7,8) = true.
Также система поддерживает тригонометрические и прочие функции: Sin([X]), Cos([X]), Tan([X]), Log([X],[Y]), Log10([X]), Exp([X]), Asin([X]), Acos([X]), Atan, IEEERemainder(x,y).
Не нашли ответа на ваш вопрос?
Задайте его нам на
mail_outlinesupport@bukza.com