актуально
Подробно о файлах обмена с 1С

Подробно о файлах обмена с 1С

Подробно о import.xml, offers.xml и их друзьях, а так же о их роли в обменах между и магазином.

Немного о файлах и их количестве

На момент написания в 2018 году существует два различных набора файлов используемых в обмене между интернет-магазином и в версии выше 8.0. Набор этих файлов зависит от версии модуля обмена с веб-узлами [1] установленного в . В "старом" обмене участвовало 3 файла: import.xml, offers.xml и orders.xml в "новом" - добавилось еще 5 xml файлов - prices.xml, rests.xml, documents.xml, contragents.xml, references.xml. Однако, основными остались старые-добрые импорт и офферс, остальные файлы могут не присутствовать в выгрузке.

Критическая разница между "старым" обменом и "новым" в том, что ранее 1C умела обмениваться с сайтом лишь в регламентном режиме с промежутком от раза в 15 минут и дольше, в новом появилась возможность обновления в режиме реального времени (realtime).

Перечень файлов участвующих в обменах

  • import.xml - содержит данные о товарах, категориях (группах), типах цен, складах, свойствах товаров и единицах измерения;
  • offers.xml - содержит данные о предложениях товаров (SKU [2]) и их свойствах;
  • orders.xml - содержит подробные данные о заказах;
  • prices.xml - содержит данные о ценах предложений перечисленных в offers.xml;
  • rests.xml - содержит данные о фактических остатках торговых предложений перечисленных в offers.xml;
  • documents.xml - содержит информацию о документах прикрепленных к товарам;
  • contragents.xml - содержит информацию о контрагентах;
  • references.xml - содержит информацию о пользовательских справочниках затронутых в import.xml .

Мы не станем рассматривать файл с контрагентами, пользовательскими справочниками и документами [3] из-за относительной редкости их использования и остановимся только на основных фалах без которых добиться обновления каталога попросту не выйдет.

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

Как сказано выше, обмен между 1С и сайтом происходит при помощи обмена файлами в формате XML построенными на основе стандарта CommerceML 2.xx [3]. Начнем рассматривать примеры файлов выгрузки в порядке очереди их обработки сайтом в момент обмена.

import.xml

Основа основ и первый файл в цепочке обмена. Хранит все данные основного каталога товаров

Структура import.xml

<?xml version="1.0" encoding="UTF-8"?> <КоммерческаяИнформация ВерсияСхемы="2.09" ДатаФормирования="2018-06-26T18:28:09"> <Каталог СодержитТолькоИзменения="true"> <Ид>12345678-ABCD-123A-4567-8910E1234DF5</Ид> <ИдКлассификатора>12345678-ABCD-123A-4567-8910E1234DF5</ИдКлассификатора> <Наименование>Каталог товаров</Наименование> <Товары> <Товар> <Ид>XML-ID - Товара A</Ид> <НомерВерсии>AAAAAQAAAHI=</НомерВерсии> <ПометкаУдаления>false</ПометкаУдаления> <Штрихкод/> <Артикул/> <Наименование>Название товара</Наименование> <БазоваяЕдиница>10</БазоваяЕдиница> <Группы> <Ид>XML-ID - Категории товара</Ид> </Группы> <Описание/> <Страна/> <ЗначенияСвойств> <ЗначенияСвойства> <Ид>XML-ID - Свойства A</Ид> <Значение/> </ЗначенияСвойства> <ЗначенияСвойства> <Ид>XML-ID - Свойства B</Ид> <Значение/> </ЗначенияСвойства> <ЗначенияСвойства> <Ид>XML-ID - Свойства C</Ид> <Значение/> </ЗначенияСвойства> </ЗначенияСвойств> <СтавкиНалогов> <СтавкаНалога> <Наименование>НДС</Наименование> <Ставка>12</Ставка> </СтавкаНалога> </СтавкиНалогов> <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ВидНоменклатуры</Наименование> <Значение>Материал</Значение> </ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>ТипНоменклатуры</Наименование> <Значение>Товар</Значение> </ЗначениеРеквизита> </ЗначенияРеквизитов> <Вес>0</Вес> </Товар> </Товары> <Описание>Описание каталога</Описание> </Каталог> </КоммерческаяИнформация>

Не зависимо от того какой файл мы рассматриваем он будет содержать в структуре ряд общих элементов и ряд уникальных, присущих только данному виду файла. К общим элементам относятся:

<КоммерческаяИнформация> - Верховный элемент в который входят все остальные. Содержит версию схемы обмена, дату формирования и иную служебную информацию.
<ПакетПредложений> - Содержит данные о предложениях.
<Ид> - Уникальный идентификатор пакета предложений. Обязательно наличие символа # для связи с инфоблоком товаров.
<Наименование> - Название.
<ИдКаталога> - Уникальный идентификатор каталога, пакет предложений которого прислан.
<ИдКлассификатора> - Уникальный идентификатор классификатора, который относится к пакету предложений.
<Предложения> - Головной элемент информации о предложениях товаров.
<Предложение> - Элемент содержит данные отдельного предложения элемента.
<Ид> - Идентификатор предложения. В отдельных случаях может иметь формат: <ид_товара>#<ид_элемента>

Уникальные для файла импорта:

<Группы> - Элемент содержит информацию о группах (разделах) товаров.
<Группа> - Элемент содержит описание группы элемента.
<Ид> - Уникальный идентификатор группы (раздела).
<НомерВерсии> - Номер версии элемента группы (раздела).
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Наименование> - Наименование группы (раздела).
<Группы> - Подчиненный элемент, который хранит информацию о подчиненных группах.
<Свойства> - Элемент содержит информацию о свойствах товаров.
<Свойство> - Элемент содержит описание свойства элемента.
<Ид> - Уникальный идентификатор свойства.
<НомерВерсии> - Номер версии свойства.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Наименование> - Наименование свойства.
<Ид> - Уникальный идентификатор товара.
<НомерВерсии> - Номер версии товара.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Артикул> - Артикул товара.
<Наименование> - Наименование товара.
<Описание> - Описание товара, попадающее в подробное описание товара.
<Картинка> - Элемент содержит информацию о картинках товара. Первый элемент является основной картинкой.
<БазоваяЕдиница> - Единица измерения товара.
<Группы> - Элемент содержит информацию о группах (разделах), в которых товар находится.
<Ид> - Идентификатор группы (раздела) товара.
<Изготовитель> - Элемент содержит информацию о изготовителе товара.
<Вес> - Вес товара.
<Ид> - Идентификатор изготовителя.
<Наименование> - Наименование производителя.
<ОфициальноеНаименование> - Официальное наименование производителя.
<ЗначенияСвойств> - Элемент содержит информацию о свойствах товаров.
<ЗначенияСвойства> - Элемент содержит описание свойства товара.
<Ид> - Идентификатор свойства.
<Значение> - Значение свойства.
<СтавкиНалогов> - Элемент содержит информацию о налогах товаров.
<СтавкаНалога> - Элемент содержит описание налога товара.
<Наименование> - Наименование налога.
<Ставка> - Ставка налога.
<ЗначенияРеквизитов> - Элемент содержит информацию о дополнительных данных товара. Есть предопределенные значения:
  • Файл - содержит информацию о местонахождении приложенного файла;
  • ОписаниеФайла - описание файла или картинки. Формат: <адрес картинки>#<описание>;
  • Вес - вес товара;
  • ОписаниеВФорматеHTML - содержит описание товара в формате HTML;
  • Полное наименование - информация о анонсе товара.
<ЗначениеРеквизита> - Элемент содержит описание дополнительной информации товара.
<Наименование> - Наименование реквизита.
<Значение> - Значение реквизита.

Возможные дополнительные элементы:

<ТипыЦен> - Элемент содержит информацию о типах цен товаров.
<ТипЦены> - Элемент содержит описание типа цены элемента.
<Ид> - Уникальный идентификатор типа цены.
<НомерВерсии> - Номер версии типа цены.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Наименование> - Наименование типа цены. Наименование типа цены должно быть уникально, иначе новое не добавится.
<Валюта> - Валюта типа цены.
<Налог> - Описание налогов для типа цены.
<Наименование> - Наименование налога.
<УчтеноВСумме> - Признак того, включен ли налог в стоимость товара.
<Склады> - Элемент содержит информацию о складах товаров.
<Склад> - Элемент содержит описание склада элемента.
<Ид> - Уникальный идентификатор склада.
<НомерВерсии> - Номер версии склада.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Наименование> - Наименование склада.

offers.xml

Основной файл обмена каталогом с торговыми предложениями (SKU) - в "старом" обмене в нем хранилась вся информация о предложениях включая их цены. остатки и прочие данные. В "новом" обмене в нем представлена только основная информация касающаяся самих элементов, а цены, остатки и пр. вынесены в отдельные файлы.

Структура offers.xml

<?xml version="1.0" encoding="UTF-8"?> <КоммерческаяИнформация ВерсияСхемы="2.09" ДатаФормирования="2018-06-26T18:28:09"> <ПакетПредложений СодержитТолькоИзменения="true"> <Ид>12345678-ABCD-123A-4567-8910E1234DF5#</Ид> <Наименование>Пакет предложений</Наименование> <ИдКаталога>12345678-ABCD-123A-4567-8910E1234DF5</ИдКаталога> <ИдКлассификатора>12345678-ABCD-123A-4567-8910E1234DF5</ИдКлассификатора> <Предложения> <Предложение> <Ид>XML-ID - SKU - Предложения A</Ид> <НомерВерсии>oQAAAAE=</НомерВерсии> <ПометкаУдаления>false</ПометкаУдаления> <Наименование>Название предложения - Например цвет - Белый</Наименование> <ХарактеристикиТовара/> <ЗначенияСвойств> <ЗначенияСвойства> <Ид>XML-ID - Свойства А</Ид> <Значение>XML-ID - Значения B свойства А</Значение> </ЗначенияСвойства> </ЗначенияСвойств> </Предложение> <Предложение> <Ид>XML-ID - SKU - Предложения B</Ид> <НомерВерсии>oAAAAAEAAAA=</НомерВерсии> <ПометкаУдаления>false</ПометкаУдаления> <Наименование>Название предложения - Например цвет - Бежевый</Наименование> <ХарактеристикиТовара/> <ЗначенияСвойств> <ЗначенияСвойства> <Ид>XML-ID - Свойства А</Ид> <Значение>XML-ID - Значения С свойства А</Значение> </ЗначенияСвойства> </ЗначенияСвойств> </Предложение> </Предложения> </ПакетПредложений> </КоммерческаяИнформация>

Расшифровка элементов XML

<НомерВерсии> - Номер версии предложения.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<ЗначенияСвойств> - Элемент содержит информацию о свойствах предложений.
<ЗначенияСвойства> - Элемент свойства предложения.
<Ид> - Идентификатор предложения.
<Значение> - Значение предложения.

Возможные дополнительные элементы:

<Свойства> - Элемент содержит информацию о свойствах товаров.
<Свойство> - Элемент содержит описание свойства элемента.
<Ид> - Уникальный идентификатор свойства.
<НомерВерсии> - Номер версии свойства.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Наименование> - Наименование свойства.
<Внешний> - Признак того, что свойство типа справочник и должно хранится в highload-инфоблоке. Если хранит файл или изображение должен принимать значение true.
<Информационное> - Признак того, что свойство влияет на цену.
<ТипЗначений> - Тип значения свойства. Тип значения может быть: Строка, Число, Время, Справочник.
<ВариантыЗначений> - Элемент содержит информацию о вариантах значений, если тип свойства Справочник.
<Справочник> - Элемент содержит описание варианта значений свойства.
<ИдЗначения> - Идентификатор варианта значения свойства.
<Значение> - Значение варианта значения свойства.
<Картинка> - Адрес файла изображения, если значение свойства хранит картинку.
<Штрихкод> - Штрих-код предложения.
<ХарактеристикиТовара> - Элемент содержит информацию о строковых свойствах предложений.
<ХарактеристикаТовара> - Элемент множественного строкового свойства предложений.
<Наименование> - Наименование свойства.
<Значение> - Значение.
<Комплектующие> - Элемент содержит информацию о комплектующих предложениях.
<Комплектующее> - Элемент, содержащий информацию о комплектующем предложении.
<Ид> - Идентификатор комплектующего.
<Наименование> - Наименование комплектующего.
<Количество> - Количество товара.
<ЗначенияРеквизитов> - Элемент содержит информацию о дополнительных данных в предложениях.
<ЗначениеРеквизита> - Элемент содержит описание дополнительной информации товара.
<Наименование> - Наименование реквизита.
<Значение> - Значение реквизита.

prices.xml

Файл содержит информацию о текущих ценах предложений в разрезе всех типов цен на сайте.

Структура prices.xml

<?xml version="1.0" encoding="UTF-8"?> <КоммерческаяИнформация ВерсияСхемы="2.09" ДатаФормирования="2018-06-26T18:28:09"> <ПакетПредложений СодержитТолькоИзменения="true"> <Ид>12345678-ABCD-123A-4567-8910E1234DF5#</Ид> <Наименование>Пакет предложений</Наименование> <ИдКаталога>12345678-ABCD-123A-4567-8910E1234DF5</ИдКаталога> <ИдКлассификатора>12345678-ABCD-123A-4567-8910E1234DF5</ИдКлассификатора> <Предложения> <Предложение> <Ид>XML-ID - SKU - Предложения</Ид> <Цены> <Цена> <Представление>15 155 грн за шт</Представление> <ИдТипаЦены>XML-ID - Типа цены А</ИдТипаЦены> <ЦенаЗаЕдиницу>15155</ЦенаЗаЕдиницу> <Валюта>UAH</Валюта> </Цена> <Цена> <Представление>30 300 руб за шт</Представление> <ИдТипаЦены>XML-ID - Типа цены В</ИдТипаЦены> <ЦенаЗаЕдиницу>30300</ЦенаЗаЕдиницу> <Валюта>руб</Валюта> </Цена> </Предложение> </Предложения> </ПакетПредложений> </КоммерческаяИнформация>

Расшифровка элементов XML

<Цены> - Элемент содержит информацию о ценах предложения товара.
<Цена> - Элемент содержит описание цены предложения товара.
<Представление> - Представление цены (на сайте не используется).
<ИдТипаЦены> - Уникальный идентификатор (внешний код) - типа цены.
<ЦенаЗаЕдиницу> - Цена за единицу товара. <Валюта> - Валюта цены.

rests.xml

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

Структура rests.xml

<?xml version="1.0" encoding="UTF-8"?> <КоммерческаяИнформация ВерсияСхемы="2.09" ДатаФормирования="2018-06-26T18:28:09"> <ПакетПредложений СодержитТолькоИзменения="true"> <Ид>12345678-ABCD-123A-4567-8910E1234DF5#</Ид> <Наименование>Пакет предложений</Наименование> <ИдКаталога>12345678-ABCD-123A-4567-8910E1234DF5</ИдКаталога> <ИдКлассификатора>12345678-ABCD-123A-4567-8910E1234DF5</ИдКлассификатора> <Предложения> <Предложение> <Ид>XML-ID - SKU - Предложения</Ид> <Остатки> <Остаток> <Склад> <Ид>XML-ID - Склада</Ид> <Количество>1</Количество> </Склад> </Остаток> </Остатки> </Предложение> </Предложения> </ПакетПредложений> </КоммерческаяИнформация>

Расшифровка элементов XML

<Остаток> - Элемент содержит данные об остатках отдельного предложения в разрезе складов.
<Количество> - Остаток по всем складам.
<Склад> - Данные о складе и остатке предложения на нем.
<Ид> - Уникальный идентификатор склада.
<Количество> - Остаток предложения в разрезе склада.

Все файлы присылаемые на сайт и обрабатываемые системой попадают в папку /upload/1c_catalog/, промежуточные и служебные файлы обмена во время процедуры сохраняются в папке /upload/1c_exchange.

orders.xml

Файл с данными заказов. Бывает двух видов - сформированный на стороне сайта и забираемый и сформированный и отправляющий на сайт информацию о изменениях в заказах в случае их проведения на стороне после прошлого обмена. В частности, текущий статус заказа после ухода с сайта в . Как получить пример такого файла без 1С мы описывали ранее.

Примечания

  1. Актуальные версии модулей разных редакций 1С для России, Беларуси, Казахстана - тут, для Украины тут.
  2. SKU - складской номер, артикул.
  3. Описание файлов на сайте Битрикса - XML-файлы для обмена данными.
  4. Описание и примеры xml схемы для специалистов 1С - CommerceML 2.XX.

Если вам понадобятся образцы самих файлов или помощь по осознанию написанного на реальном примере смотрите данный пост или пишите вопросы в комментариях


Комментарии
Подписаться
Полезность статьи
0 / 5 5 5 1
На основе 0 оценок
0%
0%
0%
0%
0%
Понравилась статья?
Отлично
Комментарий*
Представьтесь

Возврат к списку