Универсальный экспорт товаров в Яндекс.Маркет

Универсальный экспорт товаров в Яндекс.Маркет

29 октября 2014


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

Итак, что же послужило причиной создания модуля выгрузки в Яндекс.Маркет? Дело в том, что однажды, нам для одного из интернет-магазинов, понадобилось сделать выгрузку товаров, но подходящего для наших целей готового решения мы не нашли. Задача заключалась в том, чтобы для разных типов товаров организовать выгрузку их индивидуальных наборов свойств (тегов) в единый YML-файл, а также сделать этот процесс генерации YML-файла пошаговым, с установленным лимитом. Существующие модули этого сделать не позволяли.

Располагая достаточным количеством времени, мы решили сделать универсальный модуль выгрузки, который бы позволял решать все эти задачи, а также, был удобным и простым в настройке, без необходимости лазить в документацию Яндекса. Вариант реализации в виде компонента мы отбросили сразу, так как он нес некоторые ограничения и не позволял в полной мере реализовать поставленные задачи. В итоге родился алгоритм работы, который позволил бы использовать этот модуль практически для любого интернет-магазина с практически любыми требованиями, предъявляемыми к экспорту товаров в Маркет. Что и было сделано.

Фото 1: «1.png»

Принцип настройки модуля прост, и сводится в три основных раздела:
  • «Общие настройки магазина», в котором указываются все настройки, входящие в YML-файл до генерации тега <offers> с описанием всех торговых предложений.
  • «Источники данных», - это список элементов (источников данных), в каждом из которых хранятся выбранные Вами группы разделов и/или элементов, с общими свойствами (элементами тега <offer>Фото 2: «;)», которые будут выгружаться в YML.
  • «Правила выгрузки», - это тоже список элементов, в которых хранятся настройки правил выгрузки для созданных ранее «Источников данных». Правила определяют, какие значения должны формироваться для элементов тега <offer> да и какие вообще элементы должны экспортироваться. К каждому правилу указывается свой индивидуальный источник данных!
Данные настройки доступны в панели администратора, в разделе «Сервисы» => «Выгрузка в Я.Маркет (MIBIX)».

Фото 3: «2.png»

Не будем подробно останавливаться на разделе «Общих настроек магазина», там все довольно просто. Интереснее будет рассмотреть следующие 2 раздела, которые в целом похожи на инфоблоки, - список элементов, их фильтрация, добавление, редактирование, удаление и прочее. Только элементами здесь служат настройки, в которых Вы выбираете разделы/товары (в элементах раздела «Источники данных») и задаете для них индивидуальные правила выгрузки (в элементах раздела «Правила выгрузки»). Каждому «правилу» назначается свой уникальный «источник»!

Вам нужны индивидуальные правила выгрузки для тех 5 товаров и одного из разделов? Пожалуйста! - Укажите эти настройки в новом элементе «источника данных» и привяжите к нему Ваше новое «правило выгрузки» с нужными настройками. Источник привязывается к правилу в настройках элемента «Правила выгрузки».

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

Фото 4: «3.png»

Модуль экспорта в Яндекс.Маркет поддерживает все 7 типов товаров, а также экспорт 99% всех возможных тегов согласно его документации. Таким образом, теперь у каждого магазина есть возможность максимально адаптировать выгрузку своих товаров и их свойства (теги) на торговую площадку Маркета. При выборе нужного типа товара срабатывает Ajax-механизм, который показывает только те поля, которые относятся к выбранному товарному типу.

Для каждого поля настроек мы полностью продублировали его описание из документации Яндекса и указали тег, который относится к этому полю. Это удобно, как для тех, кто уже знаком с Яндекс.Маркетом, позволяя быстро найти и выставить настройки для нужных тегов, так и для новичков, которым не придется лезть в документацию, чтобы понять смысл настройки того или иного поля. Таким образом, мы продокументировали все 100% полей (тегов) модуля, которые отвечают за формирование YML-файла.

При настройке практически каждого поля «правила», Вы можете указать свое собственное значение, применяемое в данном «правиле» или указать свойство товарного инфоблока, из которого оно должно быть сформировано. При выборе установки своего значения, появится дополнительное текстовое поле, куда Вы можете внести Ваше значение.

Фото 5: «4.png»

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

Фото 6: «5_.png»

В каждом правиле выгрузке Вы также можете указывать неограниченное количество дополнительных параметров товара ( тег <param> )

Очень часто в интернет-магазинах для товаров используется свойство указания похожих (рекомендуемых) товаров. Это свойство тоже можно экспортировать.

Ну и напоследок, хотелось бы обратить внимание на сам способ формирования YML-файла. В нашем модуле реализовано целых 2 способа:
  • «На лету», - когда Вы вызываете файл /mibix_yandex_export.php в корне сайта, который в момент запуска формирует за один этап всю выгрузку и выдает сразу же результат. Этот файл Вы можете сразу же подсунуть Яндексу, который при каждом своем обращении будет получать актуальную версию YML-файла. К сожалению, как правило, при большом товарном ассортименте данный способ не подходит, так как из-за большой нагрузки на сервер/хостинг вызывает разные ошибки. Для решения этой проблемы мы разработали второй способ.
  • «Пошаговый», - когда YML-файл генерируется в несколько этапов, причем лимит для каждого шага Вы задаете ему сами в настройках. Для генерации YML-файла данным способом нужно вызвать файл /mibix_yandex_create.php, который находится в корне сайта напрямую или через CRON. В результате процесс экспорта пройдет в несколько этапов (шагов) и его результатом будет сформированный YML-файл /yandex_export.xml, который также будет расположен в корне сайта (впрочем путь и название этого файла Вы тоже можете сменить в настройках).
Фото 7: «7.png»

В процессе разработки данного модуля нами была проделана действительно большая работа, обработан большой объем данных и ушло много времени. Будем надеяться, что он Вам понравится и будет востребован, чтобы мы смогли развивать его и дальше. Тем более, что у нас остался еще большой список того, что нам хотелось бы в нем реализовать. Ждем от Вас замечаний, предложений и отзывов!

Желаем Вам успехов!