Функции работают только с сервисом счетчиков!

countersQuantByBcode – Значение счетчика количества товаров со штрих-кодом

countersQuantByBcode(idCounter, bcode, percent, limit, calcWhenLessLimit, alwaysCalcDiscount) – функция проверяет значения счетчика и возвращает процент скидки в соответствии с количеством товара по штрих-коду.

Параметры функции:

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

Для того чтобы ограничить применение скидки по карте некоторым количеством товаров, необходимо:
сделать условие cf.countersQuantByBcode('111', 456789123852, 10, 5, True, False)
сделать процентную расчетную ставку rf.countersQuantByBcode('111', 456789123852, 10, 5, True, False)
При добавлении карты в чек на товар со штрих-кодом 456789123852 будет предоставлена скидка 10% до достижения количества товара равного 5. При закрытии чека значение счетчика изменяется на количество товара со штрих-кодом 456789123852 и будет учтено при следующей покупке. Если в момент покупки сервис счетчиков не доступен, то скидка предоставлена не будет.

countersQuantByCode – Значение счетчика количества товаров с кодом

countersQuantByCode(idCounter, code, percent, limit, calcWhenLessLimit, alwaysCalcDiscount) – функция проверяет значения счетчика и возвращает процент скидки в соответствии с количеством товара по коду.

Параметры функции:

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

Для того чтобы ограничить применение скидки по карте некоторым количеством товаров, необходимо:
сделать условие cf.countersQuantByCode('111', 444, 10, 4, False, True)
сделать процентную расчетную ставку rf.countersQuantByBcode('111', 444, 10, 4, False, True)
При добавлении карты в чек на товар с кодом 444 будет предоставлена скидка 10% в случае превышения количества товара равного 4. При закрытии чека значение счетчика изменяется на количество товара с кодом 444 и будет учтено при следующей покупке. Если в момент покупки сервис счетчиков не доступен, то скидка предоставлена будет.

countersQuantByCatalog – Значение счетчика количества товаров из каталога

countersQuantByCatalog(idCounter, catalog, percent, limit, calcWhenLessLimit, alwaysCalcDiscount) – функция проверяет значения счетчика и возвращает процент скидки в соответствии с количеством товара из определенного каталога.

Параметры функции:

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

Для того чтобы ограничить применение скидки по карте некоторым количеством товаров, необходимо:
сделать условие cf.countersQuantByCatalog('111', ['14'], 10, 5, True, False)
сделать процентную расчетную ставку rf.countersQuantByCatalog('111', ['14'], 10, 5, True, False)[object['posnum']]
При добавлении карты в чек на товар из каталога 14 будет предоставлена скидка 10% до достижения количества товара равного 5. При закрытии чека значение счетчика изменяется на количество товара из каталога 14 и будет учтено при следующей покупке. Если в момент покупки сервис счетчиков не доступен, то скидка предоставлена не будет.

countersQuantByGroup – Значение счетчика количества товаров из группы

countersQuantByGroup( idCounter, group, percent, limit, calcWhenLessLimit, alwaysCalcDiscount) – функция проверяет значения счетчика и возвращает процент скидки в соответствии с количеством товара из определенной группы.

Параметры функции:

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

Для того чтобы ограничить применение скидки по карте некоторым количеством товаров, необходимо:
сделать условие cf.countersQuantByGroup('111', 26, 10, 5, True, False)
сделать процентную расчетную ставку rf.countersQuantByBcode('111', 26, 10, 5, True, False)
При добавлении карты в чек на товар из группы 26 будет предоставлена скидка 10% до достижения количества товара равного 5. При закрытии чека значение счетчика изменяется на количество товара из группы 26 и будет учтено при следующей покупке. Если в момент покупки сервис счетчиков не доступен, то скидка предоставлена не будет.

countersQuantByAccumulation – Расчет индекса скидки по счетчику

countersQuantByAccumulation(idCounter, ranges, defaultIndex) – функция проверяет значения счетчика и возвращает процент скидки в соответствии с вхождением счетчика в определенный диапазон значений.

Параметры функции:

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

Для того чтобы разграничить процент скидки, предоставляемой по дисконтной карте необходимо:
сделать условие cf.countersQuantByAccumulation('111',[(0,4),(5,None)],0) >= 0
сделать процентную расчетную ставку [1,10,50][rf.countersQuantByAccumulation('111', [(0,4),(5,None)],0)],
где [1,10,50] – список % скидок.
При отсутствии связи с сервисом счетчиков:
Если индекс скидки указан 0, то будет использована скидка 1%.
Если индекс скидки указан 1, то будет использована скидка 10% и т.д.

При наличии связи с сервером процент скидки определяется по значению счетчика.
Если счетчик попадает в диапазон (0,4), то по карте будет предоставлена скидка 10%.
Если счетчик попадает в диапазон (5,None), то по карте будет предоставлена скидка 50%.
Если счетчик не обнаружен, то его значение устанавливается в 0 и применяется соответствующий диапазон.

countersQuantIndexPrice – Расчет скидки по индексу 

countersQuantIndexPrice(idCounter, limit, indexPrice, conditionProperties, calcWhenLessLimit, alwaysCalcDiscount) – функция проверяет значения счетчика и возвращает индекс цены в соответствии с вхождением счетчика в определенный диапазон значений. 

Параметры функции:

Если хоть одно из свойств conditionProperties не выполняется – скидка не применяется.

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

Для того чтобы ограничить применение скидки по карте некоторым количеством товаров, необходимо:
сделать условие cf.countersQuantIndexPrice("123_" + object["code"], 20, 1, {"code": ["1070", "1072"], "catalogs": "333"}, True, False)
сделать процентную расчетную ставку rf.countersQuantIndexPrice("123_" + object[''code''], 20, 1, {"code": ["1070", "1072"], "catalogs": "333"}, True, False) object[''posnum'']]
При добавлении карты в чек на товары с кодом 1070 и 1072 из каталога 333 будет применена цена с индексом 1 до достижения количества товара равного 20. Если в момент покупки сервис счетчиков не доступен, то скидка предоставлена не будет.


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