Экспорт товаров в Яндекс.Маркет в формате YML при помощи PHP-класса


Экспорт в Yandex.Market #1406

YML — формат представления информации о магазине, размещаемых в нем товарах и ставках, созданный специально для Yandex.Market.

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

Полное обновление данных в Яндекс.Маркете осуществляется один раз в сутки. Частичные обновления, такие как изменение цены или количества, происходят каждые 2 часа.

Шаг 1

Для того чтобы запланировать YML-экспорт товаров Вашего магазина, зайдите в системе управления сайтом в раздел редактирования магазина и пройдите по ссылке «Экспорт».

Шаг 2

Далее, в открывшемся окне нажмите «Yandex.Market».

Шаг 3

Появится автоматически сгенерированная ссылка в формате YML — скопируйте ее и залейте в Yandex.Market.

Нажмите «Посмотреть», чтобы открыть файл экспорта в браузере или скачать архив с файлом (зависит от настроек, описанных ниже).

Шаг 4

Также Вы можете задать настройки экспорта YML, пройдя по соответствующей ссылке.

Для настройки выгрузки данных в YML администратору сайта доступны следующие параметры:

Выгрузка товаров для Яндекс.Маркета (yml)

В данной статье хотелось бы поделиться опытом выгрузки каталога товаров в Drupal 7 Commerce, рассказать о том с какими проблемами столкнулись и какие решения были реализованы.

Для экспорта используем модуль views и views_data_export , также использовалась официальная документация и статья блога drupal-coder.

Нам нужно сделать два views со своими шаблонами вывода, views категорий и views товаров.

Views категорий

Создаем новый views, создавать страницу или блок не нужно, просто переходим к дальнейшему редактированию, где добавляем отображение «Data export». Устанавливаем формат вывода XML, настройки оставляем по умолчанию, указываем путь вывода файла. Доступ к просмотру материалов нужно оставить открытым, чтобы Яндекс.Вебмастер мог читать ваш файл.


Сейчас разберем шаблоны вывода, которые состоят из трех частей — header, body, footer(где export_product — машинное имя views):

views-data-export-xml-header—export_product.tpl.php:

views-data-export-xml-body—export_product.tpl.php:

views-data-export-xml-footer—export_product.tpl.php:

Views товаров

Добавляем новый views, делаем тоже самое что и в категориях, только необходимо в разделе «advanced» в настройках запроса поставить галочку в графе » Выключить перезапись (rewriting) SQL «.

Здесь нам также необходимо создать свои шаблоны вывода, чтобы определить структуру вывода нашего файла:

views-data-export-xml-header—export_product_node.tpl.php:

Как видно в коде, мы вставили в шапку наш views категорий, где export_product — машинное имя views, а views_data_export_1 — имя представления.

views-data-export-xml-body—export_product_node.tpl.php:

В этом шаблоне мы выводим поля views в теги.

  • offer — этоn тег обязательный параметр id , в него мы добавим product_id
  • url — добавим url из поля path
  • price — нужно вывести поле содержащие цену вашего товара ( commerce_price )
  • currencyId — добавим индекс валюты (RUR)
  • categoryId — нужно указать id категории товара ( field_product_category )
  • name — наименование товара или же заголовок ноды ( title )
  • picture — добавим поле картинки с проверкой регулярным выражением ( field_product_image )
  • description — описание ноды ли товара ( body )
  • param — необязательное поля для yml. В него добавляем различные характеристики товара, такие как вес, размер и т.д.
  • delivery, pickup, store — возможность доставки, самовывоза и покупки без предварительного заказа, подробнее в документации.

views-data-export-xml-footer—yml.tpl.php:

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

Проблемы с которыми мы столкнулись

Проверка в валидаторе, похоже работает с упрощенной схемой экспорта, так как на этапе добавления в Вебмастер у нас полезли ошибки которых не было ранее.Здесь будет описание проблем с которыми мы столкнулись и то какие решения были приняты для их устранения.

Неуникальные offer id и url

В drupal commerce мы получаем множество вариаций одного и того же товара в зависимости от атрибутов(цвет, размер и т.д.), и views выводит нам каждую вариацию товара, давая ей при этом один и тот же url (в рамках одно ноды) и id. Сначала мы пытались привести все вариации к одному выводу,где множественные значения выводились бы в качестве списка параметров, но этого у нас так и не получилось. Тогда мы решили пойти другим путем, уникализировать значения id и url. Решение проблемы с уникальным id было простым, мы убрали nid(как было предложено на drupal-coder) и заменили его на product_id — идентификатор вариации товара. С url пришлось повозиться и подумать, по итогу пришли к такому решению:

Мы добавили product_id как аффикс url, ссылку это не ломает и в тоже время решает нашу проблему.


Кириллическое имя сайта

Как оказалось Яндекс.Маркет не поддерживает данную функцию для сайтов с кириллическим названием.

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

Выгрузка yml для Яндекс.Маркета

Мы хотели бы поделиться опытом, как используя views и views_data_export сделать выгрузку yml в Yandex.Market на Drupal 7.

Концепция состоит в том, чтобы, используя views, получить нужные данные и далее собрать все в шаблонах для views_data_export. Такой вариант подходит для выгрузки данных из нод, таксономии, entity и продуктов commerce.

Для начала рекомендуем узнать по подробнее о формате yml в официальной документации.

Наш пример мы будем рассматривать на нодах, а категории представлены терминами таксономии. Нам потребуется два views’а, первый это вспомогательный, предоставит нам категории, а второй данные товаров.

Views yml_categories

Первым мы сделаем views категорий. Он будет передавать готовую структуру категорий в наш основной views. Потребуется views с типом данных «термин таксономии». Создание страницы и блока выключим и перейдем к настройки views’a и полей. Добавим отображение «Data export».

Илон Маск рекомендует:  Что такое код localflags

Изменим формат на XML, остальные настройки формата оставим как есть. В фильтры добавим словарь категорий. Добавим вывод полей «имя» и «ID термина». Эти поля мы будем выводить в шаблоне и формировать структуру формата yml.

Укажем путь, по которому будем получать наш файл yml, а также настроим права доступа, чтобы только администратор сайта мог получить выгрузку. Будем выводить весь набор наших товаров, установив отображение всех элементов.

Для категорий нам нужно добиться простой конструкции вида:

views-data-export-xml-header—yml-categories.tpl.php

В header открываем родительский тег . Это обязательное поле в yml.

views-data-export-xml-body—yml-categories.tpl.php

$themed_row — это массив готовых данных из views’а. Массив пропустим через цикл, чтобы обернуть каждую категорию в тег. За id возьмем tid таксономии, а наименование поместим внутрь тега.

views-data-export-xml-footer—yml-categories.tpl.php

Закроем тег , тем самым закончим работать с yml_categories.


Views yml

Теперь нам потребуется views для нод (содержимое). Так же как и для категорий мы будем использовать отображение «Data export».

Формат изменим на XML. Добавим фильтр по типу нашего товара или ноды, в нашем случае это «дверь». Если вы используете мультиязычность на своем сайте, то можете добавить фильтр языка. Настройку полей произведем чуть позже.

Укажем путь для экспорта yml, а также настроим права доступа. Будем выводить весь набор наших товаров.

В столбце «дополнительно» нас интересует только один параметр «настройка запроса». Включим перезапись SQl, чтобы views не проверял node_access.

В формате yml есть обязательные и необязательные поля. Чтобы валидатор пропустил наш файл, нам нужно добавить все обязательные поля. Создадим структуру yml в шаблонах к нашему views’у. Нам потребуется перекрыть header , body и footer . На потребуется перекрыть шаблоны для views_data_export: views-data-export-xml-header.tpl.php , views-data-export-xml-body.tpl.php и views-data-export-xml-footer.tpl.php . Переименуем их так, чтобы шаблоны работали только для конкретного views’a, указав имя вашего —yml ( views-data-export-xml-body—yml.tpl.php ).

views-data-export-xml-header—yml.tpl.php

Разберем подробнее код выше. Чтобы вам было ясно зачем мы используем поля. Подробнее можно ознакомиться с полями в официальной документации. Первые две строки это обязательны для yml. yml_catalog содержит параметр date , который через функцию date(‘Y-m-d h:i’) передает время создания файла. В тег shop размещаем все настройки нашего магазина.

В name , company , url выведем название сайта и адрес через variable_get . currencies содержит информацию о валюте. Строка views_embed_view(‘yml_categories’, ‘views_data_export_1’) мы подставляем наш views категорий ( yml_categories — имя views’а категорий, views_data_export_1 — имя отображения категорий).

views-data-export-xml-body—yml.tpl.php

В этом шаблоне мы выводим поля views’а в теги. Все поля мы получаем из массива $row . Для списка ниже, добавим во views соответствующие поля.

  • offer — этоn тег обязательный параметр id , в него мы добавим nid
  • url — добавим url из поля path
  • price — нужно вывести поле содержащие цену вашего товара ( field_price_from )
  • currencyId — добавим индекс валюты (RUR)
  • categoryId — нужно указать поле таксономии отвечающие за категорю ( field_category )
  • name — наименование товара или же заголовок ноды ( title )
  • picture — добавим поле картинки с проверкой регулярным выражением ( field_main_img )
  • description — описание ноды ли товара ( body )
  • country_of_origin — страна производидель
  • param — необязательное поля для yml. В него добавляем различные характеристики товара, такие как вес, размер и т.д.

Необязательные поля, такие как

, мы обернули в if для проверки существования переменой в массиве $row .

необязательно, но Яндекс.Маркет рекомендует его добавлять. Разберем

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

следует наполнять в соответствии с вашим набором характеристик товара.

views-data-export-xml-footer—yml.tpl.php

В шаблоне footer мы закрываем теги offers , shop и yml_catalog


Собрав views’ы и шаблоны, перейдя по адресу /yml , вы сможете сделать выгрузку yml для вашего магазина в Яндекс.Маркете.

Товарные фиды Яндекс

Конвертируйте данные Вашего интернет-магазина в YML-прайс и участвуйте в товарных программах Яндекса и популярных прайс-агрегаторов

Конвертируйте данные Вашего интернет-магазина в YML-прайс и участвуйте в товарных программах Яндекса и популярных прайс-агрегаторов

Попробуйте сервис бесплатно!

Количество индексируемых страниц: до 500

Всего за $2.50/генерация

Индексация страниц: до 10 000

Подписка от $5.00/месяц

Автоматически обновляемый товарный фид для Вашего интернет-магазина!

Индексация до 100 000 страниц.

Как работает YML-генератор?

Генератор индексирует сайт и обрабатывает содержимое веб-страниц, разметку RDF Schema.org и Open Graph для товаров, а также использует уникальный алгоритм автоматического определения товарных предложений, конвертируя полученные данные в формат Yandex Market Language. Теперь создать YML-прайс — легко и быстро как никогда!

Распространяйте больше информации о Ваших товарах!

YML позволяет консолидировать и передавать информацию о товарных предложениях Вашего интернет-магазина в сервисы Яндекса — резульаты поиска и Яндекс-Маркет: URL товаров на Вашем веб-сайте, актуальные цены, наименование и описание номенклатуры, а так же возможность и стоимость доставки.

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

YML экспорт в Яндекс.Маркет для OpenCart 2.x, 3.x

Совместимость OpenCart 2.0, OpenCart 2.1, OpenCart 2.2, OpenCart 2.3, OpenCart 3.0, OCStore 2.1, OCStore 2.3, OCStore 3.0, Opencart.pro 2.0.3.х, Opencart.pro 2.1, Opencart.pro 2.3, MaxyStore 2.1.0.2, MaxyStore 2.3.0.2

Перед Вами версия этого популярного модуля, но для для OpenCart 2.x и 3.x

Модуль формирует YML-файл для экспорта каталога товаров на такие площадки как Яндекс.Маркет, torg.mail.ru, price.ru, poisk-podbor.ru, hotprice.ua, nadavi.net, vcene.ua, prom.ua и многие другие


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

Важно:
Генерация YML-файла через PHP-CLI не гарантируется, но почти всегда работает. Команда:
Если не работает, но нужно формировать через планировщик (CRON), используйте wget:

FAQ или Частые вопросы
Автор не отвечает на вопросы, которые там уже освещены

Отличия от стандартного модуля:

1. Экспорт в кодировке UTF-8

2. Экспортируются все изображения товара в разрешении 600×600, как рекомендовано Яндексом

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

4. Экспортируются атрибуты товаров

5. Экспорт товаров, имеющих отношение к удовлетворению сексуальных потребностей, производится с соответствующим тэгом

Илон Маск рекомендует:  Можно ли обратиться к колонке или строке grid'а по заголовку

6. Для товаров с опциями, отвечающими за «цвет» и «размер» в экспорте формируются несколько товарных предложений. Так Яндекс рекомендует экспортировать одежду, обувь и т.п. Для каждого цвета-размера формировать свое товарное предложение

7. Имеется возможность формировать файл экспорта не по запросу Яндекса, а по планировщику (Cron). Это удобно (и необходимо) тогда, когда файл экспорта формируется настолько долго, что Web-server закрывает соединение, и в результате, ничего не экспортируется.

8. Возможность экспортировать все товары с признаком «под заказ». Яндекс требует экспортировать все товары со сроком доставки более двух дней с признаком «под заказ».

9. Возможность экспорта тэга market_category, который, как оказалось, обязателен для попадания в Яндекс.Гардероб

10. Возможность экспорта тэгов , , , , ,

11. Настраиваемое количество экспортируемых изображений

12. Черный список товаров — можно выбрать конкретные товары, которые в Яндекс.Маркет выгружать не требуется

13. Добавлен клон модуля, который позволяет формировать второй экспорт со своими настройками (этот пункт в стадии бета)

14. Экспорт тэга

    , который нужен для расчета процента скидки Яндексом

15. Экспорт сопутствующих товаров в тэге или тэгах

16. Генерация YML блоками, снижено потребление памяти


Основное
Способ распространения Платно
Совместимость OpenCart 2.0, OpenCart 2.1, OpenCart 2.2, OpenCart 2.3, OpenCart 3.0, OCStore 2.1, OCStore 2.3, OCStore 3.0, Opencart.pro 2.0.3.х, Opencart.pro 2.1, Opencart.pro 2.3, MaxyStore 2.1.0.2, MaxyStore 2.3.0.2
VQmod Нет
Ocmod Нет
Статистика
В первый раз файл добавлен 15.12.2014
Последнее изменение 18.09.2020
Просмотров 51642
Покупок 897

Написать

Ваш отзыв: Внимание: HTML не поддерживается! Используйте обычный текст.

Оценка: Плохо Хорошо

Введите код, указанный на картинке:

YML (Yandex Market Language) — Генерация файла товаров для Яндекс Вебмастер

Недавно я заметил что в Yandex Webmaster появился новый есть раздел, он называется «Товары и цены». Там я увидел как можно бесплатно улучшить в выдаче яндекса, страницы товаров магазина.

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

Стоит отметить что подключиться могут не все магазины. Из самых важных критериев, как по мне, является, то что у магазина должно быть юридическое лицо на которое магазин зарегистрирован. Более детально про подключение можно прочитать в документации к Yandex Webmaster в разделе Подключение магазина.

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

Мне хотелось максимально обезопасить пользователя от генерации не корректного YML файла. По этому все ноды xml представлены в виде PHP objects. В идеале было б еще сделать валидацию обьекта перед записью его в yml файл, но руки пока к этому не дошли. Боннусом является то что формат файла для Яндекс Маркет и для Яндекс вебмастер одинаковый в связи с чем библиотеку можно использовать для двух сервисов.

В процессе написания библиотеки пришлось разобраться с валидацией xml с помощью dtd, а также прочитать достаточно много документации от Yandex. Вот разделы документации которые я использовал во время написания:

З.Ы. Вопрос к сообществу, кто пользовался возможностью выгрузки товаров в Яндекс Вебмастер вы заметили улучшение в конверсии или приросте трафика? (У меня пока нету такой информации).

Импорт в формате YML

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

  1. Выгрузите список товаров в файл формата YML, например, из вашего интернет-магазина.
  2. Откройте в МоемСкладе раздел Меню пользователя — Настройки — Обмен данными — Импорт.
  3. Нажмите кнопку Импортировать и выберите пункт Товары (Яндекс.Маркет).
  4. Выберите, откуда будет производиться импорт: из локального файла или из интернета.
    • Для импорта из файла нажмите кнопку Выбрать файл и выберите ранее подготовленный YML-файл со списком товаров.
    • Для импорта из интернета на вкладке Из интернета введите URL каталога товаров.
  5. При необходимости отметьте флажок «Импортировать изображения». Если нужно заменить изображения, отметьте флажок «Заменить существующие изображения».
  6. Нажмите кнопку Начать импорт.

Загрузка данных займет некоторое время.

Импортируется следующая информация:

  • о группах товаров:


Данные Источник Примечание
Внешний код и Код Атрибут id Бытовая техника
Внешний код родительской группы Атрибут parentId Бытовая техника
Наименование группы Содержимое тега Бытовая техника
  • о товарах:

Указывается, если данное предложение является модификацией. Это внешний код основного товара, тогда как id будет внешним кодом модификации.
При наличие элемента

который будет характеристикой

описывает одну характеристику. В атрибуте name содержится название параметра . В самом элементе

содержится значение параметра.

Значения полей « Единица измерения » , « Объем » и « Вес » задаются в параметрах « единица измерения » , « объем » и « вес » (только если вес не задан в отдельном теге weight).
Остальные параметры из массива param используются для заполнения дополнительных полей (для товара) или характеристик (для модификации).

Экспорт товаров в Яндекс.Маркет в YML на OpenCart 2.3

Продолжаем серию руководств по OpenCart 2.3. Сейчас Вы узнаете, как настроить экспорт товаров в Яндекс.Маркет в формате YML из интернет-магазина на OpenCart 2.3 совершенно бесплатно.

Заходим по адресу https://github.com/olehpratsko/Yandex.Market-oc-extension и скачиваем (zip-архивом). Содержимое папки upload копируем в корень сайта.

Заходим в админку Модули/Расширения -> Модули/Расширения и выбираем Каналы продвижения. В появившейся таблице напротив Яндекс.Маркет нажимаем зеленый (+), этим самым мы активируем расширение. Затем нажимаем рядом кнопку Редактировать. Устанавливаем статус Включено. Заполняем поля Название магазина, Компания. Выбираем категории, которые будем экспортировать (можно ссылкой Выделить все). Остальные поля можно оставить как есть. И вуаля! Адрес Вашей ленты в формате YML будет отображаться в самом нижнем поле и будет выглядеть как:

Настройка экспорта в YML Яндекс-маркет

Для настройки экспорта в YML, первое что необходимо сделать, это в модуле «Обмен данными», во вкладке «Экспорт» создать сценарий экспорта, указав формат экспорта: «Каталог в формате Яндекс-маркет(yml)», также указав разделы каталога, которые необходимо экспортировать. Произведя экспорт в YML и указав вариант «Получить ссылку на результат экспорта», мы указываем полученную ссылку в аккаунте Яндекс-Маркета, ссылка примерно следующего вида:

Также указываем логин/пароль пользователя, у которого в настройках, для блока «Обмен данными» стоит галка «Доступ к экспорту данных по http», либо можно просто для пользователя «Гость» поставить эту галку, тогда логин/пароль не надо будет указывать.

В настройках сценария экспорта можно прописать значение для параметра «Время кэширования результатов экспорта (в минутах)», это будет означать, что в течении времени между первым экспортом данных (time = X) и временем X+указанное_значение, данные будут браться из кэша, допустим из файла sys-temp/export/27697.xml. Каждый раз новый файл с данными формироваться не будет, т.е. необходимо учитывать, что при изменении цены товара на сайте, может возникнуть момент, что в Яндекс-маркет не сразу поступят обновленные данные, когда он их будет запрашивать по ссылке.

Теперь перейдем к настройкам формирования самого XML-файла для Яндекс-Маркета, ознакомиться с форматом YML, его требованиями, можно на данной странице: Описание формата данных YML

Основным шаблоном формирования XML-файла для Яндекс-маркета является xsl/export/YML.xsl. Если необходимо изменить формирование итогового файла, то необходимо переназначать существующие шаблоны из оригинального файла, записывая их в xsl/export/custom/YML.xsl. При обновлении сайта шаблон xsl/export/YML.xsl перезаписывается.

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


в файл xsl/export/custom/YML.xsl, в основной узел stylesheet. Можно скопировать целиком или только те элементы, которые вы используете. Для примера рассмотрим следующий шаблон:

в его начало мы добавили параметр:

и изменили следующий за ним if, т.е. добавили проверку на активность раздела в котором находится объект. Экспорт неактивных объектов был исключен добавление шаблона:

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

была заменена на:

Т.к. поле с изображением товара, в данном примере, имеет идентификатор image, то конструкция:

была заменена на:

С учетом того, что доставка имеется, была добавлена строка:

Блок описание ( ) был оформлен следующим образом:

Поле Цвет имеет тип «Выпадающий список», поле Вес – «Строка». Для понимания запросов с помощью которых берутся те или иные значения, необходимо иметь представление об XSLT. UMI.CMS формирует XML-Данные в формате UMIDump2.0, с помощью нашего XSL-Шаблона мы трансформируем один XML-Файл в другой. Узел

в UMIDump, практически идентичен xml-данным полученным следующим образом: _http://ваш_сайт/upage/47 , используется протокол upage

служат для проверки поля типа чекбокс, с идентификатором ‘dvd’, в случае если чекбокс установлен, будет выведено название данного поля.

Отключение экспорта определенных товаров.

Если необходимо исключить из выгрузки в YML определенные товары, то можно воспользоваться описанной ниже схемой. В модуле «Шаблоны данных», в вашем типе данных объекта каталога, допустим в группе полей «Ценовые свойства», добавляется поле «Не выгружать в YML» со строковым идентификатором ‘nonyml’ и типом «Кнопка-флажок». Далее для нужных объектов каталога, устанавливаем данный чек-бокс. Также необходимо изменить шаблон:

в самом начале шаблона, необходимо прописать параметр nonyml:

и изменить if условие, т.е. добавить проверку по чекбоксу «Не выгружать в YML» :

Цена со скидкой.

Если на сайте планируется использование скидок, то в начале шаблона:

необходимо вместо стандартного параметра ‘price’ прописать:


Тогда в YML-файле цена будет указана со скидкой.

Произвольный товар (vendor.model)

Если необходимо использовать схему vendor.model, о которой более подробно рассказано на help.yandex.ru , то в файле \xsl\export\custom\YML.xsl, в шаблоне:

необходимо в блоке:

указать строковые идентификаторы полей для vendor и model, в вашем объекте каталога на сайте, к примеру:

на вашем сайте, строковые идентификаторы скорее всего другие, поэтому проверьте это. Далее, в блоке:

необходимо еще раз заменить переменные $vendor и $model на строковые идентификаторы. В случае, если хотите указать также узел:

то необходимо вместо $typePrefix указать идентификатор для этого поля.

Настройка выгрузки товаров в Яндекс Маркет с сайта Битрикс

Настройка выгрузки в Яндекс маркет в формате yml, выполняется достаточно просто, кроме одной заморочки: в типовой поставке нет выгрузки «sale_notes» — ныне, обязательного параметра, без которого вашу выгрузку не примут в Яндекс-маркет. Расскажу как его добавить.

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

Настройка штатной выгрузки

Для начала настроим штатную выгрузку без тега sale_notes. Для этого идем в административную часть сайта, далее: Магазин- Настройки-Экспорт данных. Здесь уже есть готовые пресеты для выгрузок в разных форматах. Но мы создадим новую: нажимаем зеленую кнопку «Добавить профиль» и выбираем Yandex в выпадающем меню

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

Сохраняемся и снова заходим в список выгрузок. На против вновь созданной выбираем в выпадающем списке «Экспортировать». После небольшого или большого ожидания (зависит от объема вашего каталога), сверху вам выдаст ссылку на сгенерированый файл выгрузки. Ее-то и нужно подгрузить в яндекс-маркет

Осталась одна проблема, у товаров не будет тега sale_notes

Добавляем sale_notes в выгрузку битрикс

Нужно кастомизировать файл yandex_run.php который расположен по пути /bitrix/php_interface/include/catalog_export. Открываем его на редактирование, и примерно в 22 строку, до перечисления всех параметров товаров добавляем строку:

И находим часть отвечающую за генерацию тегов, примерно после 873-ей строки (break завершающий генерацию тега «name» с названием товара), вставляем:

В общем-то и все, снова генерируем файл выгрузки, и теперь он будет с необходимым тегом. Само собой вместо фразы «Предоплата 100 процентов», вставляете свое условие для продажи товора.

Илон Маск рекомендует:  Модульное программирование на php или как написать маленький портал
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL
Данные Тег Примечание
Внешний код и Код id
Внешний код и Код group_id
Внешний код родительской группы categoryId
Наименование name или model
Описание description
Артикул vendorCode
Страна country_of_origin
Значение для первой «Цены продажи» price
Закупочная цена purchase_price
Значение для цены продажи с наименованием «Старая цена» oldprice
Штрихкод barcode Можно передать несколько тегов
Изображение picture Если поставлен флажок «Импортировать изображения» в диалоге импорта
Дополнительное поле «Гиперссылка» url Если такое поле существует и имеет тип «Ссылка»
Дополнительное поле «Доступно» available Если такое поле существует и имеет тип «Флаг»
Вес weight Значение округляется до 3 знаков после запятой, но может быть изменено
Единица измерения, объем, вес, значения дополнительных полей или характеристик Массив param