Skip to content

Выгрузка CustomXml — свой XML под любую площадку ​

Тип выгрузки CustomXml позволяет собрать XML-фид произвольной структуры прямо в программе, без доработки под конкретную площадку. Так же, как CustomCsv и CustomXls для таблиц.

Работает и для товаров, и для внешних прайсов.

Как начать ​

  1. Выгрузки → создать профиль → тип CustomXml (регион «Глобальные»).
  2. Добавить набор данных, открыть Настройки набора данных — откроется конструктор схемы.
  3. Заполнить каркас документа и список полей товара, нажать Применить.

Внизу конструктора есть блок Пример результата — он сразу показывает, какой XML получится.

Каркас документа ​

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

xml
<yml_catalog date="{{now:yyyy-MM-dd HH:mm}}">
  <shop>
    <name>Краткое наименование</name>
    <company>ООО "Полное наименование"</company>
    <url>http://example.com</url>
    <currencies><currency id="BYN" rate="1"/></currencies>
    <categories><category id="28" parentId="26">Диски</category></categories>
    <offers/>
  </shop>
</yml_catalog>
  • Путь к контейнеру товаров: shop/offers
  • Элемент товара: offer

Для простого фида каркас может быть совсем коротким:

ПлощадкаКаркасКонтейнерЭлемент товара
Drom<offers />(пусто)offer
Avito<Ads formatVersion="3" target="Avito.ru" />(пусто)Ad
YMLпример вышеshop/offersoffer

В каркасе доступен токен {{now:формат}} — текущие дата и время, например {{now:yyyy-MM-dd HH:mm}}. Без формата подставляется 2026-07-29T14:33+03:00.

Каркас с пространством имён по умолчанию (xmlns="..." на корне) пока не поддерживается — конструктор покажет ошибку. Объявления с префиксом (xmlns:g="...") допустимы, но использовать префикс в путях полей нельзя.

Поля товара ​

У каждого поля два главных параметра: Путь (куда попадёт значение) и Шаблон значения (что именно подставить). Шаблон — обычный шаблон подстановок APS, правой кнопкой мыши вставляется список доступных токенов. Все функции подстановок работают как обычно, см. Подстановки в выгрузках.

Что можно написать в пути ​

ПутьЧто получится
price<price>19400</price>
@availableатрибут самого товара: <offer available="true">
Images/Image@url<Images><Image url="http://..."/></Images>
param@name=Бренд<param name="Бренд">Yokohama</param>
param@name='Ширина/высота'кавычки нужны, если в названии есть / или @

Вложенные узлы объединяются автоматически: два поля с путём Images/Image@url дадут один<Images> с двумя <Image> внутри. А два поля param@name=... — два отдельных <param>, как и ожидается.

Из того же правила следует, что одно поле = один узел: пара полей price@currency и price даст два отдельных <price>, а не <price currency="RUB">19400</price>. Если атрибут постоянный, пишите его прямо в пути значения — price@currency=RUB со шаблоном {pricerec|@} даст <price currency="RUB">19400</price>.

Имена элементов и атрибутов должны быть корректными XML-именами: без пробелов, не начинаются с цифры, без спецсимволов. Конструктор проверяет это сразу.

Флажки поля ​

ФлажокКогда нужен
CDATAдлинные описания с разметкой — значение оборачивается в <![CDATA[...]]>
Повторять по разделителюфото и другие списки: значение делится по разделителю и на каждый элемент создаётся свой узел
Сохранять переводы строкмногострочные описания; по умолчанию переводы строк вырезаются
Выводить пустымплощадка требует наличие тега даже без значения; по умолчанию пустые узлы не выводятся

Разделитель для флажка «Повторять» задаётся один на всю схему — поле Разделитель значений (по умолчанию запятая, как в токенах фотографий).

Примеры схем ​

Drom (плоский список) ​

ПутьШаблонФлажки
name{partname|@} {modelname|@}
availabletrue
quantity{quantity|@}
price{pricerec|@}
picture{photolinkpart|@}Повторять

Avito ​

ПутьШаблонФлажки
Id{partguid|@}
CategoryЗапчасти и аксессуары
Images/Image@url{photolinkpart|@}Повторять
Title{partname|@}
Description{detailcomment|@}CDATA, Сохранять переводы строк
Price{pricerec|@}

YML (av.by) ​

ПутьШаблонФлажки
@availabletrue
@id{kodpart|@}
currencyIdBYN
price{pricerec|@}
description{detailcomment|@}CDATA
param@name=Бренд{producer|@}CDATA
param@name=Страна{country|@}

Кодировка файла ​

Кодировка задаётся в настройках профиля выгрузки (utf-8, utf-8 w/o bom, windows-1251) и попадает в заголовок XML — объявленная кодировка всегда совпадает с содержимым файла.

Внешние прайсы ​

Для набора данных из внешнего прайса конструктор открывается той же кнопкой Настроить XML. Отличие одно: в списке подстановок доступны только поля выбранного прайса (price_*) — системные подстановки товаров APS там не применимы.

Правой кнопкой на строке прайса доступен Предпросмотр — он покажет XML одного товара и все вычисленные значения полей, ничего не записывая в файл и в журнал выгрузки.

Если в одном профиле несколько наборов данных, они пишутся в общий файл. Каркас документа добавляется один раз, а товары всех наборов складываются в общий контейнер. Поэтому у наборов должны полностью совпадать каркас, путь к контейнеру, элемент товара и разделитель значений. Список и порядок полей могут различаться: например, набор шин и набор дисков сформируют каждый свой состав <offer> внутри общего <offers>.

База знаний системы Умный склад запчастей (SoftRazborki)