Вернуться к списку

Создали модуль «Яндекс.Маркет для продавцов»: первая версия, изменившая правила игры

Кейс разработки B2B-продукта, который упростил интеграцию интернет-магазинов с маркетплейсом

2018 год. Время, когда маркетплейсов в современном понимании ещё не существовало. Интернет-магазины были на пике своей формы — каждый сам привлекал клиентов, сам обрабатывал заказы, сам решал все вопросы. И многие из них работали на платформе 1С-Битрикс.

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

Всё упиралось в, казалось бы, элементарную задачу: сформировать прайс-лист в формате YML. Но именно здесь возникали основные сложности.

Штатные инструменты Битрикса для формирования YML-файлов были очень ограниченными. Они позволяли выгружать только весь товарный каталог целиком.

Не было фильтров, гибкого сопоставления полей, возможности по-разному настроить выгрузку для разных групп товаров.

Каждый магазин, который хотел работать с Маркетом, вынужден был либо нанимать программиста для написания кастомной выгрузки фида, либо покупать платные решения.

Наш ход: ТЗ до первого созвона

Мы вошли в число агентств, к которым Яндекс.Маркет обратился с запросом на разработку модуля.

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

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

На встрече мы пришли не с вопросами, а с готовым видением. Это сработало: заказчик увидел в нас не просто исполнителя, а партнёра.

Фрагмент технического задания

Что было до нас

Чтобы оценить масштаб, нужно понимать, с чем конкурировал наш модуль на старте. Существовавшие решения для выгрузки YML можно было описать одной фразой: «выгрузить либо всё, либо ничего». Никакой гибкости:

  • скудный набор тегов-характеристик для товаров: описание, производитель, цена;
  • условия доставки товаров не поддерживаются как таковые;
  • фильтрация по цене, бренду, наличию? Что-то из области фантастики. Отфильтровать товары возможно только по разделу инфоблока: либо включаем раздел целиком, либо не включаем вовсе.

Продавцы либо мирились с мусором в прайс-листе, либо тратили десятки тысяч рублей на кастомные доработки. Мы хотели дать им возможность настраивать выгрузку под свои задачи без программистов и лишних затрат.

Что мы сделали в первой версии

Модуль вышел в октябре 2018 года. Но это была только точка старта. В первые же месяцы мы выпускали обновления каждые несколько дней — иногда по два-три релиза за неделю. Пользователи видели, что разработка идёт активно, а их пожелания реализуются почти мгновенно.

Первый релиз

Модуль «Яндекс.Маркет для продавцов» опубликован на Маркетплейсе. Базовая выгрузка YML с поддержкой простых товаров и торговых предложений.

Фильтры и копирование

Появились фильтры «Пусто/Не пусто» для отсева товаров с незаполненными полями. Добавлено копирование профилей выгрузки.

Типы товаров

Фильтрация по типу товара: раздельная выгрузка простых товаров и товаров с торговыми предложениями. Поддержка старых версий Битрикс.

Категория Маркета

Новый тип свойства инфоблока для выбора категории маркетплейса прямо в карточке товара. Фильтрация по остаткам на складах.

Условия самовывоза

Добавлен тег pickup-options. Появился тег min-quantity для минимального количества заказа.

Множественные фильтры

Возможность выбора нескольких значений в фильтрах для строковых и числовых полей. Добавлены utm-метки из полей элементов.

Выгрузка акций

Большое обновление: модуль научился выгружать на Маркет данные об акциях и скидках (тестовый режим).

Закупочная цена и доставка

Добавлен тег purchase_price. Появилась возможность настраивать delivery-options и pickup-options через сопоставление полей.

Финал первой главы

Версия 1.1.17: автодополнение по разделам, оптимизация фильтров, улучшение производительности.

Версия 2.0

Обработка заказов с Беру и Турбо-страниц. Подтверждение прав для Яндекс.Вебмастер. Новая эра модуля.

Расскажем про основные направления, по которым мы развивали модуль в этот период.

Гибкость выгрузки: от «всё или ничего» к тонкой настройке

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

Появились фильтры «Пусто / Не пусто» — это позволило отсекать товары с незаполненными важными полями. Добавили фильтрацию по типу товара: можно было отдельно выгружать простые товары и товары с торговыми предложениями. А фильтрация по остаткам на складах стала важной историей для магазинов, которые торгуют тем, что есть в наличии.

Интерфейс фильтров выгрузки

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

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

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

Поддержка сложных форматов и тегов YML

Мы понимали, что магазинам нужно выгружать не только базовые поля, но и дополнительные параметры, которые требуются для разных форматов размещения. Поэтому мы постоянно следили за развитием формата YML и добавляли поддержку новых тегов по мере их появления и по запросам пользователей.

Особое внимание уделили условиям доставки и самовывоза, минимальному количеству для заказа, уценённым товарам, закупочной цене, срокам годности, габаритам и весу товаров. Всё это можно было настраивать через сопоставление полей, без правки кода.

Сопоставление полей для выгрузки

Кроме того, мы добавили гибкую настройку utm-меток прямо из полей и свойств товаров, чтобы ссылки на Маркет автоматически формировались с нужными параметрами.

Работа со скидками и акциями

Магазины активно используют скидки, и мы сделали так, чтобы они корректно отражались в выгрузке.

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

Настройка выгрузки акций и скидок

Появилось отслеживание изменения курса валют и сравнение стоимости товара по акции с ранее выгруженной ценой. Также мы реализовали поддержку подарков из инфоблоков, которые не используются в выгрузке, но нужны для скидок.

Оптимизация и стабильность

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

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

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

Удобство работы и интерфейс

Мы делали интерфейс понятным и удобным, чтобы менеджеры интернет-магазинов могли настраивать выгрузку самостоятельно, без привлечения программистов. Добавили удобные источники данных (например, можно было брать информацию прямо из разделов каталога), копирование профилей, автодополнение и подсказки при заполнении полей. Предусмотрели права доступа, чтобы ограничить круг лиц, которые могут менять настройки. Агент уведомлений о новых версиях помогал пользователям всегда быть в курсе обновлений.

Поддержка формата Беру (будущего Маркета)

Уже в первых версиях мы начали закладывать поддержку формата, который потом стал основой для работы с маркетплейсом. Добавили необходимые теги и режимы выгрузки для Беру, включая поддержку НДС, работу с торговыми предложениями и формат «Только цены».

Реакция: отзывы, которые говорят сами за себя

Модуль появился на Маркетплейсе 10 октября 2018 года. И уже в первые дни пользователи начали писать то, что мы бережно храним в архиве:

Отзыв пользователя
Отзыв пользователя
Отзыв пользователя
Отзыв пользователя
Отзыв пользователя
Отзыв пользователя
Отзыв пользователя
Отзыв пользователя
Отзыв пользователя
Отзыв пользователя
Отзыв пользователя
Отзыв пользователя
Отзыв пользователя

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

Что это дало рынку

С выходом нашего модуля любой интернет-магазин на Битриксе получил возможность выйти на Яндекс.Маркет буквально за пару часов, а не за недели согласований и доработок. Снизился порог входа, увеличилось количество качественных фидов, выросли продажи у селлеров. А сам Яндекс.Маркет, который тогда только набирал обороты как маркетплейс, получил надёжный инструмент для своей экосистемы.

Статистика установок модуля на Маркетплейсе

Первая версия — начало пути

Этот кейс — только первый акт. Уже в следующих версиях мы добавили обработку заказов, поддержку «Беру», модели FBS/DBS, переход на Каталог товаров API. Но фундамент, заложенный в 2018 году — гибкость, модульность, ориентация на реальные потребности бизнеса — позволил нам развивать модуль дальше и оставаться основным разработчиком интеграции с Яндекс.Маркетом на платформе 1С-Битрикс.