Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  • Полные выгрузки внешняя система делает либо по расписанию, либо при ручной выгрузке. «Загруженность» предыдущих порций информации СМ внешняя система не проверяет.

Правила обработки информации сервером УКМ 4

...

Структура данных, передаваемых из внешней системы в УКМ 4


Свойства товаров (весь справочник) (в СуперМаг - справочник "Размеры")

...

, в Супермаг Плюс – справочник «Размеры»):

<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"

...

Скидка «Персональная скидка на классификатор (СМ+)» (может быть весь справочник или только изменения)

<discountPersonal fullness=”F/I”> 
        <program>// minOccurs=”0” maxOccurs="unbounded"
               <id></id>                        (идентификатор вида цены в СМ)
               <name></name>                    (название вида цены в СМ)
<storeDiscount>
        <store storeId=””/> //minOccurs=”0” maxOccurs="unbounded"  (перечень магазинов, для которых действует данный экземпляр скидки)
</storeDiscount>
               <card>// minOccurs=”0” maxOccurs="unbounded"
                       <number></number>        (номер карты, в т.ч. префикс)
                       <block></block>	         (признак блокировки карты)
                       <type></type>            (1 – совместная применимость, 0 – не применимость)
                       <name></name>            (имя клиента в чеке)
                       <classifId></classifId>  (ссылка на узел классификатора)
                       <discount></discount>
               </card>
       </program>
</discountPersonal>

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

Скидка на классификатор (СМ+) (весь справочник)

<classifDiscount fullness=”F”>
       <program>// minOccurs=”0” maxOccurs="unbounded"
<id></id>
       <name></name>
<storeDiscount>
       <store storeId=””/> //minOccurs=”0” maxOccurs="unbounded"
</storeDiscount>
       <classif classifId=””> // minOccurs=”0” maxOccurs="unbounded"
               <discount></discount>
       <classif>
       </program>
</classifDiscount>

Скидка на сумму чека (СМ+) (весь справочник)

<receiptDiscount fullness=”F”>
         <program>// minOccurs=”0” maxOccurs="unbounded"
<id></id>
         <name></name>
<storeDiscount>
         <store storeId=””/> //minOccurs=”0” maxOccurs="unbounded"
</storeDiscount>
<receipt> // minOccurs=”0” maxOccurs="unbounded"
               <amountFrom></amountFrom>
               <timeFrom></timeFrom>
               <discount></discount>
        </receipt>
        </program>
</receiptDiscount>

Скидка на кол-во товара (СМ+) (весь справочник)

<quantityDiscount fullness=”F”>
       <program>// minOccurs=”0” maxOccurs="unbounded"
       <id></id>
       <name></name>
<storeDiscount>
       <store storeId=””/> //minOccurs=”0” maxOccurs="unbounded"
</storeDiscount>
       <item article=””> // minOccurs=”0” maxOccurs="unbounded"
               <threshold> // minOccurs=”0” maxOccurs="unbounded"
                       <quantity></quantity>
                       <discount></discount>
               </threshold>
       </item>
       </program>
</quantityDiscount>

Розничные цены магазина (может быть весь справочник или только изменения)

<storePrices fullness=”F/I” storeId=””>  
       <version=””>
       <item article=””>// minOccurs=”0” maxOccurs="unbounded"
               <price> // minOccurs=”0” maxOccurs="1"
                       <value></value>
                       <minprice></minprice>  (минимальная цена продажи в ден.единицах, а не в процентах)
               </price>
       </item>
</storePrices>

Продавцы магазина (весь справочник)

<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 символов)
               <password></password>       (символьная строка – 15 символов. Выгружается без шифрования)
        </cashier>
</storeCashiers>

Коды немаркированных акцизных товаров для магазина (весь справочник)

<storeEGAIS fullness=”” storeId=””>        (код магазина в СМ+ (целое число). Мапируется конвертером в магазин в УКМ 4)
        <version></version>
        <item> // minOccurs=”0” maxOccurs="unbounded"
            <article></article>            (символьная строка – 40 символов)
            <NOPDF></NOPDF>                (символьная строка – 255 символов)
        </item>
</storeEGAIS>

<NOPDF> может содержать поля:  
* code – код вида алкогольной продукции; 
* price – цена товара; 
* bname – наименование товарной позиции; 
* alc – крепость;  
* volume – объем продукции;
* ean – EAN-продукта;
* count– количество единиц пивной продукции данного вида.
 
Значение параметра <NOPDF> передается в виде:
<article="ХХХХХ" code="ХХХ" bname="ХХХ ХХХ" alc="ХХХ" volume="ХХХ" />

Если внутри значения атрибута bname используются кавычки, то они заменяются по следующим правилам:

если для указания значения атрибута используются двойные кавычки, такие же кавычки внутри значения атрибута заменяются на сущность "
если для указания значения атрибута используются одинарные кавычки, такие же кавычки внутри значения атрибута заменяются на сущность '
можно использовать двойные кавычки внутри значений атрибутов, заключенных в одинарные кавычки, и наоборот. 

Например:

<article="005356" code="123" bname="Пиво "Балтика"" alc="4,6" volume="0,5" /> 
или
<article="005356" code="123" bname=”Пиво 'Балтика'" alc="4,6" volume="0,5" />

Загрузка информации для пивного чека

...

              <article></article>

              <name></name>

              <measure></measure>         (Сокращение)

              <measprec></measprec>        (Точность – 1, 0.001, 0.01, 0.1)

              <groupId></groupId>         (ссылка на узел классификатора)

              <egaisType></egaisType>           ((int), признак акцизного товара; 0  неакцизный товар, 1 – маркированный товар, 2  немаркированный)

<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 необходимо использовать кавычки, то заменять их по следующим правилам:

  • если для указания значения атрибута используются двойные кавычки, такие же кавычки внутри значения атрибута заменяются на сущность &quot;.
  • если для указания значения атрибута используются одинарные кавычки, такие же кавычки внутри значения атрибута заменяются на сущность &apos;.
  • можно использовать двойные кавычки внутри значений атрибутов, заключенных в одинарные кавычки, и наоборот.

Наборы - (может быть весь справочник или только изменения)

<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>


Скидка «Персональная скидка на классификатор (СМ+)» (может быть весь справочник или только изменения):


<discountPersonal IdPrice=”” fullness=”F/I”>(идентификатор вида цены в СМ)

       <version=””>

       <name></name>                      (название вида цены в СМ)

<storeDiscount>

                     <store storeId=””/> //minOccurs=”0” maxOccurs="unbounded"

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

</storeDiscount>

       <card>// minOccurs=”0” maxOccurs="unbounded"

              <number></number>    (номер карты, в т.ч. префикс)

              <block></block>      (признак блокировки карты)

              <type></type>        (1 – совместная применимость, 0 – не применимость)

              <name></name>        (имя клиента в чеке)

              <classDisc>          (перечень узлов классификатора, на которые в СМ+ определена величина скидки. Перечень всегда выгружается полный. При этом, выгружаются только те узлы, для которых в СМ+ указаны значения скидки, т.е. вопрос наследования значений скидки по иерархии узлов классификатора решается УКМом))

                     <classifId></classifId> (ссылка на узел классификатора)

                     <discount></discount>

              </classDisc>

       </card>

</discountPersonal>

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


Скидка на классификатор (СМ+) (весь справочник):


<classifDiscount IdPrice=”” fullness=”F”>(идентификатор вида цены в СМ)

       <version=””>

       <name></name>                    (название вида цены в СМ)

<storeDiscount>

                     <store storeId=””/> //minOccurs=”0” maxOccurs="unbounded"

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

</storeDiscount>

              <classif classifId=””> // minOccurs=”0” maxOccurs="unbounded" (выгружаются только те узлы, для которых в СМ+ указаны значения скидки, т.е. вопрос наследования значений скидки по иерархии узлов классификатора решается УКМом)

       <discount></discount>

<classif>

</classifDiscount>


Скидка на сумму чека (СМ+) (весь справочник):


<receiptDiscount IdPrice=”” fullness=”F”>(идентификатор вида цены в СМ)

       <version=””>

       <name></name>                    (название вида цены в СМ)

<storeDiscount>

                     <store storeId=””/> //minOccurs=”0” maxOccurs="unbounded"

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

</storeDiscount>

<receipt> // minOccurs=”0” maxOccurs="unbounded"

       <amountFrom></amountFrom>

       <timeFrom></timeFrom>

       <discount></discount>

              </receipt>

</receiptDiscount>


Скидка на кол-во товара (СМ+) (весь справочник):

<quantityDiscount IdPrice=”” fullness=”F”>(идентификатор вида цены в СМ)

       <version=””>

       <name></name>                    (название вида цены в СМ)

<storeDiscount>

                     <store storeId=””/> //minOccurs=”0” maxOccurs="unbounded"

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

</storeDiscount>

<item article=””> // minOccurs=”0” maxOccurs="unbounded"

       <threshold> // minOccurs=”0” maxOccurs="unbounded"

              <quantity></quantity>

              <discount></discount>

       </threshold>

</item>

       </quantityDiscount>


Розничные цены магазина (может быть весь справочник или только изменения):


<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>), то соответствующая запись в прайс-листе в УКМ должна быть удалена.

Флаг полной выгрузки приводит к тому, что УКМ удаляет текущее содержание прайс-листа и загружает его новое содержимое.


Продавцы магазина (весь справочник):


<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 символов)

              <password></password> (символьная строка – 15 символов. Выгружается без шифрования)

       </cashier>

</storeCashiers>


Акцизные немаркированные товары по магазинам (весь справочник):

Функционал не  реализован. Зарезервировано на будущее.


<storeEGAIS fullness=”” storeId=””>        (код магазина в СМ+ (целое число))

<version></version>

<item> // minOccurs=”0” maxOccurs="unbounded"

<article></article> (символьная строка – 40 символов)

<NOPDF></NOPDF>      (символьная строка – 255 символов)

</item>

</storeEGAIS>

Значение параметра <NOPDF> передается в виде:

<nopdf article="ХХХХХ" code="ХХХ" bname="ХХХ ХХХ" alc="ХХХ" volume="ХХХ"/>.

Передача информации из УКМ 4 в СуперМаг

...