Бонусный сервер (БС) позволяет выполнять начисление и списание бонусов с ограниченным сроком действия (временем жизни) при возврате по чеку продажи.
Функционал реализован для системы лояльности Артикс Бонус.
Начисление бонусов при возврате товаров, оплаченных бонусами
Для начисления бонусов по причине возврата для товаров, оплаченных бонусами, на БС по умолчанию создается группа 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
(с неограниченными сроком жизни и без веса).
Пусть есть группы:
Группа | Дата окончания | Вес | Количество бонусов |
---|---|---|---|
group1 | 01.06.23 | 100 | 70 |
group2 | 01.06.23 | 300 | 100 |
group3 | 03.06.23 | 200 | 200 |
defaultAssetGroup | срок жизни не ограничен | без веса | 400 |
Пример списания бонусов при покупке
При покупке будет списано 770 бонусов в следующем порядке:
- 70 бонусов из group2.
- 100 бонусов из group1.
- 200 бонусов из group3.
- 400 бонусов из defaultAssetGroup.
Пример начисления бонусов при частичном возврате
При частичном возврате по чеку продажи будет начислено 720 бонусов в следующем порядке:
- 400 бонусов из defaultAssetGroup.
- 200 бонусов из group3.
- 100 бонусов из group1.
- 20 бонусов из group2.
Списание бонусов, начисленных за покупку товаров
При возврате по чеку продажи бонусы, начисленные за покупку товаров, будут списаны из группы, в которую были помещены при покупке. Если начисленные бонусы уже были потрачены или сгорели, то они будут списаны в порядке приоритета списания (в зависимости от веса операций и времени жизни бонусов). В последнюю очередь бонусы будут списаны из группы defaultAssetGroup
.