Обогащение каталога

Проверка YML-фида: типичные ошибки и как их найти до выгрузки

Двенадцать ошибок, которые чаще всего встречаются в товарных выгрузках, и порядок проверки, который ловит их до того, как их увидит площадка.

Филимонов Иван3 мин чтения
Рабочий стол с распечатанными графиками, блокнотом и смартфоном
Фото: Jakub Żerdzicki / Unsplash

Товарная выгрузка ломается тихо. Файл отдаётся, площадка его принимает, товары «загружаются» — а половина каталога не появляется, или названия превращаются в набор символов. Разбираем, что проверять и в каком порядке.

Проверки по порядку

1. Фид вообще доступен

Тривиально и регулярно ломается. Ссылка должна открываться без авторизации, отдавать код 200 и не требовать cookie. Проверка через браузер, где вы уже авторизованы, не годится — нужен запрос со стороны.

2. Кодировка совпадает с объявленной

В первой строке XML указана кодировка. Значительная часть российских выгрузок отдаётся в windows-1251, и это нормально — ненормально, когда объявлено одно, а внутри другое.

Симптом: названия читаются как случайные символы. Ошибки при этом нет — файл формально валиден.

3. XML корректен

Незакрытые теги, недопустимые символы, амперсанд без экранирования в названии товара. Последнее — частая причина: «Болты & гайки» ломает разбор, если символ не экранирован.

4. Категории на месте

Самая частая содержательная ошибка: товар ссылается на categoryId, которого нет в списке категорий. Такие предложения площадки обычно отбрасывают молча — вы недосчитаетесь товаров и не поймёте почему.

Проверка: собрать все categoryId из предложений и убедиться, что каждый есть в разделе категорий.

5. Идентификаторы уникальны и стабильны

Уникальны — два предложения с одним id означают, что одно из них потеряется.

Стабильны — если id меняется при каждой выгрузке, площадка при каждом обновлении видит полностью новый каталог: старые товары исчезли, появились новые. Ломается всё, включая накопленную статистику и позиции в выдаче.

Проверка: сравнить идентификаторы двух последовательных выгрузок.

6. Цены осмысленны

Нули, отрицательные значения, цены с пробелами и валютными символами внутри числа. Отдельно: цена в копейках вместо рублей — редкая, но дорогая ошибка.

7. Наличие проставлено

Атрибут доступности должен быть у всех предложений. Отсутствие обычно трактуется по умолчанию, и умолчание может оказаться не тем, что вы имели в виду.

8. Картинки открываются

Ссылки на изображения должны быть абсолютными, доступными без авторизации и вести на существующие файлы. Битая ссылка — карточка без фото.

9. Характеристики без мусора

Служебные поля, пустые значения, шаблонные заглушки вида #PROP_TITLE#, дубли цены в свойствах. Всё это приезжает из настроек выгрузки и засоряет карточки.

10. Количество позиций соответствует ожиданиям

Простейшая и самая полезная проверка. Если в каталоге 20 000 товаров, а в фиде 12 000, дальше можно не смотреть — выгрузка неполная.

11. Размер и сжатие

Крупные фиды отдаются архивом. Если вы отдаёте сжатый файл, убедитесь, что потребитель это понимает: определять сжатие нужно по содержимому, а не по расширению в адресе.

12. Время генерации

Фид, который собирается десять минут, будет обрываться по таймауту у части потребителей. Предгенерация файла по расписанию решает это полностью.

Что автоматизировать

Ручная проверка по этому списку занимает час и делается один раз. Проблема в том, что выгрузка ломается позже — после обновления движка, изменения настроек или роста каталога.

Минимальный автоматический контроль:

Проверка Периодичность Сигнал
Фид доступен и отдаёт 200 ежедневно письмо при отказе
Число позиций ежедневно отклонение больше 10%
XML разбирается ежедневно письмо при ошибке
Категории на месте ежедневно число «сирот»

Вторая строка ловит большинство тихих поломок: неполная выгрузка проявляется именно падением количества.

Коротко

  • Выгрузка ломается тихо: файл валиден, а каталог неполный или нечитаемый.
  • Расхождение объявленной и фактической кодировки не даёт ошибки, только мусор в названиях.
  • Ссылка на несуществующую категорию — самая частая содержательная ошибка.
  • Нестабильные идентификаторы товаров ломают всё, что накапливается со временем.
  • Ежедневная проверка числа позиций ловит большую часть тихих поломок.

Вопросы по теме статьи

Какая ошибка в фидах встречается чаще всего?

Ссылка на несуществующую категорию: товар указывает categoryId, которого нет в списке категорий. Такие предложения площадка обычно отбрасывает молча.

Как проверить кодировку фида?

Сравнить объявленную в первой строке XML кодировку с фактической. Расхождение даёт не ошибку, а нечитаемые названия — самая тихая из возможных поломок.

Обязательно ли проверять фид, если он собирается автоматически?

Да, особенно если автоматически. Сбой в выгрузке проявляется не отказом, а частичным каталогом — и заметить это без проверки количества позиций нельзя.

Обогащение карточек товаров: описания, характеристики и теги

ИИ исправляет названия, пишет описания и дополняет характеристики, вы принимаете правки в таблице. Цены, наличие и артикулы не трогаются. На выходе — готовый YML.

Читайте дальше