Перейти к основному содержимому

Подготовка YML-файла

Товары в Маркете представлены двумя сущностями: продукты и SKU.

Продукт — это товар или услуга для продажи. SKU — это модификатор продукта, т.е. группа товаров, которая выделяется в одном продукте по некоторым параметрам (цвет, размер, вес, модель, комплектация и т.д.).

Для загрузки данных о товарах в платформу используется файл в формате yml или .zip/.tar.gz архив, содержащий yml-файлы. В случае, если вы настраиваете импорт по расписанию, вы должны указать ссылку на yml-файл.

Формат YML (Yandex Market Language) — это формат данных для товарных платформ, разработанный Яндексом. Ознакомиться с его полной структурой вы можете по этой ссылке.

Структура таких файлов выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2017-02-05 17:22">
<shop>
...
<offers>
...
</offers>
<gifts>
...
</gifts>
<promos>
...
</promos>
</shop>
</yml_catalog>

Список всех товаров для импорта передаётся в элементе offers (предложения магазина). Этот элемент, в свою очередь, содержит элементы offer.

подсказка

Больше информации об элементе offer вы найдёте здесь.

Каждый продукт и SKU описывается в отдельном элементе offer. Для элемента указывается атрибут id, уникальный для каждого товара:

Offer для продуктов

<offer id="9012">
<!-- данные продукта #1 -->
</offer>
<offer id="9013">
<!-- данные продукта #2 -->
</offer>

Структура файлов для импорта продукта и для импорта SKU практически не отличается. Единственное отличие — при импорте SKU для элемента offer указывается не только id, но также group_id – идентификатор продукта. Это обусловлено тем, что SKU всегда привязывается к определенному продукту.

Offer для SKU
<offer id="1001" group_id="9012">
<!-- данные SKU #1 в продукте #1 -->
</offer>
<offer id="1002" group_id="9012">
<!-- данные SKU #2 в продукте #1 -->
</offer>
предупреждение

Обратите внимание, SKU – это различные вариации одного продукта, поэтому значение атрибута group_id должно быть одинаковым для всех SKU одного продукта.

Структура элемента offer

Атрибуты offer

Пример записи атрибута:

<offer id="iphone12" available="true">
ЭлементПримерОбязательныйОписание
idapple12_128gbДаДополнительный идентификатор продукта или SKU.
group_idiphone12Да, если импортируете SKUЭлемент объединяет все SKU, которые являются вариациями одного продукта и должен иметь одинаковое значение.
availabletrueНетТовар есть в наличии или нет.

Стандартные поля

Стандартные поля — это поля, которые уже встроены в маркет Altcraft Platform. Они отображаются в карточке продукта или SKU.

ЭлементПримерОбязательныйОписание
nameApple iPhone 12 128GBДаНазвание продукта или SKU
vendorAppleНетНазвание производителя
urlhttp://best.seller.ru/product_page.asp?pid=12348НетURL страницы товара на сайте магазина.
price71990ДаАктуальная цена товара.
oldprice72990НетСтарая цена товара, должна быть выше текущей.
currencyIdRUBДаИдентификатор валюты, в которой указана цена товара.
Валюта должна быть задана в настройках маркета, иначе товар не будет импортирован.
categoryId102НетИдентификатор категории товара.

Через yml файл можно добавлять категории и подкатегории в маркет. Код ниже добавляется в элемент yml_catalog и создаёт категорию "Смартфоны" и две подкатегории "Apple" и "Xiaomi".

<categories id="1">
<category id="101" parentId="1">Смартфоны</category>
<category id="102" parentId="1">Apple</category>
<category id="102" parentId="1">Xiaomi</category>
</categories>
picturehttps://example.com/img/apple_phone_128.pngНетURL-адрес изображения товара
deliveryfalseНетДоставка доступна или нет
manufacturer_warrantytrueНетГарантия производителя
barcode0156789012НетШтрихкод

Дополнительные поля

Дополнительные поля — это стандартные элементы в структуре yml-файла, для которых по умолчанию не предусмотрены поля в маркете Altcraft Platform.

Прежде, чем импортировать товары с этими полями, необходимо предварительно создать дополнительные поля в разделе "Настройки". Далее при импорте настройте сопоставление системных полей.

ЭлементПримерОбязательныйОписание
typebookНетОсобый тип товара.
Является атрибутом элемента offer.
storetrueНетВозможность купить товар без предварительного заказа.
pickuptrueНетВозможность самовывоза из пунктов выдачи (во всех регионах, в которые доставляет магазин).
vendorCodeA1234567BНетКод производителя для данного товара.
model3811НетМодель товара.
sales_notesНеобходима предоплата.НетУсловия продажи товара.
Используется, когда необходимо сообщить об ограничениях при заказе (минимальная сумма заказа, минимальное количество товаров или необходимость предоплаты)
country_of_originРоссияНетСтрана производства товара
downloadablefalseНетПродукт можно скачать.
adultfalseНетТовар имеет отношение к удовлетворению сексуальных потребностей.
weight10НетВес товара
dimensions8.27/5.31/1.73НетГабариты товара

Элементы param

Чтобы добавить в маркет поля для элементов param, в деталях импорта отметьте галочкой опцию "Отсутствующие кастомные поля будут созданы".

Для каждого элемента будет создано новое дополнительное поле. Наименованием поля станет значение атрибута name.

ЭлементПримерОбязательныйОписание
param
<offer>
<!-- элементы, входящие в offer -->
<param name="Размер экрана" unit="дюйм">27</param>
<param name="Материал">алюминий</param>
<param name="Wi-Fi">есть</param>
</offer>
НетВсе важные характеристики товара — цвет, размер, объем, материал, вес, возраст, пол, и т. д. В YML элемент offer может содержать несколько элементов param (один элемент param — одна характеристика).
Подробнee

Примеры элемента offer

Пример offer для продукта

При импорте файла с таким содержимым в маркет будут добавлены два продукта: Apple iPhone 12 и Xiaomi 12X.

<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2017-02-05 17:22">
<shop>
<name>BestSeller</name>
<company>Tne Best inc.</company>
<url>http://best.seller.ru</url>
<categories>
<category id="1">Смартфоны</category>
<category id="101" parentId="1">Apple</category>
<category id="102" parentId="1">Xiaomi</category>
</categories>
<offers>
<offer id="iphone12" available="true">
<name>Apple iPhone 12</name>
<vendor>Apple</vendor>
<url>http://best.seller.ru/product_page.asp?pid=12348</url>
<price>83990</price>
<oldprice>89990</oldprice>
<currencyId>RUB</currencyId>
<categoryId>101</categoryId>
<picture>https://example.com/img/apple_phone.png</picture>
<delivery>true</delivery>
<manufacturer_warranty>true</manufacturer_warranty>
<barcode>0156789012</barcode>
<dimensions>8.27/5.31/1.73</dimensions>
<weight>135</weight>
<param name="Камера">Dual 12MP</param>
<param name="ОС">iOS 14</param>
</offer>
<offer id="xiaomi12" available="true">
<name>Xiaomi 12X</name>
<vendor>Xiaomi</vendor>
<url>http://best.seller.ru/product_page.asp?pid=12345</url>
<price>62990</price>
<oldprice>69990</oldprice>
<currencyId>RUB</currencyId>
<categoryId>102</categoryId>
<picture>https://example.com/img/xiaomi_phone.png</picture>
<delivery>true</delivery>
<manufacturer_warranty>true</manufacturer_warranty>
<barcode>0123456789379</barcode>
<dimensions>152,7/69,9/8,16</dimensions>
<weight>176</weight>
<param name="Камера">50MP</param>
<param name="ОС">Snapdragon 870</param>
</offer>
</offers>
</shop>
</yml_catalog>

Пример offer для SKU

При импорте из этого файла будут добавлены два SKU для продукта Apple iPhone 12: Apple iPhone 12 128GB и Apple iPhone 12 256GB.

<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2017-02-05 17:22">
<shop>
<name>BestSeller</name>
<company>Tne Best inc.</company>
<url>http://best.seller.ru</url>
<offers>
<offer id="apple12_128gb" group_id="iphone12" available="true">
<name>Apple iPhone 12 128GB</name>
<vendor>Apple</vendor>
<url>http://best.seller.ru/product_page.asp?pid=12358</url>
<price>71990</price>
<oldprice>72990</oldprice>
<currencyId>RUB</currencyId>
<categoryId>101</categoryId>
<picture>https://example.com/img/apple_phone_128.png</picture>
<delivery>true</delivery>
<manufacturer_warranty>true</manufacturer_warranty>
<barcode>0156789012</barcode>
<dimensions>8.27/5.31/1.73</dimensions>
<weight>135</weight>
<param name="Камера">Dual 12MP</param>
<param name="ОС">iOS 14</param>
</offer>
<offer id="apple12_256gb" group_id="iphone12" available="true">
<name>Apple iPhone 12 256GB</name>
<vendor>Apple</vendor>
<url>http://best.seller.ru/product_page.asp?pid=12359</url>
<price>83990</price>
<oldprice>89990</oldprice>
<currencyId>RUB</currencyId>
<categoryId>102</categoryId>
<picture>https://example.com/img/apple_phone_256.png</picture>
<delivery>true</delivery>
<manufacturer_warranty>true</manufacturer_warranty>
<barcode>0156789012</barcode>
<dimensions>8.27/5.31/1.73</dimensions>
<weight>135</weight>
<param name="Камера">Dual 12MP</param>
<param name="ОС">iOS 14</param>
</offer>
</offers>
</shop>
</yml_catalog>