Для работы с системой лояльности Mindbox файл лицензии должен содержать модуль mindbox. Подробнее об этом можно прочитать в разделе "Формат лицензии Artix .li4".

Реализованная интеграция с системой лояльности Mindbox может не поддерживать определенные функции системы или иметь особенности их реализации. Следует уточнять полноту интеграции в соответствии с функциональными требованиями к системе лояльности. 

Кассовое ПО Artix поддерживает применение дисконтных и бонусных воздействий, применение купонов системы лояльности Mindbox, а также возможность печати сообщения на чеке.

Конфигурирование модуля Mindbox

Активация модуля системы лояльности Mindbox определяется параметром mindbox, который задается в конфигурационном файле /linuxcash/cash/conf/ncash. ini.d/mindbox.ini в секции [plugins].

НаименованиеТип данныхВозможные значенияОписаниеПримечания
mindboxстроковый
  • on
  • off
Активация модуля системы лояльности MindboxПо умолчанию off
Пример настройки
[plugins]
; Система лояльности Mindbox 
;mindbox = off

Настройка плагина системы лояльности Mindbox производится в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mindbox.ini в секции [Mindbox].

НаименованиеТип данныхВозможные значенияОписаниеПримечания
urlстроковый
Адрес сервераПо умолчанию https://api.mindbox.ru/v3/operations/sync
secretKeyстроковый
Секретный ключ
endpointстроковый
Идентификатор точки интеграции
pointOfContactстроковый
Точка контакта
timeoutцелочисленный
Таймаут обращения к серверу в секундахПо умолчанию 5 секунд
sendMobilePhoneAuthorizationCodeOperationстроковый
Название операции для отправки кода подтвердженияПо умолчанию Offline.SendMobilePhoneAuthorizationCodeOperation
resendMobilePhoneAuthorizationCodeOperationстроковый
Название операции для повторной отправки кода подтвердженияПо умолчанию Offline.ResendMobilePhoneAuthorizationCodeOperation
registerCustomerOperationстроковый
Название операции для регистрации клиентаПо умолчанию Offline.RegisterCustomerBookvoed
balanceSystemNameстроковый
Системное имя используемого бального счета
offlineTransactionArtixIdMaskстроковый
Маска идентификатора транзакцииПо умолчанию "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(document.dateTimeBeg[hhmmss])"
lineStatusстроковый
Статус позиции чекаПо умолчанию "ArtixPaid"
returnLineStatusстроковый
Статус позиции чека возвратаПо умолчанию "sendToReturn"
areaIdстроковый
Идентификатор зоны
positionsIgnoringMaskстроковый
Маска штрих-кода для исключения позиций из отправки на сервер
returnOperationстроковый
Название операции для возвратаПо умолчанию Offline.Return
requestTransactionIdNameстроковый
Название идентификатора транзакции в запросеПо умолчанию "offlineTransactionIdArtix"
responseTransactionIdNameстроковый
Название идентификатора транзакции в ответеПо умолчанию "offlineTransactionIdArtix"
productIdNameстроковый
Наименование идентификатора позиции
productIdMaskстроковый
Маска идентификатора позицииПо умолчанию "%(position.articul[s])"
autoRegistrationлогический
  • true
  • false
Автоматическая регистрация, если при добавлении карты клиент не был найденПо умолчанию false
sendConfirmAfterCheckлогический
  • true
  • false
Отправить запрос подтверждения кода авторизации после запроса проверки кодаПо умолчанию false
activateDiscountCardOperationстроковый
Название операции для активации дисконтной картыПо умолчанию Offline.ActivateDiscountCard
activateVirtualDiscountCardOperationстроковый
Название операции для активации виртуальной дисконтной картыПо умолчанию Offline.ActivateVirtualDiscountCard
anonymousPreorderOperationстроковый
Название операции для расчета анонимного чека на кассеПо умолчанию Offline.AnonymousPreorder
authorizedPreorderOperationстроковый
Название операции для расчета авторизованного чека на кассеПо умолчанию Offline.AuthorizedPreorder
beginAnonymousOrderTransactionOperationстроковый
Название операции для начала создания анонимного заказа на кассеПо умолчанию Offline.BeginAnonymousOrderTransaction
beginAuthorizedOrderTransactionOperationстроковый
Название операции для начала создания авторизованного заказа на кассеПо умолчанию Offline.BeginAuthorizedOrderTransaction
beginUnauthorizedOrderTransactionOperationстроковый
Название операции для начала создания неавторизованного заказа на кассеПо умолчанию Offline.BeginUnauthorizedOrderTransaction
checkCustomerOperationстроковый
Название операции для получения данных клиентаПо умолчанию Offline.CheckCustomer
checkMobilePhoneAuthorizationCodeOperationстроковый
Название операции для проверки кода авторизации на кассеПо умолчанию Offline.CheckMobilePhoneAuthorizationCode
commitOrderTransactionOperationстроковый
Название операции для подтверждения заказаПо умолчанию Offline.CommitOrderTransaction
confirmMobilePhoneOperationстроковый
Название операции для подтверждения телефона на кассеПо умолчанию Offline.ConfirmMobilePhone
editCustomerOperationстроковый
Название операции для редактирования данных клиента на кассеПо умолчанию Offline.EditCustomer
replaceCardsOperationстроковый
Название операции для замены дисконтной картыПо умолчанию Offline.ReplaceCards
rollbackOrderTransactionOperationстроковый
Название операции для отмены заказаПо умолчанию Offline.RollbackOrderTransaction
saveOfflineOrderOperationстроковый
Название операции для отложенной обработки заказаПо умолчанию Offline.SaveOfflineOrder
unauthorizedPreorderOperationстроковый
Название операции для расчета неавторизованного чека на кассеПо умолчанию Offline.UnauthorizedPreorder
useIdempotencyKeyлогический
  • true
  • false
Использовать ключ идемпотентности в запросахПо умолчанию false
sendCheckOnCommitOrderлогический
  • true
  • false
Отправлять данные чека при подтверждении заказаПо умолчанию false
sendCheckOnRollbackOrderлогический
  • true
  • false
Отправлять данные чека при отмене заказаПо умолчанию false
sendMobilePhoneForCustomerлогический
  • true
  • false
Отправлять номер мобильного телефона клиента в запросахПо умолчанию false
preorderLineStatusстроковый
Статус позиции чека при расчете чека на кассеПо умолчанию используется значение параметра lineStatus
orderLineStatusстроковый
Статус позиции чека при создании заказаПо умолчанию используется значение параметра lineStatus
commitOrderLineStatusстроковый
Статус позиции чека при подтверждении заказаПо умолчанию используется значение параметра lineStatus
rollbackOrderLineStatusстроковый
Статус позиции чека при отмене заказаПо умолчанию используется значение параметра lineStatus
Пример настройки
[Mindbox]
; Адрес сервера
; по умолчанию https://api.mindbox.ru/v3/operations/sync
;url = https://api.mindbox.ru/v3/operations/sync

; Секретный ключ
; по умолчанию ""
;secretKey = ""

; Идентификатор точки интеграции
; по умолчанию ""
;endpoint = ""

; Точка контакта
; по умолчанию ""
;pointOfContact = ""

; Таймаут обращения к серверу в секундах
; по умолчанию 5 секунд
;timeout = 5

; Название операции для отправки кода подтверджения
; по умолчанию Offline.SendMobilePhoneAuthorizationCodeOperation
;sendMobilePhoneAuthorizationCodeOperation = Offline.SendMobilePhoneAuthorizationCodeOperation

; Название операции для повторной отправки кода подтверджения
; по умолчанию Offline.ResendMobilePhoneAuthorizationCodeOperation
;resendMobilePhoneAuthorizationCodeOperation = Offline.ResendMobilePhoneAuthorizationCodeOperation

; Название операции для регистрации клиента
; По умолчанию Offline.RegisterCustomerBookvoed
;registerCustomerOperation = Offline.RegisterCustomerBookvoed

; Системное имя используемого бального счета
; по умолчанию ""
;balanceSystemName = ""

; Маска идентификатора транзакции
; по умолчанию "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(document.dateTimeBeg[hhmmss])"
;offlineTransactionArtixIdMask = "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(document.dateTimeBeg[hhmmss])"

; Статус позиции чека
; по умолчанию "ArtixPaid"
;lineStatus = "ArtixPaid"

; Статус позиции чека возврата
; по умолчанию "sendToReturn"
;returnLineStatus = "sendToReturn"

; Идентификатор зоны
; по умолчанию ""
;areaId = ""

; Маска штрих-кода для исключения позиций из отправки на сервер
; по умолчанию ""
;positionsIgnoringMask = ""

; Название операции для возврата
; по умолчанию Offline.Return
;returnOperation = Offline.Return

; Название идентификатора транзакции в запросе
; по умолчанию "offlineTransactionIdArtix"
;requestTransactionIdName = "offlineTransactionIdArtix"

; Название идентификатора транзакции в ответе
; по умолчанию "offlineTransactionIdArtix"
;responseTransactionIdName = "offlineTransactionIdArtix"

; Наименование идентификатора позиции
; по умолчанию ""
;productIdName = ""

; Маска идентификатора позиции
; по умолчанию "%(position.articul[s])"
;productIdMask = "%(position.articul[s])"

; Автоматическая регистрация, если при добавлении карты клиент не был найден
; по умолчанию false
;autoRegistration = false

; Отправить запрос подтверждения кода авторизации после запроса проверки кода
; по умолчанию false
;sendConfirmAfterCheck = false

; Название операции для активации дисконтной карты
; по умолчанию Offline.ActivateDiscountCard
;activateDiscountCardOperation = Offline.ActivateDiscountCard

; Название операции для активации виртуальной дисконтной карты
; по умолчанию Offline.ActivateVirtualDiscountCard
;activateVirtualDiscountCardOperation = Offline.ActivateVirtualDiscountCard

; Название операции для расчета анонимного чека на кассе
; по умолчанию Offline.AnonymousPreorder
;anonymousPreorderOperation = Offline.AnonymousPreorder

; Название операции для расчета авторизованного чека на кассе
; по умолчанию Offline.AuthorizedPreorder
;authorizedPreorderOperation = Offline.AuthorizedPreorder

; Название операции для начала создания анонимного заказа на кассе
; по умолчанию Offline.BeginAnonymousOrderTransaction
;beginAnonymousOrderTransactionOperation = Offline.BeginAnonymousOrderTransaction

; Название операции для начала создания авторизованного заказа на кассе
; по умолчанию Offline.BeginAuthorizedOrderTransaction
;beginAuthorizedOrderTransactionOperation = Offline.BeginAuthorizedOrderTransaction

; Название операции для начала создания неавторизованного заказа на кассе
; по умолчанию Offline.BeginUnauthorizedOrderTransaction
;beginUnauthorizedOrderTransactionOperation = Offline.BeginUnauthorizedOrderTransaction

; Название операции для получения данных клиента
; по умолчанию Offline.CheckCustomer
;checkCustomerOperation = Offline.CheckCustomer

; Название операции для проверки кода авторизации на кассе
; по умолчанию Offline.CheckMobilePhoneAuthorizationCode
;checkMobilePhoneAuthorizationCodeOperation = Offline.CheckMobilePhoneAuthorizationCode

; Название операции для подтверждения заказа
; по умолчанию Offline.CommitOrderTransaction
;commitOrderTransactionOperation = Offline.CommitOrderTransaction

; Название операции для подтверждения телефона на кассе
; по умолчанию Offline.ConfirmMobilePhone
;confirmMobilePhoneOperation = Offline.ConfirmMobilePhone

; Название операции для редактирования данных клиента на кассе
; по умолчанию Offline.EditCustomer
;editCustomerOperation = Offline.EditCustomer

; Название операции для замены дисконтной карты
; по умолчанию Offline.ReplaceCards
;replaceCardsOperation = Offline.ReplaceCards

; Название операции для отмены заказа
; по умолчанию Offline.RollbackOrderTransaction
;rollbackOrderTransactionOperation = Offline.RollbackOrderTransaction

; Название операции для отложенной обработки заказа
; по умолчанию Offline.SaveOfflineOrder
;saveOfflineOrderOperation = Offline.SaveOfflineOrder

; Название операции для расчета неавторизованного чека на кассе
; по умолчанию Offline.UnauthorizedPreorder
;unauthorizedPreorderOperation = Offline.UnauthorizedPreorder

; Использовать ключ идемпотентности в запросах
; по умолчанию false
;useIdempotencyKey = false

; Отправлять данные чека при подтверждении заказа
; по умолчанию false
;sendCheckOnCommitOrder = false

; Отправлять данные чека при отмене заказа
; по умолчанию false
;sendCheckOnRollbackOrder = false

; Отправлять номер мобильного телефона клиента в запросах
; по умолчанию false
;sendMobilePhoneForCustomer = false

; Статус позиции чека при расчете чека на кассе
; если не указан, то используется значение lineStatus
;preorderLineStatus = ""

; Статус позиции чека при создании заказа
; если не указан, то используется значение lineStatus
;orderLineStatus = ""

; Статус позиции чека при подтверждении заказа
; если не указан, то используется значение lineStatus
;commitOrderLineStatus = ""

; Статус позиции чека при отмене заказа
; если не указан, то используется значение lineStatus
;rollbackOrderLineStatus = ""

Для передачи артикула необходимо для параметра productIdMask задать следующую маску:

Пример настройки
productIdMask = "%(position.articul[s])"

Для исключения позиций из отправки на сервер необходимо для параметра positionsIgnoringMask задать маску:

Пример настройки
positionsIgnoringMask = "22.*|11.*"

В данном примере позиции, коды/штрих-коды которых начинаются с "22" или с "11", на сервер отправлены не будут.

Бонусная программа Mindbox

 Для использования системы лояльности Mindbox необходимо:

  1. Завести группу бонусных карт с типом карты Mindbox (БД Dictionaries таблица Cardgroup  поле cardmode = 24).
  2. Активировать модуль системы лояльности Mindbox (см. Конфигурирование модуля Mindbox).
  3. Настроить подключение к серверу системы лояльности (см. Конфигурирование модуля Mindbox).
  4. Перезапустить кассовую программу.
  5. Применить бонусную карту в чеке.

Операции с картой

Настройками сервера системы лояльности предусмотрены следующие операции с картой:

  • Создание карты – соответствует команде COMMAND_CARDCREATE.
  • Замена карты – соответствует команде команда COMMAND_CARDREPLACE.
  • Выдача карты – соответствует команде COMMAND_CARDISSUANCE.

Диалог с выбором операций из списка можно отобразить в корневом меню с указанными выше командами:

Для этого необходимо в утилите администрирования Yuki добавить корневое меню с соответствующими действиями из списка. Подробнее можно прочитать в разделе "Меню и клавиши кассы".

Создание карты (регистрация клиента)

Настройками сервера системы лояльности предусмотрено создание карты с регистрацией клиента:

После ввода номера телефона, который отсутствует на сервере системы лояльности, будет создан клиент с наименованием "Не указаны ФИО".
В чек будет добавлена карта с введенным номером телефона.

Замена карты

Настройками сервера системы лояльности предусмотрена замена карты:

После выбора заменяемой карты необходимо ввести номер выдаваемой карты:

После успешной замены выдаваемая карта будет добавлена в чек.

Выдача карты

Настройками сервера системы лояльности предусмотрена выдача карты клиенту:

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

Продажа

В системе лояльности Mindbox скидка применяется с учетом минимальной цены товара.

Обращение к серверу для получения скидки и суммы доступных баллов выполняется автоматически при переходе в подытог. Полученные скидки автоматически применяются к чеку.

Суммирование внутренних и внешних скидок зависит от правил акции в Mindbox.

Добавление карты

Для получения скидки, для начисления и списания баллов с бонусной карты необходимо добавить карту системы лояльности Mindbox в чек:

Добавление карты по номеру телефона

При добавлении карты по номеру телефона номер последней заведенной карты клиента будет отображен в информации о карте и сохранен в БД.

При использовании системы лояльности Mindbox возможно добавление карты по номеру телефона. Для этого необходимо:

  1. Включить способ ввода "Удаленно" для группы карт (БД Dictionaries таблица Cardgroup  поле inputmask = 16).
  2. Для группы карт указать:

    • маску допустимых номеров карт:

      ^\+7([0-9]{10})|^7([0-9]{10})|^8([0-9]{10})|(^9[0-9]{9})

    • правило преобразования:

      +7\1\2\3\4

    • тип карты cardMode = 24.

  3. Для правила поиска карт установить значение "По номеру карты".
  4. В утилите администрирования Yuki на клавишу настроить действие "Добавить карту" с командой COMMAND_CARD и параметрами:
    • cardNumberType со значением 1,
    • cardMode со значением 24.
    О настройке действий подробнее можно прочитать в разделе "Настройка действий".

При использовании команды будет выведен диалог, в котором необходимо указать номер телефона:

После ввода номера телефона будет выведен диалог, в котором необходимо указать код подтверждения, полученный в SMS-сообщении:

После авторизации производится поиск карты на сервере системы лояльности. Если карта найдена, то она будет добавлена в чек.

В кассовом ПО Artix реализована возможность запроса авторизации только при списании бонусов с карты лояльности. Данное поведение задается параметром authorizeOnlyOnSpendPoints /linuxcash/cash/conf/ncash.ini.d/mindbox.ini в секции [Mindbox]:

  • при значении true авторизация требуется только при списании бонусов,
  • при значении false авторизация требуется при добавлении карты в чек.
НаименованиеТип данныхВозможные значенияОписаниеПримечания
authorizeOnlyOnSpendPointsлогический
  • true
  • false
Авторизация только при списании бонусовПо умолчанию false
Пример настройки
[Mindbox]
... 
; Авторизация только при списании бонусов
; по умолчанию false
;authorizeOnlyOnSpendPoints = false

Отправка чека на адрес покупателя

Для отправки чека на адрес покупателя необходимо активировать плагин customerAddress в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/customeraddress.ini в секции [plugins]. Подробнее о настройке плагина можно прочитать в статье "Отправка чека на адрес покупателя".

Поведение на кассе при значении параметров inputAddress и printCheck по умолчанию:

  • Если в карточке клиента в системе лояльности Mindbox указан e-mail и установлен признак "Согласие на электронные чеки", то при закрытии чека на экран будет выведено сообщение "Чек будет отправлен на email покупателя", чек не будет распечатан на ФР.
  • Если в карточке клиента в системе лояльности Mindbox указан e-mail, но не установлен признак "Согласие на электронные чеки", то для отправки чека необходимо подтвердить e-mail при добавлении адреса покупателя в чек по клавише "Добавить адрес покупателя" с командой COMMAND_CUSTOMER_ADDRESS_ADD.

В кассовом ПО Artix реализована возможность отказаться от печати слипа при закрытии чека с картой системы лояльности Mindbox. Для этого необходимо отредактировать в каталоге /linuxcash/cash/reports/ соответствующий шаблон. В шаблон должно быть добавлено условие для проверки признака "Согласие на электронные чеки" (customer.consentToElectronicChecks). Подробнее о редактировании шаблонов можно прочитать в разделе "Движок отчетов".

Выдача виртуальной карты

В кассовом ПО Artix реализована возможность выдачи виртуальной карты:

  • при регистрации клиента,
  • при добавлении клиента, к которому не привязаны карты на сервере системы лояльности Mindbox.

Данное поведение регулируется параметром activateVirtualCard в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mindbox.ini в секции [Mindbox]:

  • при значении параметра true виртуальная карта будет выдана и активирована из пула номеров на сервере системы лояльности,
  • при значении параметра false виртуальная карта не будет выдана.
НаименованиеТип данныхВозможные значенияОписаниеПримечания
activateVirtualCardлогический
  • true
  • false
Активация виртуальной карты для клиента без картПо умолчанию false
Пример настройки
[Mindbox]
...
; Активация виртуальной карты для клиента без карт
; по умолчанию false
;activateVirtualCard = false

Списание баллов

Списание баллов выполняется по инициативе кассира. Потраченные баллы фиксируются в кассовой программе как скидка на чек. Для списания можно использовать все доступные баллы.

Для списания баллов требуется авторизация с вводом кода подтверждения.

Начисление баллов

Начисление баллов происходит на стороне сервера системы лояльности Mindbox после закрытия чека.

При закрытии чека печатается слип, шаблон которого находится в /linuxcash/cash/reports/. Для авторизованных клиентов используется шаблон mindbox.xml, для неавторизованных – mindbox_anonym.xml.

Сохранение примененных скидок перед печатью чека

Функционал поддержан только для авторизованных клиентов Mindbox.

В кассовом ПО Artix реализована возможность сохранения примененных скидок перед печатью чека. Данное поведение регулируется параметром saveOrderBeforePrint в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mindbox.ini в секции [Mindbox]:

  • при значении параметра true перед печатью чека будет произведена попытка сохранения примененных скидок:
    • если закрыть чек не удалось, то будет выведена ошибка "Расхождение сумм в системе лояльности. Вернитесь в режим формирования и попробуйте снова",

    • если чек закрыт успешно, то примененные скидки будут сохранены перед печатью чека.
  • при значении параметра false сохранение примененных скидок перед печатью чека осуществляться не будет (поведение по умолчанию).
НаименованиеТип данныхВозможные значенияОписаниеПримечания
saveOrderBeforePrintлогический
  • true
  • false
Сохранять заказ (примененные скидки) перед печатью чекаПо умолчанию false
Пример настройки
[Mindbox]
...
; Сохранять заказ перед печатью чека
; по умолчанию false
;saveOrderBeforePrint = false

Возврат

В системе лояльности предусмотрена возможность возврата списанных ранее баллов.

Купоны Mindbox

Кассовое ПО Artix предоставляет возможность работы с многоразовыми и одноразовыми купонами (в системе лояльности Mindbox оба вида купонов относятся к категории "Промокоды").

Применение купонов

Создание, редактирование купонных акций и генерация купонов происходит на сервере системы лояльности Mindbox. Данные купонов из примененных акций могут быть напечатаны в чеке с помощью кассового ПО.

При использовании системы лояльности Mindbox предоставляется возможность получения скидки по купону. Скидка по купону может быть применена на чек. В одном чеке продажи может быть применено несколько купонов.

Добавление купона в чек осуществляется несколькими способами:

  • вручную с клавиатуры,
  • сканированием штрих-кода,
  • по кнопке "Добавить купон" с командой COMMAND_COUPON_ADD. О настройке действий подробнее можно прочитать в разделе "Настройка действий".

Для распознавания номера/штрих-кода купона на кассе должно быть задано правило разбора по штрих-коду, которое задается в конфигурационном файле /linuxcash/cash/conf/bcode.ini.

Пример настройки
MINDBOX???=сccccccccc

В данном примере "MINDBOX" является префиксом купонов, на что указывают символы "cccccccccc".

При добавлении купона в чек проверяется его валидность. В случае, если купон невалиден, купон не будет добавлен в чек.

Скидка по купону применяется автоматически при переходе в подытог.

В кассовом ПО Artix реализована возможность управления передачей купона на сервер системы лояльности в зависимости от его статуса. Список статусов, при получении которых купон не нужно передавать на сервер, задается параметром couponForbiddenStatus в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/mindbox.ini в секции [Mindbox].

НаименованиеТип данныхОписаниеПримечания
couponForbiddenStatusстроковыйСписок статусов купона, при получении которых купон не нужно передавать в mindboxПо умолчанию "CanNotBeUsedForCurrentOrder, NotFound, Blocked"
Пример настройки
[Mindbox]
...
; Список статусов купона, при получении которых купон не нужно передавать в mindbox
; по умолчанию "CanNotBeUsedForCurrentOrder, NotFound, Blocked"
;couponForbiddenStatus = "CanNotBeUsedForCurrentOrder, NotFound, Blocked"

Режимы работы

В зависимости от доступности сервера системы лояльности Mindbox операции могут производиться в режиме online или offline. При этом:

  • Добавление карты производится online. Если сервер системы лояльности недоступен, то offline. При добавлении карты в чек на экран будет выведено предупреждение "Нет связи с сервером Mindbox. Баллы будут начислены позднее", после закрытия предупреждения карта будет добавлена в чек. Списание бонусных баллов невозможно. При попытке оплатить чек бонусными баллами на экран будет выведено предупреждение "На карте нет баллов для оплаты". Операции по начислению будут произведены через очередь Artix-Queue.
  • Запрос скидок и списание бонусных баллов всегда производятся online.
  • Операции по отмене начисления производятся online.
  • No labels