YML-фид Яндекса

Выгрузка каталога OpenCart 4 в формате YML: категории, товары с ценами, скидками, наличием, картинками, производителем, артикулом и характеристиками — по адресу, который указывают в кабинете площадки.

Назначение и совместимость

YML (Yandex Market Language) — формат, который принимают сервисы Яндекса для загрузки каталога: Яндекс Маркет, Яндекс Товары (через Вебмастер), Яндекс Директ (товарные кампании), а также совместимые площадки. Формат у них один; различаются только формат даты в атрибуте date и набор необязательных тегов — это задаётся в настройках. В OpenCart 4.1.0.4 фидов нет; модуль строит фид прямо из базы магазина по запросу и хранит готовый результат в кэше.

КатегорииВсе включённые категории магазина или только отмеченные с их родителями.
ПредложенияВключённые товары отобранных категорий с ценой и ценой до скидки для выбранной группы покупателей, наличием, ссылкой, картинками.
Описание товараПроизводитель, артикул из поля «Модель», описание (текст или простая разметка), характеристики, вес и габариты, условия продажи.
КэшГотовый фид хранится заданное число минут; обновляется при сохранении настроек и кнопкой.

Проверено на OpenCart 4.1.0.4 и PHP 8.2. Другие версии OpenCart 4 не проверялись. Ядро не меняется: модуль — расширение типа «Каналы» со своим адресом на витрине.

В сборке OCM Store модуль встроен: фид доступен сразу после установки магазина, настройки — в Маркетинг → YML-фид Яндекса.

Установка

  1. Расширения → Установщик → «Загрузить», файл yml_feed_oc4.ocmod.zip (имя не менять: OpenCart 4 берёт из него код расширения).
  2. В строке «YML-фид Яндекса» — зелёная кнопка «Установить».
  3. Расширения → Расширения, тип «Каналы» → «Установить» у «YML-фид Яндекса».
  4. Обновите страницу: в разделе «Маркетинг» появился пункт «YML-фид Яндекса». Фид уже работает со значениями по умолчанию (все категории, валюта и группа покупателей магазина).

Права получает группа пользователя, который нажал «Установить». Другим группам — Система → Пользователи → Группы пользователей, маршрут extension/yml_feed_oc4/feed/yml (в сборке OCM Store модуль уже установлен и виден в Расширения → Расширения → Каналы; группы «Администратор» и «Менеджер магазина» получают права на него и на страницу настроек extension/yml_feed_oc4/yml_feed/page при установке магазина).

Адрес фида

Адрес показан вверху страницы настроек: https://ваш-домен/index.php?route=extension/yml_feed_oc4/feed/yml. Его указывают в кабинете площадки как источник данных (площадка сама скачивает фид по расписанию). Чтобы получить фид на другом языке магазина, добавьте &language=код (например, en-gb). При нескольких магазинах фид каждого магазина открывается по тому же адресу на его домене.

Настройки

Маркетинг → YML-фид Яндекса (или Расширения → Расширения → Каналы → YML-фид Яндекса → Редактировать).

НастройкаПо умолчаниюСмысл
СтатусвключеноВыключенный фид отдаёт страницу «не найдено»
Название магазина, Компанияпусто — из настроек магазинаТеги name (не больше 20 знаков по правилам площадки) и company
Валюта фидавалюта магазинаЦены пересчитываются по курсам магазина; рубль выгружается с кодом RUR (справка Яндекса принимает и RUR, и RUB; валюта должна совпадать с настройками кабинета)
Цены для группы покупателейгруппа по умолчаниюЦены, скидки и акции этой группы
Категорииничего не отмечено — всеТовары выгружаются из отмеченных категорий; их родительские категории попадают в список категорий фида автоматически. Подкатегории нужно отмечать отдельно
Не выгружать отсутствующиевыключеноВключено — товары с количеством 0 не выгружаются; выключено — выгружаются с available="false"
Описание товаратекст без разметкиНе выгружать; текст до 3000 знаков; с простой разметкой (абзацы, списки, выделение) в CDATA
Картинок на товар5От 0 до 20: основное изображение и дополнительные по порядку
ХарактеристикивключеноАтрибуты товара как теги param
Артикул из поля «Модель»включеноПоле «Модель» в тег vendorCode; производитель всегда в vendor
Штрихкодне выгружатьКакой идентификатор товара (Каталог → Идентификаторы, например EAN) выгружать в тег barcode
Вес и габаритывключеноweight в килограммах и dimensions в сантиметрах (длина/ширина/высота), если заполнены у товара; пересчёт из классов веса и длины магазина
Доставка, СамовывозвключеноТеги delivery и pickup для всех предложений; условия доставки задаются в кабинете площадки
Условия продажипустоТег sales_notes, не больше 50 знаков
Формат даты фидаRFC 3339 с часовым поясомАтрибут date: RFC 3339 — для Маркета и Товаров; ГГГГ-ММ-ДД чч:мм — как описано в требованиях Директа
Кэш, минут60Готовый фид в кэше магазина; 0 — без кэша. Сохранение настроек и кнопка «Очистить кэш» сбрасывают кэш

Что выгружается

Связь с модулем «SEO-поля»

Если установлен и включён модуль «SEO-поля» (в сборке OCM Store — всегда): товары с выключенной «Индексацией» в фид не попадают; категория предложения — главная категория товара; при включённой настройке «Канонический адрес с главной категорией» ссылка на товар строится с путём главной категории — тот же адрес, что в теге canonical страницы товара. Без модуля «SEO-поля» фид работает как обычно.

Удаление

Расширения → Расширения → Каналы → «Удалить» у «YML-фид Яндекса», затем Расширения → Установщик → удалить пакет. Настройки и пункт меню удаляются, кэш фида очищается.

Типовые вопросы