Перейти к основному содержимому

Скидки: логика применения

В системе скидка — это отдельный объект «Скидка», который может применяться к строкам документов продаж (в первую очередь — к строкам заказа покупателя).

Скидка может задаваться:

  • как процент скидки;
  • как цена из типа цен (то есть «фиксировать цену по другому типу цен»).

Где настраиваются скидки

Обычно список скидок находится в разделе «Продажи» → «Операции» → «Скидки».

В карточке скидки задаются:

  • период действия;
  • условия применимости;
  • к каким товарам/категориям относится;
  • какие типы цен разрешены;
  • при необходимости — к каким местам хранения относится;
  • размер скидки (процент) или тип цен (если скидка задаётся ценой).

Как система понимает, подходит ли скидка строке

Для строки заказа покупателя система проверяет скидку по набору условий.

1) По товарам и категориям

Скидка может быть привязана:

  • к конкретным товарам;
  • к категориям товаров (иерархия категорий).

Если в скидке не выбраны ни категории, ни товары, скидка считается настроенной неверно и система не даст её сохранить.

2) По периоду действия

Скидка применяется только если дата строки попадает в интервал:

  • дата строки не раньше даты начала;
  • дата строки не позже даты окончания.

3) По типу цен

Скидка может быть ограничена типами цен:

  • если у скидки указаны типы цен, она применяется только к строкам с одним из этих типов;
  • если типы цен не указаны, ограничение не действует.

4) По месту хранения

Скидка может быть ограничена местами хранения:

  • если у скидки указаны места хранения, она применяется только к строкам с подходящим местом хранения;
  • если места хранения не указаны, ограничение не действует.

5) По минимальному количеству и сумме строки

Скидка может требовать, чтобы в строке было не меньше:

  • минимального количества;
  • минимальной суммы.

Если строка не дотягивает до порога, скидка не применяется.

Важно: сумма для проверки берётся как «полная сумма» (рассчитанная от количества и цены; при необходимости учитывается налог).

6) По накопительным условиям по покупателю

Скидка может быть накопительной и включаться только если у покупателя:

  • общий объём предыдущих покупок больше порога;
  • или объём покупок за прошлый месяц больше порога.

Эти значения берутся из истории продаж покупателя.

Как считается цена по скидке

Для каждой подходящей скидки система вычисляет «цену по скидке».

Вариант 1: скидка в процентах

Если в скидке задан процент, цена по скидке считается так:

цена по скидке = исходная цена × (100 − процент скидки) / 100

Вариант 2: скидка через тип цен

Если в скидке задан тип цен, цена по скидке берётся из этого типа цен на дату строки.

Практический смысл:

  • можно задать скидку как «продавать по оптовой цене» или «по цене из специального прайс‑листа».

Как выбирается скидка автоматически

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

Правило выбора:

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

Это соответствует логике выбора в коде: выбирается скидка с минимальной рассчитанной ценой.

Важно:

  • скидки не суммируются;
  • выбирается одна скидка, дающая минимальную цену (то есть «самую большую выгоду» в рамках заданных скидок).

Ручной выбор скидки в строке

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

Как это работает:

  1. Пользователь открывает выбор скидки.
  2. Система показывает только те скидки, которые подходят к строке по условиям.
  3. Пользователь выбирает скидку.

Если выбранная скидка процентная, система подставляет процент в строку (если пользователь не вводил процент вручную).

Если выбранная скидка задаётся типом цен, система подставляет цену по этому типу цен и пересчитывает скидку/сумму строки.

Автоматический пересчёт скидок

Если включён автоматический пересчёт скидок, система пересчитывает скидку по строке при изменениях:

  • дата документа/строки;
  • контрагент;
  • номенклатура;
  • количество;
  • цена;
  • тип документа;
  • место хранения;
  • общая сумма документа.

Автоматический пересчёт выполняется только для скидок, которые не помечены как «вручную».

Также в заказе есть действие «Рассчитать скидки», которое принудительно пересчитывает скидки по всем строкам (кроме ручных).

Как отключить автопересчёт

В настройках есть параметр «Не рассчитывать скидки автоматически в заказе».

Если он включён:

  • автоматический пересчёт по изменениям не выполняется;
  • пользователь применяет скидки вручную и/или через кнопку «Рассчитать скидки».

Где отражаются скидки

Скидки обычно видны:

  • в строках заказа (выбранная скидка, процент/цена);
  • в итогах заказа (сумма скидки по документу);
  • в документах реализации (если скидки переносятся в реализацию);
  • в отчётах по продажам.

Типовые проблемы

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

Примеры

Ниже — несколько упрощённых примеров, чтобы было понятно, как работают правила.

Пример 1. Процентная скидка с порогом по количеству

Условия скидки:

  • товары: «Кабель» (или категория «Кабели»);
  • период действия: текущий месяц;
  • минимальное количество в строке: 10;
  • скидка: 5%.

Ситуация в заказе:

  • строка: «Кабель», количество 8, цена 100.

Результат:

  • скидка не применяется, потому что количество меньше 10.

Если изменить количество на 10:

  • цена по скидке = 100 × (100 − 5) / 100 = 95;
  • в строке будет применена цена 95 (или процент 5%, в зависимости от того, как настроено отображение в вашей форме).

Пример 2. Скидка через тип цен

Условия скидки:

  • товары: категория «Бытовая техника»;
  • скидка задаётся через тип цен: «Оптовая»;
  • период действия: без ограничения.

Ситуация в заказе:

  • строка: «Чайник», количество 1;
  • текущая цена в заказе (например, по базовому типу цен) — 3 000;
  • цена по типу цен «Оптовая» на дату заказа — 2 700.

Результат:

  • при применении этой скидки система подставит цену 2 700.

Практический смысл: вместо расчёта «процента» вы фиксируете, что для этой группы товаров должны использоваться цены из другого типа цен.

Пример 3. Подходит две скидки — выбирается «наименее выгодная покупателю»

Пусть для строки подходят две автоматические скидки:

  1. Скидка А: 10%
  2. Скидка Б: 5%

Исходная цена в строке: 100.

Цена по скидке:

  • по скидке А: 100 × (100 − 10) / 100 = 90;
  • по скидке Б: 100 × (100 − 5) / 100 = 95.

Автовыбор:

  • система выберет скидку А, потому что цена по скидке 90 ниже, чем 95.

Если по бизнес‑правилам нужно применить другую скидку (не самую выгодную), используйте ручной выбор скидки в строке.