Интеграция с М.Видео: каталог, остатки и цены на автомате

Официальный API М.Видео закрывает только цены и остатки: цена ставится на будущую дату, остатки уходят полным срезом. Карточки и заказы остаются в кабинете. Разбор методов, правил, кодов ошибок и связки с другими маркетплейсами.

Алексей Н.
Автор Алексей Н. Автор статьи
Учётная система селлера соединена с витриной маркетплейса двумя потоками данных: цены и остатки; третий поток перечёркнут

Запрос «м видео api» обычно означает один вопрос: что на площадке можно перевести на автомат, а что придётся делать руками. Ответ у М.Видео короткий. Официальный API маркетплейса умеет ровно две вещи — обновлять цены и обновлять остатки. Карточки, заказы, отчёты и документы в публичной спецификации не описаны.

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

Что закрывает API М.Видео, а что остаётся в кабинете

Спецификация опубликована открыто, по адресу sellers.mvideo.ru/openapi, в формате OpenAPI, версия 1.0. Боевой сервер — sellers.mvideoeldorado.ru: домен общий для М.Видео и Эльдорадо, это не опечатка.

Задача селлера Как решается сейчас
Обновить цены API, до 1 000 позиций в запросе
Обновить остатки по складам API, синхронно или фоновой задачей
Проверить, как прошла загрузка API: статус задачи, прогресс, детализация ошибок
Завести и отредактировать карточку Кабинет продавца или Excel-шаблон
Получить и собрать заказ FBS Кабинет или сторонний сервис
Скачать отчёты и документы Кабинет продавца

В коммерческих предложениях встречается формулировка «полная интеграция с М.Видео по API» — с заказами, этикетками и отчётом комиссионера. Методов для этого в публичной спецификации нет. Значит, заказы у такого решения реализованы иначе, и спросить как — разумно до оплаты.

Доступ: Client ID и ключ

Пара «Client ID + ключ» создаётся самим селлером в личном кабинете, в разделе «Доступ к API». Ключей можно завести до трёх — по одному на каждую систему, которая будет ходить в площадку. Отдельной заявки на подключение API не требуется.

Если ключ не создаётся или запросы отбиваются, вопрос задают через форму обратной связи кабинета: раздел «Технические проблемы», тема «Доступ к API». Вход в кабинет и его разделы разобраны в отдельной статье про личный кабинет селлера М.Видео.

Две схемы авторизации в одном API

В спецификации живут два поколения методов, и авторизуются они по-разному.

  • Первое поколение. Клиент получает пару токенов — accessToken и refreshToken. Время жизни accessToken — два часа, дальше его обновляют по refreshToken, а когда истечёт и он, пару получают заново. В каждый запрос идёт заголовок Authorization: Bearer <accessToken>.
  • Второе поколение — методы /v2/price и /v2/stock. Здесь токен не нужен: ключ передаётся заголовком api-key. Схема проще, и для регулярной выгрузки цен и остатков её достаточно.

Требование, о котором забывают чаще всего: все запросы к API должны содержать заголовок User-Agent. Оно записано в спецификации отдельной строкой. Самописный скрипт без User-Agent площадка не пропустит, и ошибка при этом выглядит как проблема с доступом, а не с заголовком.

Цены: дата начала всегда в будущем

В одном запросе на обновление цен передают до 1 000 позиций. Обязательные поля — код товара М.Видео (SAP-код), цена, валюта и дата начала действия. Валюта принимает единственное значение — RUB. Дополнительно можно передать свой код номенклатуры и перечёркнутую цену.

Дальше начинаются правила площадки, и они жёстче, чем на Wildberries и Ozon. Все они зашиты в коды ошибок, которые вернёт API.

Код ошибки Что означает
START_DATE_CANNOT_BE_TODAY_OR_LESS_THAN_TODAY Дата начала действия цены должна быть будущей. Сегодняшним числом цену не поставить
DIFFERENT_WITH_PREVIOUS Новая цена продажи отличается от предыдущей меньше чем на 1 ₽
SAME_DATES_FOR_SAME_PRODUCTS В одной пачке два значения на один товар с одинаковой датой
MIN_PRICE_VALUE_VIOLATION Цена с учётом округления ниже минимального порога площадки
PROMO_GREATER_THAN_PREVIOUS Перечёркнутая цена выше действующей цены продажи
PREVIOUS_NOT_CHANGED Перечёркнутую цену можно загрузить только через два дня после повышения цены продажи
LESS_ALLOWED_PERCENT / MORE_ALLOWED_PERCENT Скидка вышла за коридор, разрешённый площадкой

Практический вывод один: репрайсер «на лету» здесь не работает. Цена на М.Видео — это плановое значение с датой, а не мгновенная переустановка. Логику переоценки под акции и распродажи нужно строить с запасом хотя бы в сутки. Перечёркнутую цену без цены продажи площадка тоже не примет.

Остатки: полный срез, а не дельта

В строке остатка передают код склада (в терминах М.Видео — код R-объекта), код товара, количество и единицу измерения: штуки или упаковки. Можно добавить свой код номенклатуры.

Главное правило записано в самой спецификации, и его легко пропустить: в одном запросе нужно отправлять все товары, по которым обновляются остатки, не разделяя их на части. Привычная по другим площадкам схема «догрузим только изменившиеся SKU» здесь приводит к некорректной обработке. Каждая выгрузка — полный срез склада.

Загрузка идёт в фоне. Метод возвращает идентификатор задачи, а дальше по этому идентификатору доступны три вещи: статус задачи, индикатор выполнения и детализация ошибок по строкам. Если интегратор не показывает вам эти три ответа, вы не узнаете, что половина остатков не встала.

Две ошибки встречаются чаще прочих: STOCK_MULTIPLICITY — один и тот же товар пришёл в выгрузке дважды, и ROBJECT_INCORRECT_FROM_SUPPLIER — в файле некорректные коды складов. Вторая почти всегда означает, что справочник складов в учётной системе разъехался с кабинетом. Какие вообще бывают склады и схемы у площадки, разобрано в статье про логистику М.Видео.

Чем это отличается от привычных Wildberries и Ozon

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

Пока у каждой позиции не проставлен код М.Видео, ни цены, ни остатки уходить не будут: и в ценах, и в остатках это обязательное поле.

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

Как связать М.Видео с остальными маркетплейсами

Отдельный скрипт под одну площадку окупается, когда М.Видео — единственный канал. Если каналов несколько, остатки логичнее вести в одном месте, иначе продажа на Ozon уменьшает физический склад, а на М.Видео товар продолжает висеть в наличии.

В SelSup интеграция с М.Видео устроена так:

  1. Товары связываете вручную по артикулу М.Видео: выгружаете Excel из раздела «Товары», заполняете столбец «Артикул М.Видео» и загружаете файл обратно через массовое редактирование. Импорт карточек из М.Видео не работает — площадка не отдаёт их наружу.
  2. После этого SelSup передаёт остатки по связанным товарам в М.Видео вместе с остальными каналами.
  3. Заказы FBS попадают в общий раздел заказов, статусы синхронизируются. Сборка, маршрутизация и печать идут в модуле «Умный склад».
  4. Интеграцию включает поддержка по запросу.

Полный список площадок и учётных систем есть на странице интеграций SelSup.

Что проверить до подключения

  1. Проставлены ли артикулы М.Видео у всех товаров, которые пойдут в выгрузку.
  2. Совпадают ли коды складов в учётной системе с кодами R-объектов в кабинете.
  3. Заложен ли в расписание сдвиг цены на будущую дату.
  4. Отправляется ли остаток полным срезом, а не приростом.
  5. Видите ли вы ошибки построчно, а не общий статус «загружено».
  6. Кто и как обрабатывает заказы FBS, если API их не отдаёт.

Если проще посмотреть, чем читать: покажем на вашем ассортименте, как связываются товары, как уходят цены и остатки и как заказы М.Видео попадают в общую сборку вместе с другими маркетплейсами. Записаться на демонстрацию SelSup — встреча занимает около получаса.

Частые вопросы

Есть ли у М.Видео открытый API?

Да. Спецификация лежит по адресу sellers.mvideo.ru/openapi и доступна без регистрации. Возможности в ней описаны две: управление ценами и управление остатками.

Можно ли получать заказы по API М.Видео?

В публичной спецификации методов для заказов нет. Заказы обрабатывают в кабинете продавца или в стороннем сервисе. Если подрядчик обещает заказы «по API площадки», уточните, о каком именно контуре речь.

Сколько ключей можно создать?

До трёх. Этого хватает, чтобы развести доступ между учётной системой, сервисом управления продажами и тестовым контуром.

Почему новая цена не применилась сразу?

Потому что API не принимает сегодняшнюю или прошедшую дату начала действия цены. Значение всегда ставится на будущую дату, и мгновенной переоценки на площадке нет.

Почему обновились не все остатки?

Чаще всего выгрузку разбили на части. Площадка ждёт все позиции одним запросом. Вторая причина — дубли товара в одном файле или коды складов, которых нет в кабинете.

Нужен ли программист, чтобы подключить интеграцию?

Для самописного скрипта — да: понадобится обработка токенов, фоновых задач и кодов ошибок. Через готовый сервис достаточно создать ключ в кабинете и проставить артикулы М.Видео у товаров.

Каналы SelSup

Продолжайте читать и смотреть

Новости маркетплейсов, автоматизация и практические разборы ИИ — на удобной для вас площадке.

Следующий шаг

Посмотрите, как SelSup работает на ваших задачах

Покажем, как SelSup помогает автоматизировать процессы и контролировать результат.

Больше лайфхаков для селлеров и полезных советов — в нашем телеграм-канале
Подписаться на рассылку
Присоединяйтесь к списку наших подписчиков, чтобы получать последние обновления и статьи на ваш e-mail.
Спасибо!
Ваша заявка принята. Мы свяжемся с вами в ближайшее время.