Оглавление |
---|
УКМ 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.
ВНИМАНИЕ!
В данной статье приведены только настройки, необходимые для корректной работы конвертера Экспорт XML. Ознакомиться с подробным описанием структуры файлов экспорта можно ЗДЕСЬ.
Настройка интерфейса сервера УКМ 4 для передачи данных во внешнюю систему
Перед настройкой сервера УКМ 4 убедитесь, что в настройках внешней системы указаны следующие параметры:
...
указан каталог для получения данных из УКМ 4.
...
Настройки в УКМ 4:
- Создать каталог для передачи данных из УКМ 4 во внешнюю систему.
Для подключения конвертера XML Супермаг Плюс XML экспорт, перейдите в раздел веб-интерфейса Настройка сервера и оборудования – Конвертеры. В открывшемся окне нажмите кнопку +Добавить. Далее выберите из списка конвертер и нажмите +Создать:
...
Название – в поле указывается название конвертера (по умолчанию, присваивается значение типа добавляемого конвертера).
...
С момента подключения конвертера – после сохранения настроек конвертера выгрузка данных будет производиться по мере появления на сервере информации о закрытии смен.
Структура данных, передаваемых из УКМ 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>
Ссылка на чек продажи в чеке возврата
<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>
Открытие смен
<?xml version="1.0" encoding="UTF-8"?>
<shiftOpen storeId="1" posNum="7" shiftNum="32">
<version> </version>
<dateOpen> </dateOpen> (дата открытия смены)
<cashierCode> </cashierCode> (код кассира)
<cashierName> </cashierName> (имя кассира)
</shiftOpen>
Смена
<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>
Сведения о ККТ
<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> (сумма внесения в денежный ящик)
Сведения об операциях внесения/изъятия, производимых на кассе
<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>