...
Информация | ||||||||
---|---|---|---|---|---|---|---|---|
Блок кода | ||||||||
| ||||||||
|
Описание
Расчет скидок на кассе производится в модуле "провайдер лояльности".
На кассе может присутствовать более одного провайдера:
- SetRetail0
- Manzana
- Set API
- и.т.п.
При расчете скидок чек последовательно проходит через цепочку подключенных к кассе провайдеров лояльности, обрастая скидками. Порядок, в котором применяются провайдеры, может быть важен при расчете скидок.
Одно из частых требований - производить фильтрацию рекламных акций (РА) и применять скидку на округление только после окончания расчета скидок в цепочке. Для настройки порядка, в котором провайдеры лояльности будут применяться к чеку, а также выбора порядка применения скидок различного типа (округление, суммирующиеся всегда, и.т.д.), используется конфигурацонный файл /home/tc/storage/crystal-cash/modules/loyalty/ext-loyalty-providers.xml.
Этот файл требуется настраивать вручную для каждой кассы.
При установке кассы из дистрибутива, файл (для версий 10.2.59.0 и выше) ext-loyalty-providers.xml будет выглядеть следующим образом:
| |
Начиная с версии (при обновлении на версию) 10.2.99.0 содержимое конфигурацонного файла ext-loyalty-providers.xml перенесено в БД и вносить изменения надо будет в БД, подробнее ниже по тексту. |
Устаревшая версия Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
Устаревшая версия Jira | ||||||||
---|---|---|---|---|---|---|---|---|
|
Оглавление |
---|
Описание
Расчет скидок на кассе производится в модуле "провайдер лояльности".
На кассе может присутствовать более одного провайдера:
- SetRetail0
- Manzana
- Set API
- и.т.п.
При расчете скидок чек последовательно проходит через цепочку подключенных к кассе провайдеров лояльности, обрастая скидками. Порядок, в котором применяются провайдеры, может быть важен при расчете скидок.
Одно из частых требований - производить фильтрацию рекламных акций (РА) и применять скидку на округление только после окончания расчета скидок в цепочке. Для настройки порядка, в котором провайдеры лояльности будут применяться к чеку, а также выбора порядка применения скидок различного типа (округление, суммирующиеся всегда, и.т.д.), используется конфигурацонный файл /home/tc/storage/crystal-cash/modules/loyalty/ext-loyalty-providers.xml.
Блок кода | ||
---|---|---|
| ||
/home/tc/storage/crystal-cash/modules/loyalty/ext-loyalty-providers.xml |
Этот файл требуется настраивать вручную для каждой кассы.
При установке кассы из дистрибутива, файл (для версий 10.2.59.0 и выше) ext-loyalty-providers.xml будет выглядеть следующим образом:
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?xml version="1.0" encoding="UTF-8"?> <beans xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- Расширенный (EXTended) список поставщиков "услуг лояльности". ОнИли же - главный "калькулятор" "преференций"внешние (EXTernal) поставщики лояльности --> <!-- Средство для получения списка РА, что могут действовать на чек прямо сейчас --> <bean id="loy-providersactions-registryprovider" class="ru.crystals.loyal.providersactions.provider.LoyProvidersRegistryImplInMemoryLoyActionsProvider" init-method="initstart"> <property name="providers"cache" ref="actions-cache"/> <list> <bean </bean> <!-- Реестр всех "поставщиков" "услуг лояльности". Он же - главный "калькулятор" "преференций" --> <bean id="loy-providers-registry" class="ru.crystals.loyal.providers.CustomSetLoyProviderLoyProvidersRegistryImpl" init-method="init"> <property name="providers"> <list> <bean class="ru.crystals.loyal.providers.CustomSetLoyProvider"> <property name="actionsProvider" ref="loy-actions-provider"/> <property name="filter"> <bean class="ru.crystals.loyal.providers.set.filters.SetActionsAndFilter"> <property name="filters"> <list> <bean class="ru.crystals.loyal.providers.set.filters.NonWorksAnyTimeSetActionsFilter" /> <bean class="ru.crystals.loyal.providers.set.filters.NonRoundingSetActionsFilter" /> </list> </property> </bean> </property> </bean> <!-- сторонние поставщики лольяности пошли --> <ref bean="set-api-loy-provider"/> <bean class="ru.crystals.pos.loyal.ml.ManzanaLoyProvider" /> <bean class="ru.crystals.pos.loyal.sc.SCLoyProvider" /> <ref bean="loymax-loy-provider" /> <ref bean="kopilka-loy-provider" /> <ref bean="set-machine-loy-provider" /> <bean class="ru.crystals.loyal.providers.CustomSetLoyProvider"> <property name="actionsProvider" ref="loy-actions-provider"/> <property name="filter"> <bean class="ru.crystals.loyal.providers.set.filters.SetActionsAndFilter"> <property name="filters"> <list> <bean class="ru.crystals.loyal.providers.set.filters.WorksAnyTimeSetActionsFilter" /> <bean class="ru.crystals.loyal.providers.set.filters.NonRoundingSetActionsFilter" /> </list> </property> </bean> </property> </bean> <bean class="ru.crystals.loyal.providers.CustomSetLoyProvider"> <property name="actionsProvider" ref="loy-actions-provider"/> <property name="filter"> <bean class="ru.crystals.loyal.providers.set.filters.RoundingSetActionsFilter" /> </property> </bean> </list> </property> <property name="staleFeedbackSendIntervalSeconds" value="120"/> <property name="maxStaleFeedbackToSend" value="5"/> </bean> <!-- Наш (SET10) классический поставщик услуг лояльности --> <bean id="classic-set10-loy-provider" class="ru.crystals.loyal.providers.ClassicSetLoyProvider"> <property name="actionsProvider" ref="loy-actions-provider"/> </bean> <!-- Поставщик лояльности SetMachine --> <bean id="set-machine-loy-provider" class="ru.crystals.pos.loyal.sm.SetMachineLoyProvider"> <property name="actionsProvider" ref="loy-actions-provider"/> </bean> <!-- Поставщик лояльности Loymax --> <bean id="loymax-loy-provider" class="ru.crystals.pos.loyal.loymax.LoymaxLoyProvider"> <property name="actionsProvider" ref="loy-actions-provider"/> </bean> <!-- Поставщик лояльности Kopilka --> <bean id="kopilka-loy-provider" class="ru.crystals.pos.loyal.kopilka.KopilkaLoyProvider"> <property name="actionsProvider" ref="loy-actions-provider"/> </bean> <bean id="set-api-loy-provider" class="ru.crystals.pos.loyal.SetApiPluginLoyProvider" init-method="init"> <property name="actionsProvider" ref="loy-actions-provider" ref="loy-actions-provider"/> </bean> </beans>/> </bean> </beans> |
С версии 10.2.99.0+ содержимое конфигурацонного файла ext-loyalty-providers.xml переносится в кассовую БД и находится в таблице catalog.sales_management_properties:
module_name | plugin_name | property_key | property_value | description |
---|---|---|---|---|
SET_DISCOUNTS | ext.loyalty.providers | (конфигурация провайдеров лояльности - ранее текстовое содержимое файла ext-loyalty-providers.xml как оно есть, в формате xml) | Описание провайдеров лояльности (xml) |
При обновлении кассы на версию 10.2.99.0 и выше содержимое файла ext-loyalty-providers.xml перенесётся в БД кассы автоматически, в указанную таблицу. После ручного редактирования конфигурации провайдеров лояльности в БД кассы необходимо перезагрузить кассу. Файл ext-loyalty-providers.xml останется на кассе, но потеряет актуальность, кроме случаев, когда конфигурация в БД окажется невалидной (например, формат некорректный). В случае ошибки в конфигурации из БД, конфигурация возьмется из файла, чтобы не сломать работу кассы.
Список и порядок применяемых провайдеров лояльности находится в бине "loy-providers-registry", свойстве "providers". Вам всё ещё нужно регистрировать провайдер лояльности во "Внешних системах" на сервере и создавать рекламную акцию для срабатывания его, чтобы расчет скидок в нем действительно был произведен. Доступные кассе провайдеры лояльности и способ их записи представлены в таблице 1.
Список и порядок применяемых провайдеров лояльности находится в секции loy-providers-registry
, свойстве providers
.
...