Бонусный сервер (БС) позволяет выполнять начисление и списание бонусов с ограниченным сроком действия (временем жизни) при возврате по чеку продажи.

Функционал реализован для системы лояльности Артикс Бонус.

Начисление бонусов при возврате товаров, оплаченных бонусами

Для начисления бонусов по причине возврата для товаров, оплаченных бонусами, на БС по умолчанию создается группа backedGroup, в которой хранятся данные об операциях при возврате бонусов со сроком действия 30 дней.

Группа, время жизни бонусов, а также вес операций из группы задаются в настройках БС в конфигурационном в файле /opt/artixcs-accounting-bonuses/application.properties:

НазваниеТип данныхОписание
accounting.logic.back.assetGroupIdстроковый

Идентификатор группы задается произвольной строкой.

По умолчанию backedGroup.
accounting.logic.back.assetLifeTimeчисловой

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

По умолчанию 30 дней.
accounting.logic.back.weightчисловойВес операций позволяет задать приоритет списания бонусов из группы: чем больше вес – тем выше приоритет. По умолчанию 100.
Пример настройки
# идентификатор группы; если не указан, операции будут помещаться в defaultAssetGroupId
accounting.logic.back.assetGroupId = backedGroup
# время жизни (в днях) бонусов в данной группе
accounting.logic.back.assetLifeTime = 30
# вес операций из данной группы 
accounting.logic.back.weight = 100
После изменения настроек будет автоматически создана новая группа, куда будут записываться данные о последующих операциях с бонусами.

Начиная с версии #43 начисление бонусов при полном и частичном возврате производится для каждой из групп индивидуально.

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

При частичном возврате по чеку продажи списанные бонусы будут начислены в группы в порядке приоритета – от максимального времени жизни к минимальному. Для групп с одинаковой датой окончания порядок начисления бонусов определяется по весу группы – от минимального к максимальному. В первую очередь бонусы будут начислены в группу defaultAssetGroup (с неограниченными сроком жизни и без веса).

Примеры списания бонусов при покупке и начисления бонусов при частичном возврате

Пусть есть группы:

ГруппаДата окончанияВесКоличество бонусов
group101.06.2310070
group201.06.23300100
group303.06.23200200
defaultAssetGroupсрок жизни не ограниченбез веса400

Пример списания бонусов при покупке

При покупке будет списано 770 бонусов в следующем порядке:

  1. 70 бонусов из group2.
  2. 100 бонусов из group1.
  3. 200 бонусов из group3.
  4. 400 бонусов из defaultAssetGroup.

Пример начисления бонусов при частичном возврате

При частичном возврате по чеку продажи будет начислено 720 бонусов в следующем порядке:

  1. 400 бонусов из defaultAssetGroup.
  2. 200 бонусов из group3.
  3. 100 бонусов из group1.
  4. 20 бонусов из group2.

Списание бонусов, начисленных за покупку товаров

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

  • No labels