Вступление
YML (Yandex Market Language) — особый стандарт, разработанный Яндексом для принятия и размещения информации в базе данных Яндекс.Маркет. При размещении этого файла на вашем сайте регулярное обновление каталога на Яндекс.Маркет будет происходить автоматически и отражать все актуальные изменения (наличие, цена, появление новых товаров).
Единый формат позволяет быстро и эффективно обрабатывать предоставляемую магазинами информацию о товарах и услугах и размещать ее в каталоге Яндекс.Маркет. Таким образом, без размещения этого файла невозможно рекламироваться через Маркет. Подробно ознакомиться с техническими характеристиками и свойствами yml-файлов вы можете на официальном сайте Яндекс.Маркет, в разделе YML: https://yandex.ru/support/partnermarket/export/yml.html.

Яндексовский вариант формата XML. Это широко распространенный язык разметки, понятный сейчас практически любой системе. С его помощью информация обретает структуру. По сути, он обрамляет данные в теги, которые описывают, где и как должны располагаться эти данные, что они означают и вообще, что угодно. А самое прекрасное – это возможность создавать собственные теги, чем и воспользовались в Яндексе и фактически создали свой стандарт разметки, удобный для перемещения товаров из магазинов на их Маркет и обратно, а также между всяческими сайтами. Надо сказать, это очень полюбилось пользователям, и они охотно пользуются возможностями YML.
Для чего нужна YML-выгрузка
Как вы уже поняли, основная функция такого экспорта – это его последующая передача на другие сервисы и площадки, в первую очередь на Яндекс.Маркет.

Представьте себе, что в Маркет люди присылали бы файлы каждый в том виде, в котором он его ведёт: в таблице Excel со своими заголовками, кто-то соблюдая форматы ячеек, а кто-то нет, может, и вообще не в Экселе… Сколько лет понадобилось бы специалистам, чтобы разобраться в этом хаосе. К счастью, есть стандартизация, и все всё загружают красиво, в унифицированном виде, и получают тоже красиво, именно так, как хотели (название категорий, цена и т.д. – всё своё). Вы, конечно, можете загружать и табличные форматы, но придётся сильно ограничить свою фантазию.
Импорт данных в интернет-магазины
Что же мы подразумеваем под импортом данных в интернет-магазины? Для объяснения опишем сценарий, который наиболее типичен для владельцев интернет-магазинов.
Обычно владельцы интернет-магазинов хотят импортировать актульные данные из поставщиков. Им это нужно для того, чтобы актуализировать состояние базы данных своего интернет-магазина, чтобы у них быстро появлялись новинки, чтобы те товары, которые уже не продаются у поставщика, не были доступны для заказа в их интернет-магазине. И повторять этот процесс они хотят как можно чаще.
Данные поставщика — это:
- категории (с их иерархией или без),
- товары с описаниями, параметрами и атрибутами, изображениями, их комбинациями, если они есть,
- статус наличия, количество на складе, цена закупки, цена продажи, скидки, минимальный заказ.
Именно про эти данные будет идти речь.
Возможны два варианта работы с этими данными:
- интернет-магазин пустой, и нам не нужно учитывать, что в нем находится;
- интернет-магазин уже наполнен.
Будем рассматривать второй вариант, потому что он наиболее полно отображает специфику процесса импорта данных для интернет-магазинов.
Требования владельца интернет-магазина

Что обычно хочет владелец интернет-магазина? Требования с его стороны к автоматизации импорта данных такие:
- если появилась новая категория на поставщике, необходимо, чтобы она тоже была создана у него в магазине;
- чтобы товары, которые отсутствуют в его магазине и присутствуют у поставщика, появились (имеется ввиду с описаниями, характеристиками, картинками, вариантами цвета и т.д.) в нужной категории и (или) категории “Новинки”;
- если товар присутствует в магазине заказчика, но отсутствует на складе поставщика, то нужно этот товар отключить (деактивировать) либо изменить статус на “нет на складе” (это нужно, чтобы товар стал недоступным для заказа);
- если товар присутствует и в магазине и у поставщика, то нужно обновить цены и количество (если такие данные есть).
Скрытые требования

На самом деле менеджер интернет-магазина хочет большего от импорта. Это так называемые скрытые требования, про которые никто не говорит вслух, но как бы все подразумевают уже при приемке проекта или эксплуатации в первый месяц. Такими скрытыми требованиями для импорта данных в интернет-магазин являются следующие пункты:
- чтобы товары, которые пользователь вносит самостоятельно в интернет-магазин, процесс автоматического импорта не “менял” (не удалял, не деактивировал);
- чтобы правка описаний товаров, которые обновляются из склада поставщика, которые он делает с помощью копирайтеров, не пропадала (это важно для SEO);
- чтобы у новых категорий и товаров формировались правильные и красивые ЧПУ-“URL rewrite”;
- менять цену с учетом своей маржи, которая зависит от категории и популярности товара;
- получать отчеты о том, какие новые товары появились, а которых уже нет в продаже;
- чтобы процесс обновления данных в интернет-магазине был простой и занимал мало времени (несколько или 1 клик);
- если товар присутствует в системе поставщика в более чем в одной категории, то нужно привязать этот товар в соответствующие категории на стороне интернет-магазина;
- если товары, которые мы импортируем в интернет-магазин, это комбинационные товары (например, ботинок “красный цвет, 42 размер, 2300 рублей” и “черный цвет, 43 размер, 3100 рублей” и т.д.), надо, чтобы они обрабатывались корректно.
Какие бывают решения

Все требования, которые описаны выше, вызваны спецификой e-commerce, и алгоритм, который будет импортировать данные, должен учитывать их в полном объеме.
Как выполнить эти требования, какие инструменты могут быть использованы?
— пользоваться стандартным импортом CMS (обычно из файлов из csv / xls / xml и др.);
— импортировать через механизм обмена Shop-Script (Webasyst) (1С-Битрикс, UMI, HostCMS, и др., где есть поддержка YML);
— программировать свой собственный механизм импорта.
Анализ каждого из предложенных вариантов будет представлен ниже.
Импорт данных через csv — вещь сама по себе очень простая и должна работать надежно. Правда, как показывает практика, это не всегда так. Возникают вопросы, если надо импортировать что-то более сложное чем набор “имя, описание, картинка, артикул, цена”. Что делать с картинками, характеристиками, опциями и т.д.? Сегодня этот вариант импорта данных в CMS запрограммирован не всегда хорошо в большинстве реализаций и всегда требует доработок. Плюс ко всему — это промежуточные файлы (их же надо сформировать), требования к хостингу (ограничения). И самый главный минус — ручная работа, а точнее, много скучной и однотипной ручной работы, которую мало кто любит делать.
Импорт данных через механизм обмена Shop-Script (Webasyst). Сама по себе идея очень хорошая. Поддержка YML практически есть у всех, а если ее нет, то сам протокол можно эмулировать. Но вот реализация на стороне интернет-магазинов заставляет задавать много вопросов. Если смотреть в сторону эталонного для всех Битрикса, то можно просто сказать, что на объемах более 10 тысяч товаров этот механизм уже дает сбой. Могут быть проблемы с объемом доступной памяти для php-процесса. Скорость — это самая больная тема для импорта в Битрикс через YML. Почему так медленно сложно сказать, но на сегодня это так. Например, Битрикс по умолчанию импортирует не в стандартный инфоблок товаров, а в инфоблок, который специально создается для YML.
Программирование собственного механизма. Импортировать этим путем сложно и дорого, однако реализация дарит массу преимуществ, недоступных сегодня из коробки в предлагаемых решениях. На наш взгляд, если стоит задача выполнять пункты, обозначенные в требованиях к импорту данных в полном объеме, то только этот вариант способен удовлетворить требования.
Вывод
Итогом можно сделать следующий вывод: "Золотой серединой для обмена данными между поставщиком и дистрибьютером является YML-файл!"
Как правило данный файл храниться на хостинге поставщика и доступен по ссылке.
Для того чтобы внедрить YML-стандарт у себя в кампании нужно всего лишь подготовить максимально подробно свою товарную матрицу, а именно:
- Проработать структуру
- Проработать название товара
- Проработать артикулы товара
- Проработать описание и характеристики товара
- Проработать изображение товара (желательно без фона в формате .png)
- Поддерживать актуальное состояние остатков
- Скомпилировать матрицу согласно правилам YML
- Выложить файл у себя на хостинг
- Предоставить ссылку своим поставщикам
Данные процедуры можно выполнить в ручном режиме, что очень долго, дорого и глупо.
Второй вариант, это использование специального ПО (CMS):
- Shop-Script (Webasyst) - стоимость лицензии 20 000 руб. (коробочная версия)
- Bitrix24 - стоимость лицензии 139 000 руб. (коробочная версия)
- и др. - стоимость лицензии от 49 000 руб. (коробочная версия)
Так же не забывайте стоимость трудочасов соответствующих специалистов в частности Вебмастера и Контент-менеджера.
Дорожная карта внедрения YML
Наше агенство может помочь любым оптовым компаниям быстро внедрить YML-стандарт использования товарной матрицы для более удобного обмена с контрагентами и дистрибьютерами.

Так как мы являемся Премиум-партнером Webasyst, то и разрабатываем YML-файл исключительно на платформе Shop-Script.
Шаг №1 - Покупка лицензии Shop-Script
Шаг №2 - Установка лицензии на хостинг
Шаг №3 - Настройка лицензии и фреймворка Webasyst
Шаг №4 - Формирование товарной матрицы
Шаг №5 - Компилирование YML-файла
Стоимость каждого проекта строго индивидуальна! Основное влияние на цену оказывать количество артикулов в товарной матрице и степень подготовки контента для товарной карточки.
Внизу представлена стоимость лицензий и расценки на соответвующих специалистов для реализации данного проекта, согласно Договор-Оферте):
{productList ids="5,687,679"}
- Пуказов Ярослав Геннадьевич
- 6 марта 2021
