Публичное пространство
SetKit ◾️ Применение кассовых механик к заказу в зависимости от онлайн-канала продаж
https://crystals.atlassian.net/browse/SR-8950
https://crystals.atlassian.net/browse/CR-15327
SETRETAIL 10.5.0.0
SETKIT 4.13.0
Описание
Начиная с версии 10.5.0.0 реализована возможность применять кассовые механики (например, начисление бонусов или предоставление скидки) на кассе по признаку онлайн-канала продаж, указанному в заказе SetKit. При создании заказа внешняя система передаёт в SetKit атрибут onlineSubchannel — идентификатор подканала из справочника «Каналы продаж» в SetCentrum. На основании этого атрибута касса определяет, какие канал-зависимые механики должны быть применены к позициям заказа.
Ценность
Возможность настраивать отдельные программы вознаграждений для разных онлайн-каналов продаж (маркетплейсы, сайт, мобильное приложение, ПВЗ и т.п.) и корректно рассчитывать итоговую стоимость онлайн-заказа при его выкупе на кассе магазина.
Логика работы
Справочник Каналы продаж ведётся в SetCentrum в разделе Служебные данные и имеет двухуровневую структуру:
Канал — верхний уровень (например, Маркетплейсы, код
110872).Подканал — дочерний уровень внутри канала (например, Озон, код
110873; WB, код110874).
При создании или обновлении заказа в SetKit внешняя система передаёт атрибут onlineSubchannel — уникальный код подканала из справочника. Атрибут указывается на верхнем уровне заказа (мягкого чека) и распространяется на все его позиции.
При восстановлении мягкого чека на кассе SetRetail применяются следующие правила:
Если в заказе указан
onlineSubchannel, касса применяет:механики, в которых указан канал, являющийся родительским для переданного подканала (например, механика на канал Маркетплейсы
110872сработает для подканала Озон110873);механики, в которых указан подканал, совпадающий с переданным значением;
механики без условия по каналу продаж — применяются независимо от наличия
onlineSubchannel.
Если
onlineSubchannelне передан или передано значение, не существующее в справочнике, канал-зависимые механики не применяются. Поведение кассы остаётся прежним.
Информация о канале продаж передаётся в экспорте чеков из SetRetail в ERP при условии, что при создании заказа в атрибуте additionalinfo указан onlineSubchannel. В выгрузке чека это выглядит как:
<plugin-property key="sc.num.{номер_заказа}" value="onlineSubchannel={код_подканала}"/>Пример работы
Создание мягкого чека
Внешняя система присылает в SetKit созданный заказ, с указанием признака onlineSubchannel (код онлайн-канала продаж) и данными о клиенте:
{
"status": "READY_TO_PAYMENT",
"dateCreated": "2023-02-05 14:00",
"isEditable": true,
"positionsAddingAllowed": true,
"totalPrice": 49.00,
"discountsValue": 0.0,
"onlineSubchannel": 110873,
"additionalInfo": "onlineSubchannel=110873",
"positions": [
{
"positionOrder": 1,
"code": "45034",
"barcode": "4810167000258",
"quantity": 1,
"unitPrice": 49.00,
"discountValue": 0.0,
"totalPrice": 49.00,
"canChangePrice": false,
"isFixedPrice": false,
"isFixedDiscounts": false
}
],
"client": {
"guid": "100021",
"cardNumber": "90001234",
"email": "test@test.ru",
"firstName": "Иван",
"lastName": "Иванов"
}
}Работа на кассе
Покупатель приходит забирать заказ в магазин.
Кассир сканирует штрихкод заказа и переходит к расчету.
В чеке применяется акция Кешбэк 5% при заказе из маркетплейса Ozon — механика срабатывает, т. к. в заказе передан онлайн-подканал Озон (
110873). Покупателю будут начислены бонусы в размере 5% от суммы чека.
Кассир принимает оплату и закрывает чек.
Данные в операционном дне
В разделе Операционный день → Чеки → [Чек] отображаются данные о бонусном начислении по акции Кешбэк 5% при заказе из маркетплейса Ozon.
Экспорт данных в ERP
Пример выгрузки чека с информацией о канале продаж:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<purchases count="1">
<purchase tabNumber="11112" userName="Иванов Иван Иванович" operationType="true" cashOperation="INCOME" operDay="2026-07-02+03:00" shop="779" cash="2" shift="170" number="1" saletime="2026-07-02T17:56:30.532+03:00" begintime="2026-07-02T17:56:02.807+03:00" amount="49.00" discountAmount="0.00" inn="1234567890" fiscalDocNum="345;1">
<plugin-property key="sc.num.SK91769266733040" value="onlineSubchannel=110873"/>
<plugin-property key="PROMO_PRINT_DISABLED" value="true"/>
<plugin-property key="FISCAL_DOC_ID" value="345"/>
<plugin-property key="FN_DOC_NUM_IN_SHIFT" value="2"/>
<plugin-property key="CASHIER_NAME" value="Иванов Иван Иванович"/>
<plugin-property key="UID_PURCHASE" value="21d7acfd-dc40-4bae-8001-9beedd59927b"/>
<plugin-property key="KPP" value="987654321"/>
<plugin-property key="CASH_TIME_ZONE" value="+03:00"/>
<positions>
<position order="1" departNumber="583" goodsCode="45034" barCode="4810167000258" count="1.000" cost="49.00" nds="20.0" ndsSum="8.17" discountValue="0.00" costWithDiscount="49.00" amount="49.00" softCheckNumber="SK91769266733040" dateCommit="2026-07-02T17:56:02.843+03:00" insertType="10">
<plugin-property key="lineNumberAfterRegistration" value="1"/>
<plugin-property key="countryName" value="Россия"/>
<plugin-property key="salesTax" value="0"/>
<plugin-property key="ffdTag2108"/>
</position>
</positions>
<payments>
<payment order="0" typeClass="CashPaymentEntity" amount="49.00" description="Оплата наличными"/>
</payments>
<discountCards>
<discountCard>90001234</discountCard>
</discountCards>
<card type="INTERNAL" number="90001234" addedBy="SCANNER"/>
</purchase>
</purchases>Ограничения
Справочник Каналы продаж ведётся вручную в интерфейсе SetCentrum.
Атрибут
onlineSubchannelопциональный.Информация о канале продаж передаётся в экспорте чеков из SetRetail в ERP только при условии, что при создании заказа в атрибуте
additionalInfoявно указанonlineSubchannel(например,additionalinfo="onlineSubchannel=110873").
Настройки
Внешний процессинг
Настройка процессинга службы мягких чеков осуществляется по инструкции.
Для передачи в экспорте чека дополнительной информации additionalinfo , в настройках процессинга Служба мягких чеков SetKitX установите флажок Сохранять в чековых данных дополнительную информацию из МЧ → нажмите СОХРАНИТЬ → перезагрузите кассовый модуль.
Каналы продаж
Доступ к разделу
Для доступа к разделу пользователю Set Centrum требуется привилегия Каналы продаж, добавление каналов.
Для включения привилегий перейдите в раздел Персонал → Роли пользователей → выберите нужную роль → откройте вкладку Служебные данные → Каналы продаж → кликните по названию привилегии Каналы продаж, добавление каналов → нажмите кнопку Добавить к роли → нажмите кнопку Сохранить.
Создание канала
Перейдите в раздел Служебные данные → Каналы продаж.
Нажмите кнопку + Добавить.
В появившемся окне введите произвольное название канала в поле Название (например, Маркетплейсы).
Нажмите Сохранить.
В открывшейся карточке канала нажмите кнопку + Добавить для создания подканалов.
Заполните поле Название — произвольное название подканала (например, Озон).
Нажмите Сохранить.
При необходимости повторите шаги 5–7 для добавления других подканалов.
Каждому каналу и подканалу присваивается уникальный числовой код (ID), который используется при интеграции, в том числе в атрибуте onlineSubchannel при создании заказа через API SetKit.
Кассовая механика
Создайте кассовую механику (акцию) на выдачу вознаграждения покупателям в соответствии с вашими бизнес-процессами. Ключевое условие настройки – ограничьте действие акции по каналам продаж. Пример представлен ниже.
В разделе Инструменты лояльности → Кассовые механики нажмите
.
Введите название кассовой механики → введите дату начала и окончания срока действия акции либо установите флажок
Бессрочно → установите флажок
Всегда суммировать результат с другими акциями, используя цены ранее рассчитанных акций → установите флажок
Для всей сети или задайте конкретную зону охвата → нажмите кнопку
в поле Каналы продаж → выберите нужный канал продаж из предварительно созданного в одноименном разделе списка.
Выберите принцип срабатывания Безусловно → нажмите кнопку
в поле Результат.
Установите тип вознаграждения, выдаваемый по акции, например, зачисление бонусов: на вкладке Бонусы и электронные фишки задайте правило начисления бонусов в размере 5% от суммы чека -> нажмите ПРИМЕНИТЬ.
Нажмите кнопку ЗАПУСТИТЬ.