Тема оформления
Выгрузка CustomXml — свой XML под любую площадку
Тип выгрузки CustomXml позволяет собрать XML-фид произвольной структуры прямо в программе, без доработки под конкретную площадку. Так же, как CustomCsv и CustomXls для таблиц.
Работает и для товаров, и для внешних прайсов.
Как начать
- Выгрузки → создать профиль → тип CustomXml (регион «Глобальные»).
- Добавить набор данных, открыть Настройки набора данных — откроется конструктор схемы.
- Заполнить каркас документа и список полей товара, нажать Применить.
Внизу конструктора есть блок Пример результата — он сразу показывает, какой 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/offers | offer |
В каркасе доступен токен {{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|@} | |
available | true | |
quantity | {quantity|@} | |
price | {pricerec|@} | |
picture | {photolinkpart|@} | Повторять |
Avito
| Путь | Шаблон | Флажки |
|---|---|---|
Id | {partguid|@} | |
Category | Запчасти и аксессуары | |
Images/Image@url | {photolinkpart|@} | Повторять |
Title | {partname|@} | |
Description | {detailcomment|@} | CDATA, Сохранять переводы строк |
Price | {pricerec|@} |
YML (av.by)
| Путь | Шаблон | Флажки |
|---|---|---|
@available | true | |
@id | {kodpart|@} | |
currencyId | BYN | |
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>.