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

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

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

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

  • idCounter – идентификатор счетчика, указывается в одинарных кавычках, например '111'. Ведение счетчиков выполняется сервисом счетчиков, правила применения счетчика задаются в системе лояльности Artix Loyalty Management;
  • bcode – штрих-код (массив штрих-кодов) товара;
  • percent – размер скидки в процентах;
  • limit – количество товара, которым ограничивается применение скидки;
  • calcWhenLessLimit – параметр, определяющий необходимость предоставления скидки до достижения лимита или после его превышения (строго больше или меньше, при значении =limit условие не сработает):
    • true – лимит ограничен верхним уровнем (для акций вида – скидка при покупке до 5 единиц товара);
    • false – лимит ограничен нижним уровнем (для акций вида – скидка при покупке более 5 единиц товара);
  • alwaysCalcDiscount – поведение при отсутствии связи с сервисом счетчиков (определяется в системе лояльности и подставляется в функцию):
    • true – при отсутствии связи с сервисом счетчиков скидка предоставляется, считается, что условие выполнено;
    • false – при отсутствии связи с сервисом счетчиков скидка не предоставляется, считается, что условие не выполнено.

В том случае, если счетчик акции в чеке не найден, то значение счетчика принимается равным 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) – функция проверяет значения счетчика и возвращает процент скидки в соответствии с количеством товара по коду.

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

  • idCounter – идентификатор счетчика, указывается в одинарных кавычках, например '111'. Ведение счетчиков выполняется сервисом счетчиков, правила применения счетчика задаются в системе лояльности Artix Loyalty Management;
  • code – код (массив кодов) товара;
  • percent – размер скидки в процентах;
  • limit – количество товара, которым ограничивается применение скидки;
  • calcWhenLessLimit – параметр, определяющий необходимость предоставления скидки до достижения лимита или после его превышения (строго больше или меньше, при значении =limit условие не сработает):
    • true – лимит ограничен верхним уровнем (для акций вида – скидка при покупке до 5 единиц товара);
    • false – лимит ограничен нижним уровнем (для акций вида – скидка при покупке более 5 единиц товара);
  • alwaysCalcDiscount – поведение при отсутствии связи с сервисом счетчиков (определяется в системе лояльности и подставляется в функцию):
    • true – при отсутствии связи с сервисом счетчиков скидка предоставляется, считается, что условие выполнено;
    • false – при отсутствии связи с сервисом счетчиков скидка не предоставляется, считается, что условие не выполнено.

В том случае, если счетчик акции в чеке не найден, то значение счетчика принимается равным 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) – функция проверяет значения счетчика и возвращает процент скидки в соответствии с количеством товара из определенного каталога.

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

  • idCounter – идентификатор счетчика, указывается в одинарных кавычках, например '111'. Ведение счетчиков выполняется сервисом счетчиков, правила применения счетчика задаются в системе лояльности Artix Loyalty Management;
  • catalog – каталог (массив каталогов) с товарами;
  • percent – размер скидки в процентах;
  • limit – количество товара, которым ограничивается применение скидки;
  • calcWhenLessLimit – параметр, определяющий необходимость предоставления скидки до достижения лимита или после его превышения (строго больше или меньше, при значении =limit условие не сработает):
    • true – лимит ограничен верхним уровнем (для акций вида – скидка при покупке до 5 единиц товара);
    • false – лимит ограничен нижним уровнем (для акций вида – скидка при покупке более 5 единиц товара);
  • alwaysCalcDiscount – поведение при отсутствии связи с сервисом счетчиков (определяется в системе лояльности и подставляется в функцию):
    • true – при отсутствии связи с сервисом счетчиков скидка предоставляется, считается, что условие выполнено;
    • false – при отсутствии связи с сервисом счетчиков скидка не предоставляется, считается, что условие не выполнено.

В том случае, если счетчик акции в чеке не найден, то значение счетчика принимается равным 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) – функция проверяет значения счетчика и возвращает процент скидки в соответствии с количеством товара из определенной группы.

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

  • idCounter – идентификатор счетчика, указывается в одинарных кавычках, например '111'. Ведение счетчиков выполняется сервисом счетчиков, правила применения счетчика задаются в системе лояльности Artix Loyalty Management;
  • group – группа (массив групп) товаров;
  • percent – размер скидки в процентах;
  • limit – количество товара, которым ограничивается применение скидки;
  • calcWhenLessLimit – параметр, определяющий необходимость предоставления скидки до достижения лимита или после его превышения (строго больше или меньше, при значении =limit условие не сработает):
    • true – лимит ограничен верхним уровнем (для акций вида – скидка при покупке до 5 единиц товара);
    • false – лимит ограничен нижним уровнем (для акций вида – скидка при покупке более 5 единиц товара);
  • alwaysCalcDiscount – поведение при отсутствии связи с сервисом счетчиков (определяется в системе лояльности и подставляется в функцию):
    • true – при отсутствии связи с сервисом счетчиков скидка предоставляется, считается, что условие выполнено;
    • false – при отсутствии связи с сервисом счетчиков скидка не предоставляется, считается, что условие не выполнено.

В том случае, если счетчик акции в чеке не найден, то значение счетчика принимается равным 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) – функция проверяет значения счетчика и возвращает процент скидки в соответствии с вхождением счетчика в определенный диапазон значений.

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

  • idCounter – идентификатор счетчика, указывается в одинарных кавычках, например '111'. Ведение счетчиков выполняется сервисом счетчиков, правила применения счетчика задаются в системе лояльности Artix Loyalty Management;
  • ranges – список диапазонов значений счетчика. Для карты может быть указано несколько диапазонов значения счетчика, каждому из которых будет присвоен определенный процент скидки. Например, [(0,4),(5,None)], где None – неограниченный верхний интервал;
  • defaultIndex – индекс скидки по умолчанию. Скидка с указанным индексом будет использована в том случае, когда отсутствует связь с сервером счетчиков:
    • 0 – будет использована скидка, указанная первой в расчетной ставке;
    • -1 – скидка не предоставляется при отсутствии связи;
    • номер индекса – соответствующий индекс в списке % скидок.

В том случае, если счетчик акции в чеке не найден, то значение счетчика принимается равным 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) – функция проверяет значения счетчика и возвращает индекс цены в соответствии с вхождением счетчика в определенный диапазон значений. 

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

  • idCounter – идентификатор счетчика, указывается в одинарных кавычках, например '111'. Ведение счетчиков выполняется сервисом счетчиков, правила применения счетчика задаются в системе лояльности Artix Loyalty Management;
  • limit – количество товара, которым ограничивается применение скидки;
  • indexPrice – индексная цена товара;

  • conditionProperties – условия предоставления скидки. Например: {"code": ["1070", "1072"], "catalogs": "333"};

  • calcWhenLessLimit – параметр, определяющий необходимость предоставления скидки до достижения лимита или после его превышения (строго больше или меньше, при значении =limit условие не сработает):
    • true – лимит ограничен верхним уровнем (для акций вида – скидка при покупке до 5 единиц товара);
    • false – лимит ограничен нижним уровнем (для акций вида – скидка при покупке более 5 единиц товара);
  • alwaysCalcDiscount – поведение при отсутствии связи с сервисом счетчиков (определяется в системе лояльности и подставляется в функцию):
    • true – при отсутствии связи с сервисом счетчиков скидка предоставляется, считается, что условие выполнено;
    • false – при отсутствии связи с сервисом счетчиков скидка не предоставляется, считается, что условие не выполнено.

Если хоть одно из свойств 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. Если в момент покупки сервис счетчиков не доступен, то скидка предоставлена не будет.

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

  • No labels