Бесплатный тестовый период 1 месяц!
Как правильно составить YML с товарами
Что такое YML
Yml - это строго типизированный формат данных разработанный Яндексом. YML представляет из себя XML, который имеет определенный набор тегов и соответствующие значения в них. В свое время Сндекс начал активно применять данный формат данных и другие его подхватили, именно поэтому сейчас он обрёл такую популярность. Стандартный YML состоит из шапки, которая носит информационный характер и одного или нескольких разделов, которые мы рассмотрим ниже.
Шапка YML
Шапка YML является статичной и ее поля нужны исключительно для маркетплейса, в нашей системе они никак не используются, мы не требуем их заполнения, но если они заполнены - это хорошо, потому что так поддерживается стандарт YML.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE yml_catalog SYSTEM "shops.dtd"> <yml_catalog date="2022-07-26 09:46">
Тело YML
Внутри тега shop есть несколько разделов.
Статичные разделы и теги можно либо не заполнять либо оставить как есть - их информация ни на что не влияет:
<name>main products yml</name> <company>ИП Васильков Василий Васильевич</company> <url>https://yandex.ru</url> <phone>+7 (999) 999-99-99</phone> <platform>Yandex.YML for OpenCart (ocStore)</platform> <version>1.9.6</version>
Раздел currencies на текущий момент не используется и статичен для валюты RUB, но в перспективе может начать использоваться:
<currencies> <currency id="RUB" rate="1"/> <currency id="USD" rate="0.016658"/> </currencies>
Здесь id - это код валюты, а rate - это коэффициент расчета относительно основной валюты у которой rate = 1. В примере 1 рубль - это чуть больше полутора центов.
Далее идет раздел категорий - этот раздел уже является важным и основополагающим.
<categories> <category id="67">Провода</category> <category id="737" parentId="67">Разъемы</category> <category id="754" parentId="737">Герметичные разъемы</category> </categories>
В id мы указываем идентификатор категории, а в parentId указываем id родительской категории (идентификаторы в вашей системе, а не маркетплейса). Внутри тегов category указываем название категории. ВАЖНО, чтобы id были уникальными в разрезе всех ваших категорий.
Далее идет раздел offers внутри которого находятся товары.
Каждый товар заключен в тег offer внутри которого располагаются все его данные.
<offer id="42048Z0000Z1" group_id="42048"> <url>https://arduinko.ru/admin/index.php?route=product/product&path=&product_id=42048</url> <price>6311.704896</price> <discount_price>5311.704896</discount_price> <currencyId>RUB</currencyId> <categoryId>754</categoryId> <picture>https://test.ru/image/cache/catalog/ruelectronics/1627375632014784-1000x1000.jpg</picture> <picture>https://test.ru/image/cache/catalog/ruelectronics/1627375632014785-1000x1000.jpg</picture> <picture>https://test.ru/image/cache/catalog/ruelectronics/1627375632014786-1000x1000.jpg</picture> <quantity>1000</quantity> <cus_skucolor>красный</cus_skucolor> <size>46</size> <name>Герметичный разъем 4pin WP L=40 D=13mm 4*0.3mm2</name> <vendor>RUICHI</vendor> <vendorCode>88889</vendorCode> <model>4pin WP L=40 D=13mm 4*0.3mm2</model> <description><![CDATA[<p>Диаметр - Ф13 мм * - возможны изменения</p> <p>Номинальное напряжение - 0…24 (DC); 110/ 220 (AC) В</p> <p>Диаметр (сечение) проводника - 0,3 мм?</p> <p>Количество контактов - 4</p> <p>Цвет - белый</p> <p>Тип разъёма - F-M сборка, нетерминированные окончания</p> <p>Кабель - 4-х жильный (stranded)</p> <p>Диапазон рабочих температур - -20…+80 °С</p> <p>Материал - ПВХ, резина</p> <p>Ток - 1…2 А</p> <p>Длина в сборе - 400 ± 10 мм * - возможны изменения</p> <p>Класс защиты - IP68</p> <p>Диэлектрическая прочность - 1500 (50 Гц, 1 мин.) В</p> ]]></description> <weight>0.020</weight> <length>1.000</length> <width>1.000</width> <height>1.000</height> <tnved>8543200000</tnved> <tnved>8542399010</tnved> <okpd2>27.90.4</okpd2> <okpd2>27.90.40.150</okpd2> <gtin>afdas15632165</gtin> <barcode>2004204800006</barcode> <bulk_discount>50</bulk_discount> <bulk_order>50000</bulk_order> <param name="Ток">1…2 А</param> <param name="Диаметр">Ф13 мм * - возможны изменения</param> <param name="Номинальное напряжение">0…24 (DC); 110/ 220 (AC) В</param> <param name="Диаметр (сечение) проводника">4 x 0,3 мм?</param> <param name="Количество контактов">4</param> <param name="Цвет">белый</param> <param name="Тип разъёма">Сборка кабельная герметичная серии WP (нетерминированные окончания)</param> <param name="Кабель">четырехжильный (stranded)</param> <param name="Диапазон рабочих температур">-20…+80 °С</param> <param name="Материал">ПВХ, резина</param> <param name="Длина в сборе">400 ± 10 мм * - возможны изменения</param> <param name="Класс защиты">IP68</param> <param name="Диэлектрическая прочность">1500 (50 Гц, 1 мин.) В</param> </offer>
Основной идентификатор товара указывается либо в атрибуте тега offer id либо в отдельных тегах offer_id / sku_code. Как минимум один из этих вариантов должен быть заполнен.
group_id - атрибут тега offer - требуется в случае, если товарные позиции необходимо объединить в одну карточку по цвету или размеру. У всех офферов из одной карточки должен быть один и тот же group_id. Если вам не требуется объединять карточки - то просто продублируйте в этом поле sku.
url - ссылка на товар в интернет-магазине. Поле может быть пустым или отсутствовать.
price - обязательное поле в которое надо передавать формат данных float
old_price / oldprice / discount_price - необязательные поля в которые передается скидочная цена. Если использовать тег old_price - то она будет использована как старая (перечеркнутая цена), а price будет использовано как цена со скидкой. Если использовать тег discount_price - то в этом случае price становится перечеркнутой ценой, а discount_price - ценой со скидкой.
currencyId - идентификатор валюты товара - указывается код валюты (обязательное поле)
categoryId - идентификатор категории к которой принадлежит товар, важно, чтобы эта категория существовала и была указана в YML в разделе категорий (обязательное поле)
picture - здесь указывается ссылка на картинку товара. Этих тегов может быть столько, сколько картинок у товара. Важно, чтобы данные по картинкам не дублировались (не было указана два одинаковых URL). Эти теги являются обязательными. Также теги picture могут быть обернуты в один общий тег <pictures>
quantity - количество товара на складе указывается целочисленным значением (обязательное поле)
cus_skucolor - цвет товара (используется для создания вариации по sku)
sku_picture - может быть указан только один такой тег, который передает ссылку на изображение вариации товара (отдельная картинка для цвета или размера)
size - размер товара (используется для создания вариации по sku)
name - название товара (обязательное поле)
vendor - название производителя
vendorCode - sku по версии производителя
model - модель
description - описание в <![CDATA[****]]>
weight - вес float (обязательное поле)
length - длин float (обязательное поле)
width - ширина float (обязательное поле)
height - высота float (обязательное поле)
tnved - можно передавать несколько кодов ТНВЭД в раздельных тегах
okpd2 - можно передавать несколько кодов ОКПД2 в раздельных тегах
gtin - можно передавать 1 код
barcode - штрих-код строка
bulk_order - количество заказанного товара от которого начинает действовать скидка bulk_discount
bulk_discount - размер скидки, который применится при количестве от bulk_order
param - специальный тег для перечисления параметров (атрибутов товара). У него указывается в атрибуте тега name название атрибута товара, а внутри тега - значение атрибута.
offer - тег, который оборачивает все вышеуказанные поля. У данного тега есть атрибуты id - идентификатор товара, он же будет впоследствии использоваться как sku товара на маркетплейсе, group_id - маркер группы товаров - необходим, если вы хотите объединить несколько товаров с разными цветами/размерами.
В общем случае как пример YML выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE yml_catalog SYSTEM "shops.dtd"> <yml_catalog date="2022-07-26 09:46"> <shop> <name>main products yml</name> <company>ИП Васильков Василий Васильевич</company> <url>https://yandex.ru</url> <phone>+7 (999) 999-99-99</phone> <platform>Yandex.YML for OpenCart (ocStore)</platform> <version>1.9.6</version> <currencies> <currency id="RUB" rate="1"/> </currencies> <categories> <category id="67">Провода</category> <category id="737" parentId="67">Разъемы</category> <category id="754" parentId="737">Герметичные разъемы</category> </categories> <offers> <offer id="42048Z0000Z1" group_id="42048" available="true"> <url>https://arduinko.ru/admin/index.php?route=product/product&path=&product_id=42048</url> <price>6311.704896</price> <currencyId>RUB</currencyId> <categoryId>754</categoryId> <picture>https://arduinko.ru/image/cache/catalog/ruelectronics/1627375632014785-1000x1000.jpg</picture> <quantity>1000</quantity> <cus_skucolor>46</cus_skucolor> <size>46</size> <name>Герметичный разъем 4pin WP L=40 D=13mm 4*0.3mm2</name> <vendor>RUICHI</vendor> <vendorCode>88889</vendorCode> <model>4pin WP L=40 D=13mm 4*0.3mm2</model> <description><![CDATA[<p>Диаметр - Ф13 мм * - возможны изменения</p> <p>Номинальное напряжение - 0…24 (DC); 110/ 220 (AC) В</p> <p>Диаметр (сечение) проводника - 0,3 мм?</p> <p>Количество контактов - 4</p> <p>Цвет - белый</p> <p>Тип разъёма - F-M сборка, нетерминированные окончания</p> <p>Кабель - 4-х жильный (stranded)</p> <p>Диапазон рабочих температур - -20…+80 °С</p> <p>Материал - ПВХ, резина</p> <p>Ток - 1…2 А</p> <p>Длина в сборе - 400 ± 10 мм * - возможны изменения</p> <p>Класс защиты - IP68</p> <p>Диэлектрическая прочность - 1500 (50 Гц, 1 мин.) В</p> ]]></description> <weight>0.020</weight> <length>1.000</length> <width>1.000</width> <height>1.000</height> <barcode>2004204800006</barcode> <param name="Ток">1…2 А</param> <param name="Диаметр">Ф13 мм * - возможны изменения</param> <param name="Номинальное напряжение">0…24 (DC); 110/ 220 (AC) В</param> <param name="Диаметр (сечение) проводника">4 x 0,3 мм?</param> <param name="Количество контактов">4</param> <param name="Цвет">белый</param> <param name="Тип разъёма">Сборка кабельная герметичная серии WP (нетерминированные окончания)</param> <param name="Кабель">четырехжильный (stranded)</param> <param name="Диапазон рабочих температур">-20…+80 °С</param> <param name="Материал">ПВХ, резина</param> <param name="Длина в сборе">400 ± 10 мм * - возможны изменения</param> <param name="Класс защиты">IP68</param> <param name="Диэлектрическая прочность">1500 (50 Гц, 1 мин.) В</param> </offer> <offer id="42048Z0000Z50" group_id="42048" available="true"> <url>https://arduinko.ru/admin/index.php?route=product/product&path=&product_id=42048</url> <price>6860.5488</price> <currencyId>RUB</currencyId> <categoryId>754</categoryId> <picture>https://arduinko.ru/image/cache/catalog/ruelectronics/1627375632014785-1000x1000.jpg</picture> <store>true</store> <pickup>true</pickup> <delivery>true</delivery> <quantity>20</quantity> <cus_skucolor>50</cus_skucolor> <name>Герметичный разъем 4pin WP L=40 D=13mm 4*0.3mm2</name> <vendor>RUICHI</vendor> <vendorCode>88889</vendorCode> <model>4pin WP L=40 D=13mm 4*0.3mm2</model> <description><![CDATA[<p>Диаметр - Ф13 мм * - возможны изменения</p> <p>Номинальное напряжение - 0…24 (DC); 110/ 220 (AC) В</p> <p>Диаметр (сечение) проводника - 0,3 мм?</p> <p>Количество контактов - 4</p> <p>Цвет - белый</p> <p>Тип разъёма - F-M сборка, нетерминированные окончания</p> <p>Кабель - 4-х жильный (stranded)</p> <p>Диапазон рабочих температур - -20…+80 °С</p> <p>Материал - ПВХ, резина</p> <p>Ток - 1…2 А</p> <p>Длина в сборе - 400 ± 10 мм * - возможны изменения</p> <p>Класс защиты - IP68</p> <p>Диэлектрическая прочность - 1500 (50 Гц, 1 мин.) В</p> ]]></description> <weight>0.020</weight> <length>1.000</length> <width>1.000</width> <height>1.000</height> <barcode>2004204800006</barcode> <param name="Ток">1…2 А</param> <param name="Диаметр">Ф13 мм * - возможны изменения</param> <param name="Номинальное напряжение">0…24 (DC); 110/ 220 (AC) В</param> <param name="Диаметр (сечение) проводника">4 x 0,3 мм?</param> <param name="Количество контактов">4</param> <param name="Цвет">белый</param> <param name="Тип разъёма">Сборка кабельная герметичная серии WP (нетерминированные окончания)</param> <param name="Кабель">четырехжильный (stranded)</param> <param name="Диапазон рабочих температур">-20…+80 °С</param> <param name="Материал">ПВХ, резина</param> <param name="Длина в сборе">400 ± 10 мм * - возможны изменения</param> <param name="Класс защиты">IP68</param> <param name="Диэлектрическая прочность">1500 (50 Гц, 1 мин.) В</param> </offer> </offers> </shop> </yml_catalog>
Комментарии
Оставьте комментарий
Ваш email не будет опубликован. Обязательные поля помечены *