Page tree
Skip to end of metadata
Go to start of metadata

Назначение конвертера

Конвертер предназначен для загрузки информации в базу данных кассовой системы из файлов, подготовленных торговой системой (бэк-офисом).

Передача информации в кассовую систему

Передача происходит с помощью файлов. Каждый тип информации передаётся с помощью отдельного файла, который имеет название, соответствующее типу передаваемой информации. В одном файле может содержаться только один тип информации.

Формат представления информации – XML. Кодировка – UTF-8. Десятичный разделитель – точка (УКМ 4 допускает разделитель запятую).

Поля, связанные с передачей ИНН (кассира, поставщика и т.д.) УКМ 5 проверяет на соответствие правилам формирования в РФ, УКМ 4 – не проверяет.

Если текстовые поля (например, названия товаров, магазинов и т.д.) содержат служебные символы языка XML, то они заменяются на следующие последовательности:

Служебный символ

Подстановка в XML

<

>

&

&

"

"

'

'

Пример:

Название товара – Конфеты “M&Ms” – должно быть передано в следующем виде:

<updateItems fullness=”I”>

       <version=”1.0”>

       <item>

              <article>002565</article>          

              <name>Конфеты &quot;M&amp;Ms&quot;</name>

…

Правила взаимодействия торговой системы и кассовой

Торговая система выгружает файлы с информацией в каталог, доступный для конвертера. Конвертер должен иметь доступ к данному каталогу с правами на чтение, запись и удаление файлов.

Торговая система должна сначала сформировать файл, а затем сделать его доступным для кассовой системы путем переименования файла (создание и переименование должны происходить в рамках одного дискового пространства, без копирования файла с одного диска на другой).

После обработки файла кассовая система удаляет его из каталога (переносит в каталог с архивом загруженных файлов).

В рамках каждой отдельной выгрузки торговая система выгружает (делает доступными) файлы в следующем порядке перечисления типов информации:

Типы передаваемой информации

Тип информации

Имя файла и головного тега

Возможности выгрузки

Общая информация (передаётся на все кассы торговой сети) 

Регионы

regions

Только выгрузка изменений (флаг I)

Типы магазинов

storeTypes

Только выгрузка изменений (флаг I)

Магазины

stores

Только выгрузка изменений (флаг I)

Справочник налогов

taxes

Всегда выгружается полный справочник (флаг F)

Товарный классификатор

classif

Всегда выгружается полный справочник (флаг F)

Товары (включая штрихкоды)

updateItems

Как полная выгрузка (флаг F), так и выгрузка изменений (флаг I)

Дополнительные свойства штрихкодовbarcodePropertyВсегда выгружается полный справочник (флаг F)

Размеры

properties

Всегда выгружается полный справочник (флаг F)

Товарные наборы

kit

Как полная выгрузка (флаг F), так и выгрузка изменений (флаг I)

Пик-листы

picklists

Как полная выгрузка (флаг F), так и выгрузка изменений (флаг I)

Отделы магазинов

stocks

Всегда выгружается полный справочник (флаг F)

Справочник кодов ТН ВЭД

TNVDCode

Всегда выгружается полный справочник (флаг F)

Справочник поставщиков

suppliers

Всегда выгружается полный справочник (флаг F)

Информация для магазинов (в одном файле может находиться информация только для одного магазина) 

Цены на товары

storePrices

Как полная выгрузка (флаг F), так и выгрузка изменений (флаг I)

Дополнительные ценыstorePricesAddВсегда выгружается полный справочник (флаг F)

Продавцы

storeSellers

Всегда выгружается полный справочник (флаг F)

Кассиры

storeCashiers

Всегда выгружается полный справочник (флаг F)

Товары в отделах

itemStoreStock

Всегда выгружается полный справочник (флаг F)

Внимание! В именах файлов и названиях тегов важен регистр букв – необходимо точное соответствие названиям, приведенным в данной таблице. 

Для УКМ 5 в regions, stores, storeTypes имена xml-файлов должны быть в единственном числе, иначе конвертер их проигнорирует.

Имена файлов

Имена файлов имеют формат TAGNAME_[Store]_[Number]_[P]_[Error].xml, где:

TAGNAME – название выгружаемой информации; должно совпадать с названием головного тега в XML-файле.

Store – код (идентификатор) магазина в торговой системе; может быть переменной длины.

Параметр Store может содержать любые печатные английские символы, кроме символа пробела.

Для файлов regions, stores, storeTypes, taxes, updateItems, classif и picklists параметр Store не указывается (т.к. информация предназначена для всех магазинов).

Number – порядковый номер файла с информацией данного типа. Электронной обработки номер не имеет, он важен только для регулирования последовательности обработки файлов конвертером. Формат номера – целое положительное число.

P – признак полноты информации в файле:

  • – файл содержит полный перечень элементов ("полная" выгрузка)
  • – файл содержит неполный перечень элементов ("инкрементальная" выгрузка)

Error – признак ошибки; устанавливается конвертером в случае возникновения любых ошибок при работе с данным файлом.

Для всех частей имени файла ВАЖЕН регистр букв, он должен в точности соответствовать названиям, указанным в таблицах данной документации. Это же относится и к регистру букв в названии головного тега в XML-файле.

Примеры:

1) storePrices_[$112]_[1]_[I].xml – файл с ценами, где:

 [$112] – код магазина во внешней системе;

[1] – пакет номер 1;

[I] – файл содержит только изменения цен (новые и изменившиеся значения).


2) classif_[2]_[F].xml – классификатор товаров (товарные группы), где:

[2] – пакет номер 2;

[F] – файл содержит полный товарный классификатор.

Порядок формирования номеров файлов

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

Например, в каталоге есть файлы classif_[1]_[F], classif_[2]_[F], classif_[3]_[F]. Если в этот момент торговая система еще раз выгружает товарный классификатор, то он его выгрузит в файл с именем classif_[4]_[F]. Флаг полного/неполного наполнения файла не влияет на нумерацию файлов (т.е. нумерация сквозная для файлов с одним типом документов без учета полного/неполного их содержимого).

Номер файла имеет значение для кассовой системы только в момент чтения информации из каталога. Это означает, что, если при выгрузке торговой системой очередной информации, в каталоге нет файлов с информацией данного типа, то файл может быть выгружен торговой системой с номером 1 (т.е. нумерация может начаться заново).

Для упрощения процедуры формирования имён файлов, торговая система может вести сквозную нумерацию своих выгрузок и каждому файлу присваивать очередной порядковый номер или только младшие разряды номера выгрузки (например, 4 младшие разряда).

Правила обработки файлов конвертером 

1. Конвертер обрабатывает файлы с параметром I (increment) следующим образом:

    - если элемент отсутствует в кассовой системе, то он добавляется в систему;

    - если элемент есть в кассовой системе, то существующее значение полностью замещается на новое.

Из этого следует, что как в полной, так и в неполной выгрузке сами элементы должны содержать полную информацию о них. Например, информация о товаре должна содержать перечень всех штрихкодов, привязанных к данному товару, а информация о пик-листе должна содержать полный перечень товаров, входящих в него.

2. При загрузке файлов с признаком F, соответствующая информация в кассовой системе полностью заменяется на информацию из загружаемых файлов, с учетом типа информации: для всех магазинов или только для конкретного. Если изменений в каких-либо уже загруженных в кассовую систему файлах во внешней системе не было, то в кассовой системе новые файлы соответствующих типов не создаются.

Данное правило не распространяется на файлы с товарами updateItems – их загрузка всегда происходит по принципу инкрементной загрузки (т.е. так как будто у файла всегда установлен признак I). 

Флаг полной выгрузки для товаров учитывается только для формирования последовательности их обработки во входном каталоге (см. пункт 5). 

3. Если выгруженный файл любого типа не содержит тегов с информацией, то он не будет воспринят как ошибочный, никаких изменений после его обработки не произойдёт.

4. Кассовая система обрабатывает каждый файл как транзакцию, т.е. он или обрабатывается целиком или не обрабатывается вообще. Каждый файл обрабатывается независимо от другого.

5. При обработке файлов во входном каталоге для каждого типа информации кассовая система ищет файл полной выгрузки с наибольшим номером, загружает его, а затем – и все последующие файлы с инкрементной выгрузкой (этого же типа). Другими словами, если во входном каталоге накопилось много файлов одного типа, то загрузка начнётся с файла с флагом полной выгрузки с максимальным номером.

6. Атрибуты, указанные в имени файла (название файла, признак полного/неполного содержания, код магазина) должны в точности соответствовать аналогичным полям в первом теге файла (включая регистр букв). Если они не совпадают, то файл будет помечен как содержащий ошибку и будет пропущен.

7. Кассовая система переносит все файлы из входного каталога в подкаталог Archive, добавляя к концу имени дату и время его обработки (в формате YYYYMMDDHHMMSS). При этом, если файл был загружен, то в конец имени дописывается Load, если файл был пропущен – Ignor.

8. Если при обработке файла возникли ошибки любого типа (как связанные с доступом к файлу, так и с его содержанием), то он не обрабатывается целиком, в конец имени добавляется Error и он переносится в подкаталог Archive. Работа конвертера продолжается далее в штатном режиме.

Версионность

Каждый файл с данными в своем начале должен содержать тег version="MJ.MN", описывающий версию формата данных соответствующего типа информации. Номера представляются в виде целого положительного числа (например, version="1.0").

Здесь MJ означает номер «мажорной» версии, MN означает номер «минорной» версии.

Логика изменения номеров версий заключается в следующем:

- если в новой версии формата данных произошли изменения, в результате которых новый формат данных стал несовместим с прежним форматом, то номер «мажорной» версии увеличивается на 1;

- если изменения совместимы с прежним форматом, то увеличивается номер «минорной» версии.

На практике это означает, что при изменении MJ-номера формата, версия конвертера, работающая с прежним форматом, не будет обрабатывать файлы с новым форматом и, наоборот, версия конвертера с новым форматом не будет обрабатывать файлы со старым форматом.

Если изменился MN-номер (но не изменилась MJ-номер), то файлы будут обрабатываться, но «незнакомые» для конвертера теги будут пропущены.

Структуры файлов импорта

Условные обозначения в столбце "Обязательность":

            * – значение должно указываться;

            1:∞ – секция должна быть указана хотя бы один раз;

            0:∞ – секция может быть не указана;

            1:1 – секция должна быть, и только одна.

REGIONS – Регионы


Примечание

Обяз.

Формат в конвертере

<regions

fullness="I">


Значение всегда указывается как I!

*


  <version="">

Значение указывается в кавычках

*

String(20)

   <region>


1:∞


      <code> 

Код региона

*

Int(11)

      <name>

Название региона

*

String(100)

   </region>




</regions>




Особенности

УКМ 4 – не загружает файл.

СуперМаг+ – не выгружает файл.

STORETYPES – Типы магазинов


Примечание

Обяз.

Формат в конвертере

<storeTypes

fullness="I">


Значение всегда указывается как I!

*


<version="">

Значение указывается в кавычках

*

String(20)

  <storeType>


1:∞


     <code>

Код типа магазина

*

Int(11)

     <name>

Название типа магазина

*

String(100)

</storeType>




Особенности

УКМ 5 – файл загружает, но в функционале не использует.

УКМ 4 – не загружает файл.

СуперМаг+ – не выгружает файл.

STORES – Магазины


Примечание

Обяз.

Формат в конвертере

<stores

fullness="I">


Значение всегда указывается как I!

*


<version="">

Значение указывается в кавычках

*

String(20)

<store>


1:∞


  <code>

Код магазина в торговой системе!

*

String(100)

  <name>

Название магазина

*

String(100)

  <jurName>

Название юр. лица


String(100)

  <address>

Адрес магазина


String(100)

  <INN>

ИНН юр. лица


String(40)

  <KPP>

КПП


String(40)

  <phone>

Телефон


String(40)

  <active>

Активный/неактивный

*

Boolean

  <egaisIP>

IP-адрес и порт УТМ


String(255)

  <CFA>

Код ЦФО – открытый идентификационный код, определяющий центр финансовой ответственности (идентификатор магазина для казначеев)


String(255)

  <validatorIP>

IP-адрес и порт валидатора


String(255)

  <fsrarID>

Идентификатор организации в ФС РАР


String(255)

  <prismaIP>

IP-адрес и порт системы Prisma


String(255)

  <storeIP>

IP модуля интеграции магазина


String(100)

  <inputURL>

Полный URL входного каталога модуля интеграции магазина


String(255)

  <outputURL>

Полный URL выходного каталога модуля интеграции магазина


String(255)

  <region>

Код региона, к которому относится магазин


Int(11)

  <storeType>

Код формата магазина из справочника форматов магазинов


Int(11)

</store>




</stores>




Особенности

УКМ 4 – не загружает файл.

СуперМаг+ – не выгружает файл.

TAXES – Налоговые группы


Примечание

Обяз.

Формат в конвертере

<taxes

fullness=”F”>


Значение всегда указывается как F!

*


<version="">

Значение указывается в кавычках

*

String(20)

<group>


1:∞


    <id>

Идентификатор налоговой группы

*

Int(11)

    <code>

Тип группы – украинские группы А, Б, В…


String(20)

One of А, Б, В, Г, Д, Е

    <tax>

1:∞



        <id>

Идентификатор налога

*

Int(11)

        <name>

Название налога

*

String(40)

        <sequence> 

Приоритет вычисления налога – сначала рассчитываются налоги с минимальным значением, затем с бОльшим значением

*

Int(4)

        <percent>

Процент – значение указывается в виде строки "20%"

*

String(20)

    </tax>




</group>




</taxes>




Ограничения

СуперМаг+ умеет работать в торговой сети, магазины которой имеют разный набор налогов, назначенных на одинаковый товары. УКМ 4 и УКМ 5, в конечном счете, не поддерживают этот функционал. Соответственно, конвертер XML также не поддерживает такую структуру.

СуперМаг+ выгружает ставки 20%, 10% и 0%. Причем, СуперМаг+ не различает ставку 0% и «НДС не облагается»: в обоих случаях он выгружает ставку 0%.

Ставка 0% в УКМ 4 и в УКМ 5 интерпретируется как «Не облагается НДС».

УКМ 4 принимает записи в формате ХХ% и формате ХХ.ХХ%; УКМ 5 принимает записи только в формате ХХ%.

Конвертором невозможно загрузить расчетные ставки (10/110 и 20/120). 

CLASSIF – Классификатор товаров


Примечание

Обяз.

Формат в конвертере

<classif

fullness=”F”>  


Значение всегда указывается как F!

*


<version="">

Значение указывается в кавычках

*

String(20)

<group>


1:∞


     <id>


*

String(40)

     <owner>

Ссылка на узел выше по иерархии – если такого узла нет, то символ "0" (ноль)

*

String(40)

     <name>


*

String(80)

</group>




</classif>




UPDATEITEMS – Товары


Примечание

Обяз.

Формат в конвертере

<updateItems

fullness=”F/I”>


Значение может быть F или I, но всегда обрабатывается как I

*


<version="">

Значение указывается в кавычках

*

String(20)

<item>


1:∞


   <article>


*

String(40)

   <name>


*

String(255)

   <measure>

Сокращение (шт, кг, л)


String(40)

   <measprec>

Количество знаков в дробной части; точность – 1, 0.001, 0.01, 0.1

*

String(one of 1; 0.1; 0.01; 0.001)

   <groupId>

Ссылка на узел классификатора


String(40)

   <egaisType>

Тип маркировки товара

*

Int(11)

Null или 0 – неакцизный товар

1 – акцизный алкоголь (требуется регистрация в УТМ)

3 – маркированное изделие (в том числе, табак)

4 - могут встречаться как маркированные, так и немаркированные экземпляры товара (см. примечание ниже)

    <SubExcise>

Признак подакцизности товара

Int(11) 

0 – неподакцизный товар

1 – подакцизный товар

   <taxgroupId>

Код налоговой группы

*


   <propertyId>Доп. свойство «Размер»
String(40)

    <addProperty>

Доп. свойства0:∞
        <id>
*String(40)
        <name>

String(80)
        <value>
*String(100)
   </addProperty>


   <barcode>

Перечень штрихкодов0:∞
       <id>Непосредственно штрихкод*String(40)
       <propertyValue>

String(100)
       <quantity>«Количество» для штрихкода*Decimal(16.3)
   </barcode>


   <TNVDcode>Идентификатор записи из справочника ТН ВЭД
String(50)

   <productAlcCodes>


0:∞
      <alcCode>Специальный идентификатор кода алкогольной продукции*String(40)
</productAlcCodes>


  <supplierLink>

0:1


      <supplierINN>ИНН поставщика
String(12)
      <supplierTax>НДС поставщика из контракта с поставщиком
Возможные значения: «20%», «10%», «Не облагается»
  </supplierLink>


</item>


</updateItems>


Несмотря на то, что файл может быть выгружен с признаком полной выгрузки fullness=”F”, товарный справочник не перезаписывается (как вывод из этого – невозможно удалить товары из справочника, но можно удалять цены). Признак полной выгрузки анализируется только для определения порядка загрузки файлов.

Правила обработки некоторых полей

barcode.id – штрихкод товара. Штрихкод уникален среди всего товарного справочника (т.е. в один и тот же момент времени в товарном справочнике один штрихкод не может быть привязан более, чем к одному товару). Т.к. штрихкоды входят в состав описания товара, то штрихкод будет привязан к тому товару, который был выгружен из торговой системы последним.

barcode.quantity – количество товара, с которым он добавляется в чек при вводе данного штрихкода. Торговая система должна устанавливать это значение следующим образом:

   - для штучного товара (товар с measprec = 0):

      - если штрихкод соответствует упаковке, то в данном поле должно быть установлено значение, равное количеству товара в упаковке;

      - в противном случае, значение должно быть равным 1;

   - для товаров с другими значениями measprec (весовых/мерных) должно быть установлено значение 0.

egaisType – значение, равное 4 (частично маркированный), обрабатывается только УКМ 4. Режим предполагает, что все экземпляры товаров с данным артикулом (кодом) имеют штрихкод формата EAN, а QR-код может отсутствовать. Идентификация товара в базе данных происходит по коду EAN. Информация из QR-кода используется для регистрации выбытия товара в ГИС "Маркировка" (тег 1162 при регистрации товара в ККТ).

Комментарии к реализации в УКМ 4 и УКМ 5

productAlcCodes – c СуперМаг+ и УКМ 4 реализован контроль за соответствием штрихкода, считанного с бутылки, введенной алкомарке. Функционал работает только для марок старого образца (68 символов); в новых марках код алкогольной продукции отсутствует. В УКМ 5 данный функционал не поддержан.

TNVDcode – первоначально, маркировка товаров предполагала, что для тега 1162 префикс кода будет формироваться на основании принадлежности товаров к группам ТН ВЭД, но в нынешнем стандарте префикс тега формируется на основании типа считанного штрихкода кода. В УКМ 5 данный функционал не поддержан.

Особенности продажи товаров по договорам комиссии или агентским договорам

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

Наиболее универсальным образом данное требование реализовано в СуперМаг+, где есть понятие договора, который связывает контрагента, товар, магазин и ставку НДС.

В УКМ 4 есть только связка контрагента, товара и ставки НДС (т.е. предполагается, что контрагент поставляет товар во все магазины с одинаковой ставкой НДС). Если выгрузка из СуперМаг+ в УКМ 4 идет на уровне магазина, то сложностей не возникает: СуперМаг+ подставляет в товарный справочник поставщика, соответствующего магазину. Однако, при централизованном управлении, когда выгрузка из СуперМаг+ происходит во все магазины, поставщик для товара выгружается только из первого (случайным образом выбранного) договора и присваивается всем магазинам.

В УКМ 5 загрузка информации о поставщиках товара через XML-конвертер не происходит. При реализации загрузки возможна правильная загрузка (в привязке к магазинам) – внутренняя структура УКМ 5 позволяет это сделать, однако для этого потребуется изменение XML-протокола. Способы реализации товаров по агентским или комиссионным договорам в УКМ 5 подробно описаны здесь и осуществляются через web-сервисы. Особенности работы с налоговыми ставками изложены тут.

Кодирование весовых товаров

При выгрузке весовых товаров следует учитывать, что ввод товара на кассе может происходить с весовой этикетки, которая содержит в себе не только код (артикул/штрихкод) товара, но и его вес.

Касса выделяет в ведённом штрихкоде вес товара, а оставшуюся часть кода использует для поиска товара в товарном справочнике (поиск происходит сначала среди штрихкодов, и если подходящий штрихкод не находится, то поиск продолжается среди артикулов). Таким образом, код товара (или штрихкод) в товарном справочнике не должен иметь «весовой» части.

Например, если на весовой этикетке имеется следующий код – ХХХХХХХККГГГС, то касса будет искать в базе данных товар с кодом (штрихкодом) ХХХХХХХ (а не ХХХХХХХ00000С) и если не найдет его, то будет выведено сообщение об ошибке.

BARCODEPROPERTY – Дополнительные свойства штрихкодов


Примечание

Обяз.

Формат в конвертере

<barcodeProperty

fullness=”F”>


Значение всегда указывается как F!

*


<version="">

Значение указывается в кавычках

*

String(20)

<property>


1:∞


   <barcode_id>Штрихкод*String(40)
   <property_id>ID свойства (уникальное)*String(40)
   <property_name>

Название свойства

*String(80)
   <property_value>Значение свойства (например notmarked)*String(100)
</property>


</barcodeProperty>


Особенности

УКМ 4 – не загружает файл.

СуперМаг+ – не выгружает файл.

PROPERTIES – Свойства товаров (в СуперМаг+ – справочник «Размеры»)


Примечание

Обяз.

Формат в конвертере

<properties

fullness=”F”>


Значение всегда указывается как F!

*


<version="">

Значение указывается в кавычках

*

String(20)

<property>


1:∞


   <id>
*String(20)
   <name>
*String(20)
   <propertyValue>
1:∞
      <value>
*String(20)
   </propertyValue>


</property>


</properties>


Особенности

В УКМ 5 нет функционала работы с размерами. Файл не загружается.

KIT – Наборы


Примечание

Обяз.

Формат в конвертере

<kit

fullness=”F/I”>


Значение может быть F или I

*


<version="">

Значение указывается в кавычках

*

String(20)

<item article="">

Значение указывается в кавычках

1:∞


  <subItem>
1:∞
      <article>Артикул товара, входящего в набор*String(40)
      <quantity>Количество товара*Decimal (16.3)
</subItem>


</item>


</kit>


Особенности

УКМ 5 – не загружает файл.

Комментарии к реализации

Устаревший функционал, предназначавшийся для реализации работы с алкогольными товарами, входящими в наборы: если в набор входил один или несколько акцизных товаров, то касса запрашивала ввод акцизных марок по количеству акцизных товаров в чеке, регистрировала их все в УТМ со штрихкодом товара-набора, а в чеке акцизные марки сохраняла в привязке к товару-набору.

Согласно актуальным не сегодняшний день правилам, алкоголь отнесен к маркированным товарам, соответственно, нельзя к одной позиции привязать несколько акцизных марок,  т.е. набор не может содержать более одного алкогольного товара – но тогда становится ненужной сама структура набора, т.к. достаточно товар-набор объявить маркированным товаром (его состав для кассы не важен).

PICKLISTS – Пик-листы


Примечание

Обяз.

Формат в конвертере

<picklists

fullness="F/I"> 


Значение может быть F или I

*


<version="">

Значение указывается в кавычках

*

String(20)

<picklist>


1:∞


<id>Уникальный идентификатор пик-листа*Int(11)
<name>Название пик-листа*String(100)
<isGlobal>Доступность во всех магазинах
0 или 1
<stores>Перечень магазинов, в которых доступен пик-лист (если isGlobal=1, то тег stores игнорируется)1:∞
     <id>

Номера магазинов указываются в следующем формате:

<id> 22 </id>
<id> 23 </id>
<id> 24 </id>

*
</stores>


<items>Перечень кодов товаров, входящих в пик-лист1:∞
     <id>
*String(40)
</items>


</picklist>


</picklists>


Особенности

УКМ 4 – не загружает файл.

В СуперМаг+ файл не выгружается.

Флаг fullness относится к перечню пик-листов, а не к составу пик-листов. Состав пик-листа должен выгружаться всегда полностью. Другими словами, если флаг fullness = F, то все имеющиеся пик-листы будут удалены (вместе с их содержимым), и будет загружен новый перечень и состав пик-листов. Если fullness = I, то новые пик-листы будут добавлены, а содержание имеющихся пик-листов будет заменено на загруженное.

isGlobal – если значение параметра равно 1, то пик-лист доступен во всех магазинах, если значение равно 0, то пик-лист доступен в магазинах, перечисленных в секции stores.

В УКМ 5, даже если указано, что пик-лист доступен во всех магазинах (isGlobal = 1), то секция stores должна присутствовать, но может быть пустой. Если она не пуста, то ее содержимое будет проигнорировано.

На экране кассира пик-листы выводятся в порядке возрастания номера ID пик-листа.

На экран кассира товары из пик-листа выводятся отсортированными по алфавиту. Если для товара не назначена цена, то в список на экране он выведен не будет.

STOCKS – Отделы магазина


Примечание

Обяз.

Формат в конвертере

<stocks

fullness=”F”>


Значение всегда указывается как F!

*


<version="">

Значение указывается в кавычках

*

String(20)

<store storeId="">

Код магазина во внешней системе. Значение указывается в кавычках


String(100)

  <stock>
1:∞
     <id>    Код отдела*Int(10)
     <name>Название отдела*String(80)
  </stock>


</store>


</stocks>


Особенности

В УКМ 5 нет отделов. Файл не загружается.

TNVDCODE – Справочник кодов ТН ВЭД


Примечание

Обяз.

Формат в конвертере

<TNVDCode

fullness="F">


Значение всегда указывается как F!

*


<version="">

Значение указывается в кавычках

*

String(20)

<group>
1:∞
     <id>Идентификатор записи*Int(10)
     <code>Код группы ТН ВЭД (строка)*String(50)
     <name>Название группы ТН ВЭД*String(255)
</group>


</TNVDCode>


Особенности

УКМ 5 – не загружает файл.

Первоначально, маркировка товаров предполагала, что для тега 1162 префикс кода будет формироваться на основании принадлежности товаров к группам ТН ВЭД, но в нынешнем стандарте префикс тега формируется на основании типа считанного штрихкода кода. В УКМ 5 данный функционал не поддержан.

SUPPLIERS – Справочник поставщиков


Примечание

Обяз.

Формат в конвертере

<Suppliers

fullness="F">


Значение всегда указывается как F!

*


<version="">

Значение указывается в кавычках

*

String(20)

<Supplier>
1:∞
    <SupplierType>Тип договора с поставщиком
Int(10)
    <SupplierINN>ИНН поставщика*String(12)
    <SupplierName>Название поставщика*String(255)
    <SupplierTel>Телефон поставщика
String(20)
    <SupplierPayVat>Признак плательщика НДС
Boolean
    <SupplierAddress>Адрес поставщика
String(225)
</Supplier>


</Suppliers>


STOREPRICES – Розничные цены магазина


Примечание

Обяз.

Формат в конвертере

<storePrices

fullness=”F/I

storeId=””> 


Значение может быть F или I

Код магазина во внешней системе

*


String(100)

<version="">

Значение указывается в кавычках

*

String(20)

<item article="">

Код товара (артикул). Значение указывается в кавычках

1:∞

String(40)

<price>


1:1


   <value>

Значение цены

*

Decimal(16.2)

   <minprice>

Минимальная цена продажи


Decimal(16.2)

   <MRC>

Альтернативные цены – обычно МРЦ (максимальная розничная цена)

0:∞


      <MRCValue>

Значение альтернативной цены

*

Decimal(16.2)

      <MRCMinPrice>

Минимальная цена продажи для альтернативной цены – необязательный тег, может отсутствовать


Decimal(16.2)

      <MRCComment>  

Текстовый комментарий для альтернативной цены – необязательный тег, может отсутствовать


String(100)

   </MRC>




</price>




</item>




</storePrices>




Для товара может быть указана только одна цена.

Поле minprice является обязательным для УКМ 4.

Выгрузка файла с fullness=”F” приводит к замене цен для магазина.

Если секция price для товара указана, но секция пуста (<price> </price>), то для этого товара цена будет удалена. Если значение price.value отсутствует, то возникнет ошибка загрузки и файл не загрузится.

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

Если для MRC не указано значение MRCMinPrice (т.е. тег пропущен или отсутствует), то в момент загрузки конвертер установит его значение в MRCValue (т.е. скидки на альтернативные цены будут запрещены).

Если не указано значение MRCComment (т.е. тег пропущен или отсутствует), то в момент загрузки конвертер установит его значение в Дополнительная цена (УКМ 4 данное поле не загружает).

Особенности

УКМ 5 – ручные скидки УКМ 5 могут изменять стоимость продажи товара ниже минимальной стоимости товара, в том числе до 0.

STOREPRICESADD – Дополнительные прайс-листы


Примечание

Обяз.

Формат в конвертере

<storePricesAdd

fullness="F"

storeId="">


Значение всегда указывается как F!

Код магазина во внешней системе

*


String(100)

<version="">

Значение указывается в кавычках

*

String(20)

<PriceType>
1:∞
   <priceTypeCode>Код вида цены
Int(10)
   <priceTypeName>Название вида цены
String(20)
   <item article="">Код товара (артикул). Значение указывается в кавычках1:∞String(40)
   <price>
1:1
         <value>Цена*Decimal (16.2)

         <minprice>



Decimal (16.2)

         <MRC>

Альтернативные цены – обычно МРЦ (максимальная розничная цена)0:∞
            <MRCValue>Значение альтернативной цены*Decimal (16.2)
            <MRCMinPrice>Минимальная цена продажи для альтернативной цены – необязательный тег, может отсутствовать
Decimal (16.2)
         </MRC>


    </price>


    </item>


</PriceType>


</storePricesAdd>


Особенности

УКМ 5 – не загружает файл.

STORESELLERS – Продавцы магазина


Примечание

Обяз.

Формат в конвертере

<storeSellers

fullness=”F

storeId=””>


Значение всегда указывается как F!

Код магазина во внешней системе

*


String(100)

<version="">

Значение указывается в кавычках

*String(20)
<seller>
1:∞
     <id>
*String(50)
     <name>
*String(50)
</seller>


</storeSellers>


STORECASHIERS – Кассиры магазина


Примечание

Обяз.

Формат в конвертере

<storeCashiers

fullness=”F

storeId=””>             


Значение всегда указывается как F!

Код магазина во внешней системе

*


String(100)

<version="">

Значение указывается в кавычках

*

String(20)

<cashier>


1:∞


    <roleId>Роль (должность) кассира
Int(10)

    <id>

Код кассира, по которому кассир идентифицируется на кассе – целое число больше 0

*

Int(10)

    <name>   

Имя кассира – символьная строка

*

String(50)

    <INN>           

ИНН кассира – символьная строка, может быть пустой или отсутствовать


String(20)

    <password>

Пароль кассира – символьная строка, выгружается без шифрования

*

String(48)

</cashier>




</storeCashiers>




Особенности 

УКМ 4 – не загружает поля roleId и INN.

СуперМаг+ – не выгружает поле roleId.

ITEMSTORESTOCK – Назначение товаров на отделы магазина


Примечание

Обяз.

Формат в конвертере

<itemStoreStock

fullness=”F

storeId=””>


Значение всегда указывается как F!

Код магазина во внешней системе

*


String(100)

<version="">

Значение указывается в кавычках

*

String(20)

<item article="">   

Код товара (артикул). Значение указывается в кавычках

*

String(40)

   <stockId>ID отдела*Int(10)
</item>


</itemStoreStock>


Особенности

В УКМ 5 вместо ID отдела (поле stockId) загружается ИНН юр. лица-поставщика. С целью прогрузить привязку товаров к юр. лицам-поставщикам, файл необходимо загружать отдельно для каждого магазина.

STORERESTOFGOODS – Остатки товаров в конкретном магазине


Примечание

Обяз.

Формат в конвертере

<StoreRestOfGoods

fullness=”F/I

storeId=””>


Значение может быть F или I

Код магазина во внешней системе

*


String(100)

<version="">Значение указывается в кавычках*String(20)
<item article="">   Код товара (артикул). Значение указывается в кавычках*String(40)
   <amount>Количество товара*Decimal(20,4)
</item>


...


</StoreRestOfGoods>


Особенности 

УКМ 5 – не загружает файл.

СуперМаг+ – не выгружает файл.