# Формат YML (Yandex Market Language)
Один из форматов выгрузки товаров в сервис.
Это стандарт, разработанный Яндексом для принятия и размещения информации в базе данных Яндекс.Маркета. YML основан на стандарте XML. Единый формат представления данных позволяет быстро и качественно обрабатывать предоставляемую магазинами информацию о товарах и услугах.
Настройте экспорт информации о товарах и услугах из вашей базы данных в YML-файл или используйте CMS со встроенными возможностями экспорта данных в формат YML.
# Процесс подключения
Разместите файл на сайте вашего магазина по URL, и укажите его при добавлении магазина в SocPoster. YML-файл регулярно скачивается роботом и обновленные данные импортируются в каталог товаров вашего сообщества во ВКонтакте.
# Требования к YML-файлу
Стандарт YML не допускает использования в текстовых данных непечатаемых символов с ASCII-кодами в диапазоне значений от 0 до 31 (за исключением символов с кодами 9, 10, 13. Разрешены — табуляция, перевод строки, возврат каретки.). Это требует обязательной замены некоторых символов на эквивалентные им символьные коды:
Символ в тексте | Код для YML-файла |
---|---|
" | " |
& | & |
> | > |
< | < |
' | ' |
Обработка символов
В большинстве случаем сервис самостоятельно преобразует запрещенные символы и уберет html теги, т.к. они не действуют во ВКонтакте. Но все же мы не рекомендуем использовать html теги в элементах yml. В редких случаях это мешает обработке файла.
Если в файле присутствуют html теги, то для надежности, можете обернуть их в конструкцию <![CDATA[ ]]>
. Это необязательно. Пример:
<description>
<![CDATA[Здесь должно быть <b>описание товара</b>, если в нем есть HTML теги.]]>
</description>
# Описание элементов и пример файла
- Подробно о структуре YML можно прочитать на сайте Яндекса здесь
- Пример YML файла на сайте Яндекса здесь
- Еще один пример структуры YML файла здесь
В демонстрационном файле использованы случайные данные - они не подходят для выгрузки, только как демонстрация структуры файла.
# Несколько категорий для товара
В стандарте YML не предусмотрено использование нескольких категорий, но SocPoster делает исключение для этого правила и обрабатывает все тэги <categoryId>
указанные для товара. Пример:
<categories>
<category id="1">Просто категория</category>
<category id="3">Еще одна категория</category>
<category id="4" parentId="1">Дочка просто категории</category>
<category id="5">Обычная категория</category>
<category id="12">Категория</category>
</categories>
<offer id="1" available="true">
<url>
http://socposter.ru/
</url>
<price>100</price>
<currencyId>RUB</currencyId>
<categoryId>1</categoryId>
<categoryId>3</categoryId>
<categoryId>5</categoryId>
<categoryId>12</categoryId>
<picture>
http://socposter.ru/product-img1.jpg
</picture>
<picture>
http://socposter.ru/product-img2.jpg
</picture>
<name>Название товара</name>
<vendor>Производитель</vendor>
<description>
Описание.
</description>
<param name="Название параметра 1">параметр 1</param>
<param name="Название параметра 2">параметр 2</param>
</offer>