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

Яндекс Маркет

Назначение

Коннектор типа XML позволяет сформировать YML-фид каталога для Яндекс Маркета. Данные берутся из справочника Iteems и преобразуются в формат yml_catalog по заданному шаблону.

Общие шаги создания коннектора описаны в разделе Коннекторы.

Создание коннектора

  1. Перейдите в раздел Коннекторы.
  2. Нажмите Добавить коннектор.
  3. Укажите название, например «Яндекс Маркет — каталог».
  4. Выберите тип коннектора XML.
  5. Выберите справочник с товарными предложениями.
  6. Вставьте шаблон YML (см. ниже).
  7. Сохраните изменения.

Структура справочника

Для работы шаблона в справочнике должны быть поля, соответствующие переменным:

Переменная в шаблонеОписание
shop_nameНазвание магазина
company_nameНазвание компании
shop_urlURL сайта магазина
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_imageURL изображения
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> формируются только при наличии соответствующих данных в справочнике.

Настройка сопоставления полей

  1. Откройте созданный коннектор.
  2. Сопоставьте поля справочника с переменными шаблона.
  3. Укажите значения shop_name, company_name и shop_url.
  4. Сохраните настройки.

Результат

После включения коннектора Iteems формирует YML-фид, который можно передать в Яндекс Маркет. Фид обновляется при изменении данных в справочнике.

Рекомендации

  • Проверьте, что у всех активных предложений заполнены обязательные поля: название, цена, изображение.
  • Согласуйте идентификаторы категорий в шаблоне с категориями в личном кабинете Яндекс Маркета.
  • Перед публикацией протестируйте фид на небольшом наборе записей.