Конвертеры импорт и экспорт XML реализованы для обмена данными системы УКМ 4 c внешними программными продуктами в формате XML. Передача данных осуществляется с помощью файлов в формате XML и возможна только в рамках операционной системы Windows.
Примечание. Несмотря на то, что в интерфейсе УКМ 4 данные XML-конвертеры носят название Супермаг Плюс, их можно использовать не только для интеграции УКМ 4 с продуктом СуперМаг Плюс компании Сервис плюс, но и с любыми внешними системами. Передача данных из внешней системы в УКМ 4 и из УКМ 4 во внешнюю систему осуществляется через раздельные каталоги. Набор каталогов един для всех магазинов, зарегистрированных на одном сервере. В одном файле формата XML передается только один тип данных. Конвертер непрерывно дорабатывается для поддержки передачи новых типов данных по запросам пользователей, однако, уже доступные теги и свойства не удаляются.
Тип информации | Имя файла и головного тега | Тип выгрузки |
---|---|---|
Общая информация (одинаковая для всех магазинов) | ||
Справочник свойств товаров | properties | всегда полная |
Справочник налогов | taxes | всегда полная |
Справочник отделов магазинов | stocks | всегда полная |
Товарный классификатор | classif | всегда полная |
Товары (включая штрихкоды и дополнительные характеристики товаров) | updateItems | полная/частичная |
Информация для магазинов | ||
Цены на товары | storePrices | полная/частичная |
Продавцы | storeSellers | всегда полная |
Привязка товаров к отделам магазина | itemStoreStock | всегда полная |
Кассиры | storeCashiers Пример: storeCashiers _[5]_[1]_[F].xml [5] – код магазина во внешней системе; [1] – номер выгрузки п/п; [F] – флаг, что файл содержит полный перечень кассиров | всегда полная |
TAGNAME_ [Object]_ [Number]_[P]_[Error].xml
TAGNAME – название головного тега файла.
Object – идентификатор объекта. Может быть переменной длины и принимать значение [код магазина] для файлов, указанных в таблице выше в разделе Информация для магазинов.
Если документ содержит только общую информацию, то параметр Object не указывается.
Number – порядковый номер файла с информацией данного типа. Электронной обработки номер не имеет, важен только для регулирования последовательности обработки файлов. Формат номера – целое число.
P – признак полноты информации в файле: F – файл содержит полный перечень элементов, I – файл содержит не полный перечень элементов.
Error – признак ошибки. Устанавливается УКМ 4 в случае возникновения любых ошибок при работе с данным файлом.
Для всех частей имени файла регистр букв не важен.
Примеры:
storePrices_[1112]_[1]_[I].xml – изменения розничных цен в магазине 1112;
classif_[2]_[F].xml – классификатор товаров.
Принципы обмена данными между УКМ 4 и внешней системой
Правила выгрузки информации из внешней системы в УКМ 4
Правила обработки информации сервером УКМ 4
Требования к внешней системе:
При этом, если в каталоге уже есть файлы с данным тегом, то сформированный файл получает номер на единицу больше, чем наибольший номер у файла с данным тегом.
Например, в каталоге есть файлы Classif_[1]_[F], Classif_[2]_[F], Classif_[3]_[F]. Если в этот момент внешняя система еще раз выгружает товарный классификатор, то она должна выгрузить его в файл с именем Classif_[4]_[F]. Флаг полного/неполного наполнения файла не влияет на нумерацию файлов (т.е. нумерация сквозная для файлов с одним типом документов без учета полного/неполного их содержимого).
Перед настройкой сервера УКМ 4 убедитесь, что в настройках внешней системы указаны следующие параметры:
Чтобы подключить конвертер, перейдите в раздел веб-интерфейса Настройка сервера и оборудования/Конвертеры. В открывшемся окне нажмите кнопку +Добавить. Далее выберите из списка конвертер и нажмите +Создать:
После создания конвертера откроется окно его настройки:
Название – в поле указывается название конвертера (по умолчанию, присваивается значение типа добавляемого конвертера).
Запускается – указывается служба, через которую будет осуществляться обмен данными (при условии, что пользователь имеет право доступа к ресурсам). Существуют следующие варианты значений:
Сервер – обмен будет осуществляться через серверную часть УКМ 4.
Терминал – обмен будет осуществляться через клиентскую (терминальную) часть УКМ 4.
Каталог для загрузки данных – в поле указывается путь до каталога, куда внешняя система помещает файлы выгрузки данных.
Архивировать файлы после загрузки – если включить данный флаг, то файлы выгрузки, после обработки конвертером, будут сохранены в виде архива в каталоге обмена данными.
Роль, которая назначается кассирам – указывается одна из ролей кассового персонала. Загружаемые записи о кассирах будут привязаны к этой роли. Пароли при загрузке зашифрованы.
Магазины – для выбора магазинов, в которых будет действовать конвертер, кликните по ссылке Добавить магазины.
Рекламная акция – устаревший функционал; в поле необходимо указать значение Не загружать скидки.
Внимание! В данном описании перечислены только новейшие изменения. Полную версию файлов импорта можно найти здесь.
Загрузка дополнительных цен
<storePricesAdd fullness="F" storeId="4">
<version=”1.0”>
<PriceType> // minOccurs=”0” maxOccurs="unbounded"
<priceTypeCode></priceTypeCode> (код вида цены в СМ)
<priceTypeName></priceTypeName> (название вида цены в СМ)
<item article=””> //minOccurs=”0” maxOccurs="unbounded"
<price>// minOccurs=”0” maxOccurs="1"
<value></value>
<minprice></minprice>
<MRC>// minOccurs=”0” maxOccurs="unbounded"
<MRCValue> </MRCValue>
</MRC>
</price>
</item>
</PriceType>
</storePricesAdd>
Ссылка на чек продажи в чеке возврата
<cashierName> </cashierName>
<cashierCode> </cashierCode>
<type> </type>
<POSsale> </POSsale>
<shiftNumSale> </shiftNumSale>
<receiptNumSale> </receiptNumSale> (для всего чека)
<amount> </amount>
<item>
<position> </position>
<positionSale> </positionSale> (для отдельной позиции)
<article> </article>
<quantity> </quantity>
<price> </price>
<total> </total>
<stockId> </stockId>
<enterType> </enterType>
<discount>
<programId> </programId>
<programName> </programName>
<programType> </programType>
<amount> </amount>
</discount>
</item>
Контроль алкокодов для акцизных марок
<egaisType></egaisType> ((int), признак акцизного товара; 0 – неакцизный товар, 1 – маркированный товар,
2 – немаркированный, 3 - специальный маркируемый)
<ProductAlcCodes> (присутствует, если egaisType = 1)
<AlcCode></AlcCode> (код алкогольной продукции, может быть от 0 до множества)
</ProductAlcCodes>
Открытие смен
<?xml version="1.0" encoding="UTF-8"?>
<shiftOpen storeId="1" posNum="7" shiftNum="32">
<version> </version>
<dateOpen> </dateOpen> (дата открытия смены)
<cashierCode> </cashierCode> (код кассира)
<cashierName> </cashierName> (имя кассира)
</shiftOpen>
Сведения о ККТ
<kkm_shift_number> </kkm_shift_number> (номер смены по ККТ)
<kkm_serial_number> </kkm_serial_number> (заводской номер ККТ)
<kkm_registration_number> </kkm_registration_number> (регистрационный номер ККТ)
<kkm_model_name> </kkm_model_name> (название модели ККТ)
Суммы за смену, полученные от ККТ
<kkm_saleAmount> </kkm_saleAmount> (сумма продаж)
<kkm_returnAmount> </kkm_returnAmount> (сумма возвратов)
<kkm_saleCount> </kkm_saleCount> (количество чеков продажи)
<kkm_returnCount> </kkm_returnCount> (количество чеков возврата)
<kkm_withdrawal> </kkm_withdrawal> (сумма изъятия из денежного ящика)
<kkm_insertion> </kkm_insertion> (сумма внесения в денежный ящик)
Дата и время
<receipt storeId="1" posNum="7" shiftNum="32" receiptNum="4">
<receiptDateTime> </receiptDateTime> (дата и время закрытия чека)
<receiptOpenDateTime> </receiptOpenDateTime> (дата и время открытия чека)
<receiptSubtotalDateTime> </receiptSubtotalDateTime> (дата и время подытога)
<cashierName>Петров</cashierName>
Сведения об операциях внесения/изъятия, производимых на кассе
<cashBox storeId="1" posNum="7" shiftNum="34" docNum="2">
<version> </version>
<dateOper> </dateOper>
<dateOper> </dateOper> (дата операции)
<operCode> </operCode> (код операции)
<cashierCode> </cashierCode>
<cashierName> </cashierName>
<saleAmount> </saleAmount> (сумма внесения)
<saleAmount_before> </saleAmount_before> (сумма в денежном ящике до внесения)
</cashBox>
<?xml version="1.0" encoding="UTF-8"?>
<shiftOpen storeId="1" posNum="7" shiftNum="32">
<version> </version>
<dateOper> </dateOper> (дата операции)
<operCode> </operCode> (код операции)
<cashierCode> </cashierCode>
<cashierName> </cashierName>
<saleAmount> </saleAmount> (сумма изъятия)
<saleAmount_before> </saleAmount_before> (сумма в денежном ящике до изъятия)
</cashBox>
Свойства товаров (весь справочник, в Супермаг Плюс – справочник «Размеры»):
<Properties fullness=”F”>
<version=””>
<Property> // minOccurs=”0” maxOccurs="unbounded"
<id></id>
<name></name> (название дополнительной характеристики в Супермаг Плюс)
<PropertyValue>
<value></value>
</PropertyValue>
</Property>
</Properties>
Налоговые группы (весь справочник):
<taxes fullness=”F”>
<version=””>
<group>// minOccurs=”0” maxOccurs="unbounded"
<id></id>
<code></code> (в Супермаг Плюс – «Тип группы» – украинские группы А,B,C…)
<tax> // minOccurs=”0” maxOccurs="unbounded"
<id></id>
<name></name>
<sequence></sequence> (в Супермаг Плюс – «Приоритет начисления налога)
<percent></percent>
</tax>
</group>
<taxes/>
Структура магазинов (отделы) (весь справочник):
<stocks fullness=”F”>
<version=””>
<store storeId=””> // minOccurs=”0” maxOccurs="unbounded"
<stock> // minOccurs=”0” maxOccurs="unbounded"
<id></id> («Код магазина» в Супермаг Плюс)
<name></name>
</stock>
</store>
</stocks>
Классификатор товаров (весь справочник):
<classif fullness=”F”>
<version=””>
<group> // minOccurs=”0” maxOccurs="unbounded"
<id></id>
<owner></owner>
<name></name>
</group>
</classif>
Товары (может быть весь справочник или только изменения):
<updateItems fullness=”F/I”>
<version=””>
<item>// minOccurs=”0” maxOccurs="unbounded"
<article></article>
<name></name>
<measure></measure> (Сокращение)
<measprec></measprec> (Точность – 1, 0.001, 0.01, 0.1)
<groupId></groupId> (ссылка на узел классификатора)
<egaisType></egaisType> ((int), признак акцизного товара; 0 – неакцизный товар, 1 – маркированный товар,
2 – немаркированный, 3 - специальный маркируемый)
<propertyId></PropertyId> (в Супермаг Плюс – «Свойство», в Супермаг Плюс к товару может быть
привязано только одно свойство)
<taxgroupId></taxgroupId>
<addProperty> // minOccurs=”0” maxOccurs="unbounded"
<id></id> («Код доп. характеристики» в Супермаг Плюс)
<value></value>
</addProperty>
<barcode> // minOccurs=”0” maxOccurs="unbounded"
<id></id> (сам штрихкод)
<PropertyValue></PropertyValue>
<quantity></quantity> (в Супермаг Плюс – «Количество для штрихкода»)
</barcode>
</item>
</updateItems>
PropertyId привязывается к товару в УКМ 4, как тип свойства (используется для выбора значения на кассе при продаже по артикулу).
<PropertyValue> из <barcode> привязывается к штрих-коду товара как значение.
<addProperty> хранится как денормализованный справочник.
Значение параметра <NOPDF> должно быть в следующем виде:
<nopdf article="ХХХХХ" code="ХХХ" bname="ХХХ ХХХ" alc="ХХХ" volume="ХХХ"/>.
В целом, запись о маркировке товара должна выглядеть таким образом:
<NOPDF> <nopdf article="ХХХХХ" code="ХХХ" bname="ХХХ ХХХ" alc="ХХХ" volume="ХХХ"/> </NOPDF>.
Если внутри значения атрибута bname необходимо использовать кавычки, то заменять их нужно по следующим правилам:
Наборы – (может быть весь справочник или только изменения):
<kit fullness=”F/I”>
<version=”1.0”>
<item article =””> // minOccurs=”0” maxOccurs="unbounded"
<subItem> // minOccurs=”0” maxOccurs="unbounded"
<article></article> (артикул товара, входящего в набор)
<quantity></quantity> (количество товара, десятичное число)
</subItem >
</item>
</kit>
Розничные цены магазина (может быть весь справочник или только изменения):
<storePrices fullness=”F/I” storeId=””>
<version=”1.1”>
<item article=””>// minOccurs=”0” maxOccurs="unbounded"
<price> // minOccurs=”0” maxOccurs="1"
<value></value>
<minprice></minprice> (минимальная цена продажи в денежных единицах)
<MRC> // minOccurs=”0” maxOccurs="unbounded"
<MRCValue> </MRCValue> (значение цен из истории)
</MRC>
</price>
</item>
</storePrices>
Если в теге значения цены и мин. цены пропущены (то есть только теги <price> </price>), то соответствующая запись в прайс-листе в УКМ 4 будет удалена.
Флаг полной выгрузки приводит к тому, что УКМ 4 удаляет текущее содержание прайс-листа и загружает его новое содержимое.
Продавцы магазина (весь справочник):
<storeSellers fullness=”F” storeId=””>
<version=””>
<seller> // minOccurs=”0” maxOccurs="unbounded"
<id></id>
<name></name>
</seller>
</storeSellers>
Назначение товаров на отделы магазина (весь справочник):
<itemStoreStock fullness=”F” storeId=””>
<version=””>
<item article=””>
<stockId></stockId> // minOccurs=”0” maxOccurs="1"
</item>
</itemStoreStock>
Кассиры магазина (весь справочник):
<storeCashiers fullness=”F” storeId=””>
<version=””>
<cashier> // minOccurs=”0” maxOccurs="unbounded"
<id></id> (целое число больше 0)
<name></name> (символьная строка – 40 символов)
<INN> (строка 12 символов, может быть пустой (для совместимости: может отсутствовать))
<password></password> (символьная строка – 15 символов. Выгружается без шифрования)
</cashier>
</storeCashiers>
Значение параметра <NOPDF> передается в виде:
<nopdf article="ХХХХХ" code="ХХХ" bname="ХХХ ХХХ" alc="ХХХ" volume="ХХХ"/>.
В связи с добавлением в УКМ 4 функционала автоматического мапирования ставок НДС, со стороны УКМ 4 имеются новые требования к загрузке налоговых ставок через конвертеры. Для работы алгоритма автоматического выбора индекса ставки для ККТ при передаче данных о налогах через конвертеры УКМ 4 требуется указанием формулы налоговой ставки НДС в заданном виде.
Список ставок НДС, ожидаемых конвертерами УКМ 4
№ | Рекомендуемое значение ставки до 01.01.2019 | Рекомендуемое значение ставки после 01.01.2019 | Допустимые варианты значений | Описание |
---|---|---|---|---|
1 | 18% | 20% | 18.00%, 20.00% | НДС 18%/ НДС 20% |
2 | 10% | 10% | 10.00% | НДС 10% |
3 | 0% | 0% | 0.00% | НДС 0% |
4 | Не облагается | Не облагается | Без НДС | |
5 | 18/118% | 20/120% | НДС 18/118 / НДС 20/120 | |
6 | 10/110% | 10/110% | НДС 10/110 |
1. В случае, если формулы ставок отличаются от рекомендуемых, то товары могут быть добавлены в чек с некорректной ставкой налога.
Примечание: Для ставок НДС 10%, 18%, 20% допустима форма передачи процента ставки: "XX%" и "XX.00%", например, 10.00% является допустимым значением ставки при передаче через конвертер.
2. Регистр для значения ставки Не облагается при передаче данных конвертеру можно указывать любой.
3. Ставка Не облагается может отсутствовать в справочнике налогов в нескольких случаях (это не вызовет проблем в работе кассовой системы):
УКМ 4 выгружает во внешнюю систему информацию двух типов:
- чеки;
- кассовая смена (в виде совокупности чеков по смене).
Выгружаются только нормально завершенные чеки (result=0) с операциями продажи, возврата, возврата по чеку и восстановления (type = 0, 1, 4 и 5).
Чеки выгружаются в каталог, указанный в настройках обеих систем, немедленно при появлении их на сервере УКМ 4. Каждый чек помещается в отдельный файл.
TAGNAME = Receipt.
Смены выгружаются по мере появления на сервере информации о закрытии смен. Информация по каждой смене выгружается в отдельный файл.
Смены выгружаются по мере появления на сервере информации о закрытии смен. По смене существует возможность ручной выгрузки (повторные выгрузки). Информация по каждой смене выгружается в отдельный файл.
TAGNAME = SHIFT.
Файлы с чеками: TAGNAME_[Store]_[Cash]_[Shift]_[Receipt]_[Number].xml.
TAGNAME – название головного тега документа (регистр букв не важен).
Store – идентификатор магазина. Может быть переменной длины.
Cash – номер кассы. Может быть переменной длины.
Shift – номер фискальной смены. Может быть переменной длины.
Receipt – номер чека в смене. Может быть переменной длины.
Number – порядковый номер документа (целое число). Электронной обработки номер не имеет, важен только для регулирования последовательности документов с прочими одинаковыми элементами в имени файла.
Пример:
Receipt _[1112]_[15]_[254]_[32]_[1].xml – чек из магазина 1112, касса 15, смена 254, чек 32, экземпляр файла в каталоге №1.
Файлы со сменами: TAGNAME_[Store]_[Cash]_[Shift]_[Number].xml.
Перед настройкой сервера УКМ 4 убедитесь, что в настройках внешней системы указаны следующие параметры:
Настройки в УКМ 4:
Для подключения конвертера Супермаг Плюс XML экспорт перейдите в раздел веб-интерфейса Настройка сервера и оборудования/Конвертеры. В открывшемся окне нажмите кнопку +Добавить. Далее выберите из списка конвертер и нажмите +Создать. После создания конвертера откроется окно его настройки:
Название – в поле указывается название конвертера (по умолчанию присваивается значение типа добавляемого конвертера).
Запускается – указывается служба, через которую будет осуществляться обмен данными (при условии, что пользователь имеет право доступа к ресурсам). Существуют следующие варианты значений:
Сервер – обмен будет осуществляться через серверную часть УКМ 4.
Терминал – обмен будет осуществляться через клиентскую (терминальную) часть УКМ 4.
Магазины – для выбора магазинов, в которых будет действовать конвертер, кликните по ссылке Добавить магазины.
Экспорт средств оплаты – в данном подменю можно установить пользовательскую кодировку средств оплаты. Поля для настройки станут доступны, если в выбранном магазине используется более одного средства оплаты:
Каталог для выгрузки данных – в поле указывается путь до каталога, куда УКМ 4 помещает файлы выгрузки данных.
Игнорировать поврежденные чеки – при включенном флаге информация по чекам, данные которых повреждены, передаваться не будет.
Выгружать оперативные чеки – при включенном параметре передача данных по чеку будет производиться сразу после его печати.
Архивировать данные – если включить данный флаг, то файлы выгрузки, после обработки конвертером, будут сохранены в виде архива в каталоге обмена данными.
При первом подключении выгружать – возможные варианты:
От начала открытой смены на момент подключения конвертера – после сохранения настроек конвертера будет произведена выгрузка данных по последней (открытой) смене и далее по мере появления на сервере информации о закрытии смен.
С момента подключения конвертера – после сохранения настроек конвертера выгрузка данных будет производиться по мере появления на сервере информации о закрытии смен.
Внимание! В данном описании перечислены только новейшие изменения. Полную версию файлов экспорта можно найти здесь.
<receipt storeId=”” posNum=”” shiftNum=”” receiptNum=””>
<version=””>
<receiptDateTime></receiptDateTime> (время закрытия чека)
<cashierCode></cashierCode> (код кассира)
<cashierName></cashierName> (имя кассира)
<type></type>
<amount>/< amount> (сумма чека, уменьшенная на величину скидок)
<item> // minOccurs=”1” maxOccurs="unbounded"
<article></article>
<barcode></barcode>
<egaisBarcode>5453453,352342,5645564,34523542</egaisBarcode> (штриховые коды алкогольных марок PDF417, если товар является
алкогольной продукцией и кассиром была считана с бутылки акцизная марка
(или несколько марок для товаров-наборов))
<NOPDF></NOPDF> (содержание QR кода, если товар является алкогольной продукцией
и кассиром был считан внутренний QR-код, наклеенный на бутылку)
<quantity></quantity>
<price></price> (цена товара по прайс-листу)
<total></total> (стоимость позиции, уменьшенная на величину скидок)
<stockId></stockId> (отдел)
<Property></Property> (идентификатор свойства товара из нормализированного хранилища.
В случае нескольких значений выбирается случайным образом)
<PropertyValue></PropertyValue> (значение свойства товара)
<discount> // minOccurs=”0” maxOccurs="unbounded" (выгружаются скидки, которые привели к изменению суммы продажи)
<programId></programId> (код скидки в УКМ 4)
<programName></programName> (название скидки в УКМ 4)
<programType></programType> (тип скидки в УКМ 4 (значение поля trm_out_receipt_discounts.efts) integer)
<amount></amount> (значение скидки – положительное число)
<discCardNumber></discCardNumber> (номер диск.карты, но не клубной карты!)
</discount>
<addition> // minOccurs=”0” maxOccurs="unbounded" (наценки, которые привели к изменению суммы продажи)
<programId></programId> (код скидки в УКМ 4)
<programName></programName> (название скидки в УКМ 4)
<programType></programType> (тип скидки в УКМ 4 (значение поля trm_out_receipt_discounts.efts) integer)
<amount></amount> (значение скидки – положительное число)
<discCardNumber></discCardNumber> (номер диск.карты, но не клубной карты!)
</addition>
<enterType></enterType> (способ ввода товара: 0 – сканером, 1 – с клавиатуры, 2 – по «горячей» клавише)
<sellerId></sellerId>
<sellerName></sellerName> (фамилия продавца)
</item>
<gift> // minOccurs=”1” maxOccurs="unbounded"
<article></article> (артикул товара, выданного как подарок)
<programId></programId> (ID скидки в УКМ 4, которая инициировала выдачу данного подарка)
<programName></programName>
<quantity></quantity> (количество товара-подарка)
</gift>
<payment> // minOccurs=”1” maxOccurs="unbounded" (оплаты по чеку)
<paymentId></paymentId> («тип» средства оплаты: если не включено мапирование средств оплаты
в настройках конвертора экспорта или не указан код,
в который надо мапировать, то коды присваиваются по следующим правилам:
0 – наличные;
101 – все средства оплаты, связанные с банковскими авторизациями и голосовыми/пустыми серверами авторизаций в УКМ 4;
102 – ПС и ПК;
103 - внутренние счета)
<paymentName></paymentName> (название средства оплаты в УКМ 4:
Для кода 0 – Наличные;
Для кода 101 – Банковская карта;
Для кода 102 – Подарочный сертификат;
Для кода 103 – Оплата баллами)
<paymentAmount></paymentAmount>
</payment>
</receipt>
Смена:
<shift storeId=”” posNum=”” shiftNum=””>
<dateClose>/<dateClose>
<cashierCode></cashierCode> (кассир, закрывший смену)
<cashierName></cashierName>
<saleAmount></saleAmount> (сумма всех чеков продажи за смену (сумма чека за минусом скидок))
<returnAmount></returnAmount> (сумма всех чеков возвратов за смену (суммы чеков с учётом восстановления скидок))
<saleCount></saleCount>
<returnCount></returnCount>
<receipt storeId=”” posNum=”” shiftNum=”” receiptNum=””>//minOccurs=”0” maxOccurs = "unbounded"
<receiptNum></receiptNum >
<receiptDateTime></receiptDateTime>
<cashierCode></cashierCode> (код кассира)
<cashierName></cashierName> (имя кассира)
<type></type>
<amount>/< amount> (сумма чека, уменьшенная на величину скидок)
<item> // minOccurs=”1” maxOccurs="unbounded"<article></article>
<barcode></barcode>
<egaisBarcode>5453453,352342,5645564,34523542</egaisBarcode> (штриховые коды алкогольных марок PDF417, если товар
является алкогольной продукцией и кассиром была считана
с бутылки акцизная марка (или несколько марок для товаров-наборов))
<NOPDF></NOPDF> (содержание QR кода, если товар является алкогольной продукцией
и кассиром был считан внутренний QR-код, наклеенный на бутылку)
<quantity></quantity>
<price></price> (цена товара по прайс-листу)
<total></total> (стоимость позиции, уменьшенная на величину скидок)
<stockId></stockId>
<Property></Property> (идентификатор свойства товара из нормализированного хранилища;
в случае нескольких значений выбирается случайным образом)
<PropertyValue></PropertyValue>
<discount> // minOccurs=”0” maxOccurs="unbounded" (выгружаются скидки, которые привели к изменению суммы продажи)
<programId></programId> (код скидки в УКМ 4)
<programName></programName> (название скидки в УКМ 4)
<programType></programType> (тип скидки в УКМ 4 (значение поля trm_out_receipt_discounts.efts) integer)
<amount></amount> (значение скидки – положительное число)
<discCardNumber></discCardNumber> (номер диск.карты, но не клубной карты!)
</discount>
<addition> // minOccurs=”0” maxOccurs="unbounded" (наценки, которые привели к изменению суммы продажи)
<programId></programId> (код скидки в УКМ 4)
<programName></programName> (название скидки в УКМ 4)
<programType></programType> (тип скидки в УКМ 4 (значение поля trm_out_receipt_discounts.efts) integer)
<amount></amount> (значение скидки – положительное число)
<discCardNumber></discCardNumber> (номер диск.карты, но не клубной карты!)
</addition>
<enterType></enterType>
<sellerId></sellerId>
<sellerName></sellerName>
</item>
<gift> // minOccurs=”1” maxOccurs="unbounded"
<article></article> (артикул товара, выданного как подарок)
<programId></programId> (ID скидки в УКМ 4, которая инициировала выдачу данного подарка)
<programName></programName>
<quantity></quantity> (количество товара-подарка)
</gift>
<payment> // minOccurs=”1” maxOccurs="unbounded" (оплаты по чеку)
<paymentId></paymentId> («тип» средства оплаты: если не включено мапирование средств оплаты
в настройках конвертора экспорта или не указан код,
в который надо мапировать, то коды присваиваются по следующим правилам:
0 – наличные;
101 – все средства оплаты, связанные с банковскими авторизациями и голосовыми/пустыми серверами авторизаций в УКМ 4;
102 – ПС и ПК;
103 - внутренние счета)
<paymentName></paymentName> (название средства оплаты в УКМ 4:
Для кода 0 – Наличные;
Для кода 101 – Банковская карта;
Для кода 102 – Подарочный сертификат;
Для кода 103 – Оплата баллами)
<paymentAmount></paymentAmount>
</payment>
</receipt>
</shift>