Публичное пространство
API Set10 ◾️ Настройка плагинов лояльности на кассе
Информация ниже приведена для касс версии по 10.2.51.х включительно. Начиная с версии 10.2.52.0 провайдер лояльности Set API включен по умолчанию.
Все плагины лояльности, использующие Set API, работают через один провайдер лояльности, который выполняет роль аггрегатора этих плагинов и позволяет кассе прозрачно работать с ними. Этот провайдер лояльности подключается так же, как и иные провайдеры лояльности - через crystal-cash/modules/loyalty/ext-loyalty-providers.xml. Сперва необходимо добавить в секцию beans новый провайдер лояльности:
<bean id="set-api-loy-provider" class="ru.crystals.pos.loyal.SetApiPluginLoyProvider">
<property name="actionsProvider" ref="loy-actions-provider"/>
</bean>Затем включить его в цепь провайдеров расчета скидок. Это делается в бине с идентификатором loy-providers-registry, свойства providers, секции list. Так этот бин выглядит обычно:
<bean id="loy-providers-registry" class="ru.crystals.loyal.providers.LoyProvidersRegistryImpl" init-method="init">
<property name="providers">
<list>
<!-- классический SET10 калькулятор скидок -->
<ref bean="classic-set10-loy-provider" />
</list>
</property>
<!-- Интервал отправки отложенных фидбеков по скидкам -->
<property name="staleFeedbackSendIntervalSeconds" value="120"/>
<!--Максимальное отложенных фидбеков для отправки за одну итерацию для каждого провайдера -->
<property name="maxStaleFeedbackToSend" value="5"/>
</bean>Чтобы включить провайдер плагинов лояльности в цепочку расчета скидок, необходимо в секцию list добавить новый элемент ref. Имейте в виду, что от порядка, в котором следуют элементы ref, зависит порядок расчета скидок. Так будет выглядеть бин с уже добавленным провайдером расчета скидок плагинами, использующими Set API, который будет передавать чек на расчет скидок плагинам сразу же после расчета скидок системой лояльности Set10:
<bean id="loy-providers-registry" class="ru.crystals.loyal.providers.LoyProvidersRegistryImpl" init-method="init">
<property name="providers">
<list>
<!-- классический SET10 калькулятор скидок -->
<ref bean="classic-set10-loy-provider" />
<ref bean="set-api-loy-provider"/>
</list>
</property>
<!-- Интервал отправки отложенных фидбеков по скидкам -->
<property name="staleFeedbackSendIntervalSeconds" value="120"/>
<!--Максимальное отложенных фидбеков для отправки за одну итерацию для каждого провайдера -->
<property name="maxStaleFeedbackToSend" value="5"/>
</bean>Для того, чтобы плагину действительно было позволено считать скидки, необходимо завести РА с результатом "Внешняя система лояльности", где в списке плагинов лояльности указать нужный.