Скидка на количество для Розницы 2.2

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

 

К счастью, есть возможность реализовать алгоритм в виде внешней обработки, не меняя конфигурации.

 

Эта обработка позволяет делать скидки на 1-ю, 2-ю, 3-ю и далее позиции в чеке из заданного сегмента.

 

 

Форма настройки внешней обработки выглядит так:

 

Сегмент номенклатуры – указывает, на какие позиции в чеке давать скидки. Например, на обувь можно давать скидку, а аксессуары (носки, шнурки) – не учитывать.

 

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

 

Скидка через внешнюю обработку прописывается таким образом (должно быть включено использование внешних обработок):

 

Для тестирования обработки нужно создать чек, подобрать товар и нажать Скидки – Рассчитать скидки:

 

При расчете скидок будет выводиться комментарий. На данной картинке показан результат округления до рублей и до 10 рублей при скидке 10% на самую дешевую позицию.

 

При пробитии чека через РМК скидка будет расчитываться автоматически.

 

Нельзя использовать динамические сегменты, т.к. алгоритм использует регистр состава сегмента. Нужно поддерживать сегменты в актуальном состоянии.

 

 

Доработки 15 декабря 2018 года

 

Внесены доработки.

 

Важно! Если в прошлой версии использовалось «Точное количество», нужно заново прописать настройки скидок, иначе не будет работать, т.к. изменен способ указания варианта скидок.

 

Добавлен третий порог скидки.

 

Пороги 1, 2, 3 должны быть введены последовательно, по возрастанию. При сохранении настроек это контролируется.

 

Скидка начисляется, если задан порог и размер скидки.

 

Добавлен вид количества, скидка может назначаться в трех случаях:

 

·         Обычный – если накопленное количество товара больше или равно порога.
Пример: продано 3 товара, обычный порог равен 2. Скидка будет на на 2й и 3й товар.

·         Точное количество – если накопленное количество товара равно порогу.
Пример: продано 3 товара, порог «точное количество» равен 2. Скидка будет на на 2й товар. На всё количество, большее порога, скидка предоставляться не будет.

·         Общее количество – если накопленное количество товара равно порогу и порог равен общему количеству товара выбранного сегмента в чеке.
Пример: продано 3 товара, порог «общее количество» равен 3. Скидка будет на на 3й товар. Если продано больше или меньше 3х товаров, скидки не будет.

Вид количества теперь задается по каждому порогу.

 

Добавлено округление скидки, если задать -1, то будет округляться до 10 рублей.

 

Добавлена галочка «Отладка» для вывода отладочных сообщений, чтобы более точно проверять логику работы расчета. Отладочные сообщения выводятся в окно сообщений.

Вид нового окна настроек:

 

 

Важно! Алгоритм расчета скидок усовершенствован. Теперь количество работает по одной единице товара. Поэтому даже такие случаи, когда в одной строке указано количество товаров больше одного, и оно должно быть отнесено к разным порогам, отрабатываются нормально.

 

Пример: продано пять одинаковых товаров. Задано два обычных порога – первый порог 2 штуки, второй 3 штуки. Программа корректно расчитает первую скидку на 1 штуку и вторую скидку на 3 штуки.

 

 

Протестировано на релизе 8.3.11.2867 в конфигурации Розница 2.2.5.23.

Доработки 17 мая декабря 2019 года

Добавлено поле Условие1-3. Если выполняется условие, тогда применяется скидка. При этом можно не заполнять поля количество и процент скидки.

 

Добавлено поле Цена по скидке. Если скидка применяется, то цена будет через скидку установлена равной заданной. Удобно для указания цены в 1 рубль.

 

Добавлен сброс накопителя количества после достижения заданного количества.

 

Изменен дизайн формы:

 

Пример условия:

Р = НакопительКоличества >  ОбщееКоличество - Цел(ОбщееКоличество/3)

Обозначает скидку на каждую третью позицию в чеке. Причем скидки будут раздаваться на самые дешевые товары в чеке.

НакопительКоличества – текущее накопленное количество товара из сегмента в чеке.

ОбщееКоличество – общее количество товара из сегмента в чеке.

 

Пример сброса количества:

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

 

Протестировано на релизе 8.3.11.2867 в конфигурации Розница 2.2.5.23.

 

Скачать