Характеристики Маркета через API: как обновить карточку без потери данных
Как сопоставить категорийные характеристики Маркета с базой магазина, проверить единицы измерения и не стереть заполненные поля массовой загрузкой.
Содержание статьи
При обновлении категорийных характеристик через offer-cards/update нужно передавать полный набор данных: пустые значения могут стереть ранее внесённую информацию. Поэтому выгрузка «только что изменилось» без проверки конкретного метода опасна для карточек, которые уже заполнил контент-менеджер.
Сначала прочитать текущее состояние
Метод offer-cards возвращает ранее переданные сведения, категорию, статус и рекомендации по заполнению. По листовой категории запросите category parameters: он показывает ожидаемые характеристики и допустимые единицы измерения. Снимок текущего состояния нужен не для бесконечного архивирования, а для сравнения перед массовой перезаписью.
Внутренняя база и Маркет могут называть один признак по-разному. Документация приводит пример сопоставления названия цвета в магазине с характеристикой для фильтра. Важно сопоставить не только подпись поля, но и допустимые значения. Простое копирование произвольной строки может не дать того структурированного признака, который ожидает карточка.
Единицы измерения проверяются отдельно
Для характеристик с измерениями API возвращает список units и defaultUnitId. Если unitId не указан при обновлении, применяется единица по умолчанию. Поэтому число без единицы в исходном файле нельзя считать однозначным. Передавайте согласованную пару «значение — единица», когда это требуется схемой, и проверяйте результат на нескольких товарах.
Например, собственная таблица может хранить разные измерения под похожими заголовками. До загрузки определите, относятся ли они к товару, упаковке или отдельному компоненту. Это редакционный контроль качества исходных данных; API не способен восстановить смысл неверно подписанной колонки за продавца.
Защитить карточки при массовой загрузке
Соберите целевой полный набор характеристик и сравните его с текущим. Отдельно покажите поля, которые станут пустыми, и изменения единиц. Если очистка не планировалась, остановите пакет до выяснения причины. Технически корректный JSON не гарантирует, что из карточки не исчезнет полезная информация.
Сначала примените обновление к небольшой проверенной группе, затем перечитайте результат. Проверьте как изменяемые, так и неизменяемые характеристики. Только после этого расширяйте пакет. Для ранее настроенной категории можно пропустить первоначальное сопоставление, но нельзя считать его вечным: Маркет отмечает, что перечни характеристик со временем меняются.
Периодически пересматривайте справочник соответствий по каждой используемой категории. Храните ответственного за его изменения и причину обновления. Такой процесс помогает отделить новую характеристику площадки от ошибки вашей выгрузки и сохранить содержательную карточку при автоматизации, не заменяя проверку фактов генерацией красивого описания.
Материал отражает сведения на указанную дату. Правила и условия работы площадок могут измениться. Редакционные принципы