Проверка YML-фида должна закончиться ответом по каждому товару: какую цену увидит рекламная система, в какой валюте, есть ли настоящая скидка и совпадают ли эти данные с карточкой товара. Для этого недостаточно убедиться, что XML открывается. Нужны пять последовательных проверок: price, currencyId, справочник валют, oldprice и страница магазина.
Что требует схема Яндекс Директа
В требованиях к YML-фиду Яндекс задаёт для цены конкретные условия:
priceсодержит целое или десятичное число больше нуля;- дробная часть отделяется точкой;
- значение совпадает с ценой на сайте;
- при наличии
priceнуженcurrencyId; oldpriceдолжен быть вышеprice, а обе цены должны быть видны на сайте;- размер скидки может появиться в объявлении, если разница между
oldpriceиpriceсоставляет не меньше 5%.
Код BYN есть в списке поддерживаемых значений currencyId. Для магазина в Беларуси это позволяет передавать цену в белорусских рублях без пересчёта в другую валюту. Сам код нужно связать со справочником <currencies>, который расположен перед списком товаров.
Корректная связка выглядит так:
<currencies>
<currency id="BYN" rate="1"/>
</currencies>
<offer id="A-101">
<price>120.50</price>
<oldprice>150</oldprice>
<currencyId>BYN</currencyId>
</offer>Здесь price больше нуля, десятичный разделитель — точка, старая цена выше текущей, а currencyId совпадает с валютой в справочнике. Остаётся открыть карточку A-101 и проверить, что покупатель увидит те же 120,50 BYN и зачёркнутые 150 BYN.
Учебная проверка пяти товаров
Для воспроизводимого примера мы собрали YML с одним справочником валют и пятью товарами. Все названия, ссылки и цены учебные.
| ID | Фрагмент данных | Результат проверки |
|---|---|---|
| A-101 | 120.50, oldprice 150, BYN | Формат и логика цены корректны; нужна сверка с карточкой |
| A-102 | 119,90, BYN | Запятая не соответствует формату YML; заменить на точку в источнике выгрузки |
| A-103 | price 210, oldprice 200 | Старая цена ниже текущей; исправить данные или убрать oldprice |
| A-104 | price 0, BYN | Нулевая цена запрещена; передать реальную цену или исключить товар |
| A-105 | price 90, USD | В справочнике примера объявлен только BYN; добавить используемую валюту или исправить код |
Мы вставили этот фрагмент в анализатор товарных фидов WiseLab, выбрали правила Яндекс Директа и проверили пять товаров. Инструмент показал две блокирующие ошибки: нулевую цену A-104 и oldprice A-103, который не выше текущей цены. Остальные две проблемы выявила ручная сверка с официальной схемой: запятую в A-102 и ссылку A-105 на валюту, которой нет в справочнике примера.
Этот результат задаёт полезную границу автоматической проверки. Валидатор быстро находит формальные нарушения и показывает ID товара. Приёмка остаётся за специалистом: он сверяет схему, справочники и фактическую страницу магазина, а окончательный допуск смотрит в рекламной системе.
Цена проходит пять контрольных точек. Ошибка на раннем этапе требует исправления источника выгрузки, а расхождение с карточкой — синхронизации сайта и фида.
Проверяйте цену в фиксированном порядке
1. Найдите все товары с отсутствующей или нулевой ценой
Проверяйте полный файл, а не первые строки. Для каждого замечания сохраняйте offer id и фрагмент XML. Цена 0 не описывает бесплатный товар в этом сценарии: Яндекс требует значение больше нуля. Если цену нельзя показывать, согласуйте, должен ли такой товар попадать в рекламный фид.
2. Проверьте формат числа
Выгрузка из таблицы или учётной системы может сохранить локальную запятую: 119,90. В YML нужен вариант 119.90. Удаляйте пробелы, обозначение валюты и разделители тысяч из самого тега price: значение 1 299 BYN следует передать как число, а валюту — отдельным currencyId.
Исправление лучше вносить в источник экспорта. Ручная замена в готовом XML исчезнет при следующей автоматической выгрузке.
3. Свяжите currencyId со справочником
Соберите список всех значений currencyId из товаров и сравните его с ID в <currencies>. Для моновалютного магазина ожидается один понятный код. Если часть товаров внезапно ссылается на USD, выясните причину: реальная валютная цена, ошибка маппинга или остаток старой настройки.
Курс rate не следует использовать как способ скрыть ошибку масштаба. Товар с ценой 12900 вместо 129.00 останется неверным для покупателя, даже если XML формально разбирается.
4. Проверьте скидку
Для каждого oldprice выполните два контроля:
oldprice > price;- обе цены видны на странице товара.
Отдельно посчитайте долю скидки:
(oldprice − price) ÷ oldprice × 100%В учебном товаре A-101 это (150 − 120,50) ÷ 150 × 100% = 19,67%. Условие в 5% выполнено. Формула описывает только размер разницы; она не подтверждает законность или срок акции.
5. Сверьте фид, карточку и кабинет
Возьмите выборку из обычных товаров, скидочных позиций, дорогих товаров и остатков. На каждой карточке проверьте текущую цену, старую цену, валюту и наличие. Затем загрузите итоговую версию в рекламную систему и дождитесь её отчёта: локальная проверка не заменяет модерацию и фактический статус товаров.
Если цены меняются часто, фиксируйте время генерации YML и время проверки. Так можно отличить задержку обновления от постоянной ошибки экспорта.
Что передать разработчику
Фраза «в фиде неверные цены» заставляет повторить всю диагностику. Рабочая задача содержит:
- URL или имя проверенной версии фида;
- дату и время генерации;
offer id;- фактический фрагмент
price,oldpriceиcurrencyId; - значение на карточке товара;
- ожидаемое значение;
- правило, которое нарушено;
- способ повторной проверки.
Пример: «В версии от 4 октября 2026 года товар A-103 содержит price 210 и oldprice 200; старая цена должна быть выше текущей. Исправьте источник выгрузки или удалите oldprice, затем повторите полную проверку».
После правки сравните две полные версии и убедитесь, что число товаров не уменьшилось. Для этого пригодятся разбор о подсчёте товаров в YML и чек-лист приёмки исправленного фида. Если замечаний много, сначала разделите их по последствиям с помощью статьи об ошибках и предупреждениях YML, затем возвращайтесь к цене конкретного offer.
Источники
Материал подготовлен редакцией WiseLab с помощью AI. Источники и фактические утверждения проверены при подготовке.
Что думаете?
Загружаем комментарии…