Итак, что же послужило причиной создания
[spoiler]
Располагая достаточным количеством времени, мы решили сделать универсальный модуль выгрузки, который бы позволял решать все эти задачи, а также, был удобным и простым в настройке, без необходимости лазить в документацию Яндекса. Вариант реализации в виде компонента мы отбросили сразу, так как он нес некоторые ограничения и не позволял в полной мере реализовать поставленные задачи. В итоге родился алгоритм работы, который позволил бы использовать этот модуль практически для любого интернет-магазина с практически любыми требованиями, предъявляемыми к экспорту товаров в Маркет. Что и было сделано.
Принцип настройки модуля прост, и сводится в три основных раздела:
- «Общие настройки магазина», в котором указываются все настройки, входящие в YML-файл до генерации тега <offers> с описанием всех торговых предложений.
- «Источники данных», - это список элементов (источников данных), в каждом из которых хранятся выбранные Вами группы разделов и/или элементов, с общими свойствами (элементами тега <offer>, которые будут выгружаться в YML.
- «Правила выгрузки», - это тоже список элементов, в которых хранятся настройки правил выгрузки для созданных ранее «Источников данных». Правила определяют, какие значения должны формироваться для элементов тега <offer> да и какие вообще элементы должны экспортироваться. К каждому правилу указывается свой индивидуальный источник данных!
Не будем подробно останавливаться на разделе «Общих настроек магазина», там все довольно просто. Интереснее будет рассмотреть следующие 2 раздела, которые в целом похожи на инфоблоки, - список элементов, их фильтрация, добавление, редактирование, удаление и прочее. Только элементами здесь служат настройки, в которых Вы выбираете разделы/товары (в элементах раздела «Источники данных») и задаете для них индивидуальные правила выгрузки (в элементах раздела «Правила выгрузки»). Каждому «правилу» назначается свой уникальный «источник»!
Вам нужны индивидуальные правила выгрузки для тех 5 товаров и одного из разделов? Пожалуйста! - Укажите эти настройки в новом элементе «источника данных» и привяжите к нему Ваше новое «правило выгрузки» с нужными настройками. Источник привязывается к правилу в настройках элемента «Правила выгрузки».
Таким образом, Вы можете создавать неограниченное количество «источников» и «правил» для них. Благодаря этому Вы имеете возможность очень гибко управлять выгрузкой нужной информации в Яндекс.Маркет. На наш взгляд, это идеальный подход, как для обычных магазинов с определенным типом продукции, так и для магазинов с широким товарным ассортиментом.
Для каждого поля настроек мы полностью продублировали его описание из документации Яндекса и указали тег, который относится к этому полю. Это удобно, как для тех, кто уже знаком с Яндекс.Маркетом, позволяя быстро найти и выставить настройки для нужных тегов, так и для новичков, которым не придется лезть в документацию, чтобы понять смысл настройки того или иного поля. Таким образом, мы продокументировали все 100% полей (тегов) модуля, которые отвечают за формирование YML-файла.
При настройке практически каждого поля «правила», Вы можете указать свое собственное значение, применяемое в данном «правиле» или указать свойство товарного инфоблока, из которого оно должно быть сформировано. При выборе установки своего значения, появится дополнительное текстовое поле, куда Вы можете внести Ваше значение.
Для каждого правила экспорта Вы можете указать желаемый раздел, в котором должна располагаться ваша группа товаров на Яндекс.Маркете. Специально для этого мы перенесли структуру разделов с Яндекс.Маркета и сделали соответствующую настройку.
В каждом правиле выгрузке Вы также можете указывать неограниченное количество дополнительных параметров товара ( тег <param> )
[IMG ID=965118file]
Очень часто в интернет-магазинах для товаров используется свойство указания похожих (рекомендуемых) товаров. Это свойство тоже можно экспортировать.
Ну и напоследок, хотелось бы обратить внимание на сам способ формирования YML-файла. В нашем модуле реализовано целых 2 способа:
- «На лету», - когда Вы вызываете файл /mibix_yandex_export.php в корне сайта, который в момент запуска формирует за один этап всю выгрузку и выдает сразу же результат. Этот файл Вы можете сразу же подсунуть Яндексу, который при каждом своем обращении будет получать актуальную версию YML-файла. К сожалению, как правило, при большом товарном ассортименте данный способ не подходит, так как из-за большой нагрузки на сервер/хостинг вызывает разные ошибки. Для решения этой проблемы мы разработали второй способ.
- «Пошаговый», - когда YML-файл генерируется в несколько этапов, причем лимит для каждого шага Вы задаете ему сами в настройках. Для генерации YML-файла данным способом нужно вызвать файл /mibix_yandex_create.php, который находится в корне сайта напрямую или через CRON. В результате процесс экспорта пройдет в несколько этапов (шагов) и его результатом будет сформированный YML-файл /yandex_export.xml, который также будет расположен в корне сайта (впрочем путь и название этого файла Вы тоже можете сменить в настройках).
В процессе разработки данного модуля нами была проделана действительно большая работа, обработан большой объем данных и ушло много времени. Будем надеяться, что он Вам понравится и будет востребован, чтобы мы смогли развивать его и дальше. Тем более, что у нас остался еще большой список того, что нам хотелось бы в нем реализовать. Ждем от Вас замечаний, предложений и отзывов!
Страничка модуля на нашем сайте:
Желаем Вам успехов!