Расчет индивидуальных скидок для ваших клиентов

Вы рассчитываете индивидуальные скидки для своих клиентов. Когда клиентов немного и возможно держать в голове каждого из них — процесс идет налажено. Но, когда клиентов становится больше, становится невозможно запомнить размер скидки каждого из них. Функция Бипиума исключает влияние человеческого фактора и автоматизирует процесс расчета и начисления индивидуальных скидок.

Принцип работы

Принцип работы основан на каталоге с правилами скидок для каждого клиента. При сохранении записи в каталоге «Покупки» («Заказы») сценарий рассчитывает итоговую сумму заказа с учетом и без учета персональной скидки. Если в каталоге с правилами скидок есть персональная скидка для выбранного клиента, то итоговая сумма снижается на величину скидки.

Реализация

Создание каталогов

Дальнейшее описание подразумевает то, что у вас уже есть каталог с вашими клиентами. Если его еще нет – создайте каталог «Клиенты» и заполните его произвольным образом.

Каталог с правилами скидок

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

Структуры каталога «Правила скидок»:

  • Клиент (связанный каталог)

Описание: Клиент, для которого будет указана скидка.

Настройки: связанный каталог «Клиенты», обязательное поле.

  • Скидка (число)

Описание: Величина скидки в процентах.

Настройки: Обязательное поле.

Каталог с товарами

Создайте каталог «Товары». В этом каталоге фиксируются наименование товара и его стоимость. При необходимости можете добавить в него другие произвольные поля.

  • Наименование (текст)

Описание: Наименование товара.

Настройки: текст, обязательное поле.

  • Стоимость (число)

Описание: Стоимость за 1 единицу товара.

Настройки: обязательное поле.

Каталог с количеством товаров

Создайте каталог «Товары и количество». В этом каталоге указывается товар и его количество. Каталог является связующим между каталогами «Товары» и «Заказы» (описан ниже). Заполните каталог следующими полями:

  • Товар (связанный каталог)

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

Настройки: Связь с каталогом «Товары», обязательное поле.

  • Количество (число)

Описание: Количество заказываемого товара.

Настройки: Обязательное поле.

Каталог с заказами

Создайте каталог «Заказы». В этом каталоге будет собрана информация о всех заказах клиентов. Заполните каталог следующими полями:

  • Клиент (связанный каталог)

Описание: Клиент, оформляющий заказ.

Настройки: Связанный каталог «Клиенты», обязательное поле.

  • Товары (связанный каталог)

Описание: Приобретаемый товар.

Настройки:

  • Связанный каталог «Товары и количество».
  • Можно связывать несколько записей.
  • Снимите «галочку» с «Можно выбирать из существующих».
  • Поставьте «галочку» на «Создание без всплывающего окна».
  • В «Поля» выберите «Товар» и «Количество»,  доступ – «изменять».
  • Обязательное поле.
  • Количество (число)

Описание: Количество приобретаемого товара.

Настройки: Обязательное поле

  • Сумма (число)

Описание: Сумма без учета скидки.

Настройки: Редактируемое только через API

  • Сумма (со скидкой) (число)

Описание: сумма с учетом скидки.

Настройки: Редактируемое только через API

Событие для запуска расчета

Для запуска сценария расчета суммы заказа используются событие с типами «Запрос на создание записи» и «Запрос на изменение записи». Это событие отслеживает сохранение записи при изменении значений полей, которые участвуют в расчете. 

Пример события:

При изменении полей «Клиент» или «Товары» в записи «Заказа» событие запускает сценарий расчета сумм для клиента. Прикрепите файл сценария в поле «Выполнить» созданного события.

Сценарий расчета сумм для клиента

Сценарий расчета сумм для клиента выглядит следующим образом:

Сценарий выполняет:

  • Проверку на заполненность полей «Клиент» и «Товар».
  • Поиск индивидуальной скидки для клиента в каталоге «Правила скидок».
  • Подсчет полной суммы заказа в цикле.
  • Подсчет суммы заказа с учетом скидки.
  • Запись в карточку заказа полной суммы и суммы с учетом скидки.

В сценарии необходимо изменить выделенные компоненты:

  • params. Замените id полей в объекте «fields» согласно описанию компонента.

Тестирование

Создайте новые записи в каталогах «Клиенты», «Правила скидок», «Товары».

В каталоге «Заказы» выберите клиента (с правилом скидки), добавьте товары и укажите их количество. Если все сделано верно, то при сохранении записи поля «Сумма» и «Сумма (со скидкой)» автоматически заполнятся.

September 27, 2022
Эльза Шакирова