Яндекс Маркет
Назначение
Коннектор типа XML позволяет сформировать YML-фид каталога для Яндекс Маркета. Данные берутся из справочника Iteems и преобразуются в формат yml_catalog по заданному шаблону.
Общие шаги создания коннектора описаны в разделе Коннекторы.
Создание коннектора
- Перейдите в раздел Коннекторы.
- Нажмите Добавить коннектор.
- Укажите название, например «Яндекс Маркет — каталог».
- Выберите тип коннектора XML.
- Выберите справочник с товарными предложениями.
- Вставьте шаблон YML (см. ниже).
- Сохраните изменения.
Структура справочника
Для работы шаблона в справочнике должны быть поля, соответствующие переменным:
| Переменная в шаблоне | Описание |
|---|---|
shop_name | Название магазина |
company_name | Название компании |
shop_url | URL сайта магазина |
offers | Список товарных предложений |
offer.id | Идентификатор предложения |
offer.price | Базовая цена |
offer.new_price | Цена со скидкой (необязательно) |
offer.stock | Остаток на складе |
offer.multi_categories | Категории предложения (MultiSelect) |
offer.product.product_name | Название товара |
offer.product.vendor_code | Артикул |
offer.product.vendor | Производитель |
offer.product.big_image | URL изображения |
offer.product.description | Описание |
offer.product.weight | Вес (необязательно) |
offer.product.dimensions | Габариты: length, width, height (необязательно) |
В шаблоне используются фиксированные категории:
1000001— Мебельные щиты;1000009— Ступени.
Если предложение не привязано ни к одной из них, по умолчанию подставляется категория 1000001.
Шаблон YML
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="{{ "now" | date("Y-m-d H:i") }}">
<shop>
<name>{{ shop_name }}</name>
<company>{{ company_name }}</company>
<url>{{ shop_url }}</url>
<currencies>
<currency id="RUB" rate="1"/>
</currencies>
<categories>
<category id="1000001">Мебельные щиты</category>
<category id="1000009">Ступени</category>
</categories>
<offers>
{% for offer in offers %}
{% if offer.id and offer.price %}
<offer id="{{ offer.id }}" available="{{ offer.stock > 0 ? 'true' : 'false' }}">
<url>{{ shop_url }}/products/{{ offer.id }}</url>
<price>{{ offer.new_price | default(offer.price) }}</price>
{% if offer.new_price %}
<oldprice>{{ offer.price }}</oldprice>
{% endif %}
<currencyId>RUB</currencyId>
<categoryId>
{% if 1000001 in offer.multi_categories %}
1000001
{% elseif 1000009 in offer.multi_categories %}
1000009
{% else %}
1000001 <!-- По умолчанию Мебельные щиты -->
{% endif %}
</categoryId>
{% if offer.product.big_image %}
<picture>{{ offer.product.big_image }}</picture>
{% endif %}
<name>{{ offer.product.product_name }}</name>
<vendorCode>{{ offer.product.vendor_code | default(offer.id) }}</vendorCode>
<vendor>{{ offer.product.vendor | default('Ancoforest') }}</vendor>
<description>
{{ offer.product.description | default(offer.product.product_name) }}
</description>
{% if offer.product.weight %}
<weight>{{ offer.product.weight }}</weight>
{% endif %}
{% if offer.product.dimensions %}
<dimensions>
<length>{{ offer.product.dimensions.length }}</length>
<width>{{ offer.product.dimensions.width }}</width>
<height>{{ offer.product.dimensions.height }}</height>
</dimensions>
{% endif %}
</offer>
{% endif %}
{% endfor %}
</offers>
</shop>
</yml_catalog>
Логика шаблона
Отбор предложений
В фид попадают только записи, у которых заполнены id и price.
Наличие
Атрибут available устанавливается в true, если остаток (stock) больше нуля, иначе — false.
Цена
- В тег
<price>выводитсяnew_price, а при его отсутствии —price. - Если задана
new_price, в тег<oldprice>выводится базоваяprice.
Категория
Категория определяется по полю multi_categories. При отсутствии совпадений используется категория по умолчанию — «Мебельные щиты».
Необязательные поля
Теги <picture>, <weight> и <dimensions> формируются только при наличии соответствующих данных в справочнике.
Настройка сопоставления полей
- Откройте созданный коннектор.
- Сопоставьте поля справочника с переменными шаблона.
- Укажите значения
shop_name,company_nameиshop_url. - Сохраните настройки.
Результат
После включения коннектора Iteems формирует YML-фид, который можно передать в Яндекс Маркет. Фид обновляется при изменении данных в справочнике.
Рекомендации
- Проверьте, что у всех активных предложений заполнены обязательные поля: название, цена, изображение.
- Согласуйте идентификаторы категорий в шаблоне с категориями в личном кабинете Яндекс Маркета.
- Перед публикацией протестируйте фид на небольшом наборе записей.