Подготовка 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 id="9012">
<!-- данные продукта #1 -->
</offer>
<offer id="9013">
<!-- данные продукта #2 -->
</offer>
Структура файлов для импорта продукта и для импорта SKU практически не отличается. Единственное отличие — при импорте SKU для элемента offer указывается не только id
, но также group_id
– идентификатор продукта. Это обусловлено тем, что 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">
Элемент | Пример | Обязательный | Описание |
---|---|---|---|
id | apple12_128gb | Да | Дополнительный идентификатор продукта или SKU. |
group_id | iphone12 | Да, если импортируете SKU | Элемент объединяет все SKU, которые являются вариациями одного продукта и должен иметь одинаковое значение. |
available | true | Нет | Товар есть в наличии или нет. |
Стандартные поля
Стандартные поля — это поля, которые уже встроены в маркет Altcraft Platform. Они отображаются в карточке продукта или SKU.
Элемент | Пример | Обязательный | Описание |
---|---|---|---|
name | Apple iPhone 12 128GB | Да | Название продукта или SKU |
vendor | Apple | Нет | Название производителя |
url | http://best.seller.ru/product_page.asp?pid=12348 | Нет | URL страницы товара на сайте магазина. |
price | 71990 | Да | Актуальная цена товара. |
oldprice | 72990 | Нет | Старая цена товара, должна быть выше текущей. |
currencyId | RUB | Да | Идентификатор валюты, в которой указана цена товара. Валюта должна быть задана в настройках маркета, иначе товар не буд ет импортирован. |
categoryId | 102 | Нет | Идентификатор категории товара. Через yml файл можно добавлять категории и подкатегории в маркет. Код ниже добавляется в элемент yml_catalog и создаёт категорию "Смартфоны" и две подкатегории "Apple" и "Xiaomi".<categories id="1"> |
picture | https://example.com/img/apple_phone_128.png | Нет | URL-адрес изображения товара |
delivery | false | Нет | Доставка доступна или нет |
manufacturer_warranty | true | Нет | Гарантия производителя |
barcode | 0156789012 | Нет | Штрихкод |
Дополнительные поля
Дополнительные поля — это стандартные элементы в структуре yml-файла, для которых по умолчанию не предусмотрены поля в ма ркете Altcraft Platform.
Прежде, чем импортировать товары с этими полями, необходимо предварительно создать дополнительные поля в разделе "Настройки". Далее при импорте настройте сопоставление системных полей.
Элемент | Пример | Обязательный | Описание |
---|---|---|---|
type | book | Нет | Особый тип товара. Является атрибутом элемента offer. |
store | true | Нет | Возможность купить товар без предварительного заказа. |
pickup | true | Нет | Возможность самовывоза из пунктов выдачи (во всех регионах, в которые доставляет магазин). |
vendorCode | A1234567B | Нет | Код производителя для данного товара. |
model | 3811 | Нет | Модель товара. |
sales_notes | Необходима предоплата. | Нет | Условия продажи товара. Используется, когда необходимо сообщить об ограничениях при заказе (минимальная сумма заказа, минимальное количество товаров или необходимость предоплаты) |
country_of_origin | Россия | Нет | Страна производства товара |
downloadable | false | Нет | Продукт можно скачать. |
adult | false | Нет | Товар имеет отношение к удовлетворению сексуальных потребностей. |
weight | 10 | Нет | Вес товара |
dimensions | 8.27/5.31/1.73 | Нет | Габариты товара |
Элементы param
Чтобы добавить в маркет поля для элементов param
, в деталях импорта отметьте галочкой опцию "Отсутствующие кастомные поля будут созданы".
Для каждого элемента будет создано новое дополнительное поле. Наименованием поля станет значение атрибута name
.
Элемент | Пример | Обязательный | Описание |
---|---|---|---|
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>