Телеграм: @camouf_ru Почта: mihail@bazarow.ru

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

Просмотров: 35826

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

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

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

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

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

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


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

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

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


	 $sales_notes_value = "Предоплата 100 процентов";

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


	 case 'sales_notes': $strTmpOff .= "<sales_notes>".yandex_text2xml($sales_notes_value)."</sales_notes>\n"; break;

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

Эдуард Валеев 03.03.2021
Есть необходимость выгружать описание товара обрамив тегами <[CDATA]> - не понимаю, где это настраивается... Не подскажете?
Михаил Базаров 12.02.2020
Цитата
Антон Науменко написал:
Доброго времени суток! Что-то пошло не так. Все сделал как описано в статье, но при повторном входе в настройки созданного мною экспорта в детальных настройках пропала вкладка "валюта и цены", а внесенные изменения во вкладке "настройка выгрузки" не сохраняются. Все это печально. Подскажите, в чем может быть проблема!!!
Заметка староватая.
Воспользуйтесь вот этим модулем
https://marketplace.1c-bitrix.ru/solutions/yandex.market/
Это официальный, от Яндекса - там все гибко настраивается.
Антон Науменко 12.02.2020
Доброго времени суток! Что-то пошло не так. Все сделал как описано в статье, но при повторном входе в настройки созданного мною экспорта в детальных настройках пропала вкладка "валюта и цены", а внесенные изменения во вкладке "настройка выгрузки" не сохраняются. Все это печально. Подскажите, в чем может быть проблема!!!
Михаил Базаров 11.10.2019
Цитата
Александр Ульянов написал:
Михаил, спасибо за статью! Все получилось!
А  не подскажете, как добавить в выгрузку второй вид цен?
У меня розничная и оптовая цена. Оптовую нужно тоже выгрузить.
Статья немного старовата, попробуйте вот эту штуку
https://marketplace.1c-bitrix.ru/solutions/yandex.market/
Она официальная и достаточно гибкая в плане настроек- думаю, все получится
Александр Ульянов 11.10.2019
Михаил, спасибо за статью! Все получилось!
А  не подскажете, как добавить в выгрузку второй вид цен?
У меня розничная и оптовая цена. Оптовую нужно тоже выгрузить.
Кастор Трой 11.12.2018
Не совсем понятно. Если файл yandex_run.php  нельзя править в ядре /bitrix/modules/catalog/load/.
А по пути /bitrix/php_interface/include/catalog_export он есть , но там как раз прописан include  из ядра.
Где же тогда вносить правки?
Михаил Базаров 22.09.2018
Цитата
dm.sagitov@yandex.ru написал:
Добрый день. Скажите, можно ли загружать в Маркет только выборочные товары, а не разделы?
Точно не знаю, ни разу не приходилось в этом плане "ковырять"
Но, из быстрого способа: Можно сложить товары в отдельный раздел и выбрать его
По сути, можно назначить товарам два раздела, один настоящий, второй чисто для выгрузки.
Этот второй, вообще не показывать пользователям сайта
Но в ссылках в yml-ке должны вести на основной раздел
dm.sagitov@yandex.ru 22.09.2018
Добрый день. Скажите, можно ли загружать в Маркет только выборочные товары, а не разделы?
Михаил Базаров 20.02.2018
Цитата
Sergey400 написал:
Добрый день! Спасибо за статью. НО... после проделанных операций в файле bitrix/php_interface/... не сохраняются вводимые данные, сбрасываются на те, которые были. Подскажите пожалуйста в чем может быть проблема. Заранее спасибо+кофе с печеньками)
Так тяжело подсказать, но скорее всего у вас просто нет права записи в эту директорию. Попробуйте проделать это не через панель битрикса, а на пряму по FTP/SFTP
Sergey400 19.02.2018
Добрый день! Спасибо за статью. НО... после проделанных операций в файле bitrix/php_interface/... не сохраняются вводимые данные, сбрасываются на те, которые были. Подскажите пожалуйста в чем может быть проблема. Заранее спасибо+кофе с печеньками)
Никита Дубченко 23.01.2018
Здравствуйте! Подскажите пожалуйста как добавить в выгрузку поле со штрих-кодом(<barcode>)? Спасибо!
misterchet Четвериков 07.11.2017
Подскажите, что нужно поменять, что бы в поле description выводило полное описание, а не анонс?
Олег Харитонов 28.10.2017
Только решил такую же задачу для последней версии файла yandex_run.php
В начале файла прописываем переменную, например
Код
$sales_notes_value = "Наличный и безналичный расчет";
Потом ищем строки (будут встречаться в двух местах)
Код
case 'description':
    $itemsContent .= "<description>". ($offer['DESCRIPTION'] !== '' ? $offer['DESCRIPTION'] : $row['DESCRIPTION'])."</description>\n";
    break;
за ними вставляем следующие строки и все заработает
Код
case 'sales_notes':
        $itemsContent .= "<sales_notes>".$sales_notes_value."</sales_notes>\n";
        break;
Вячеслав 10.10.2017
Цитата
Evgeny S пишет:
Михаил, в экспорте не появляется $sales_notes_value. Вернул файл ядра на место и вставил ваш файл.
Есть ли еще какие-то важные настройки, чтобы выводилось это свойство?
case 'sales_notes': $strTmpOff .= "<sales_notes>".yandex_text2xml($sales_notes_value)."</sales_notes>\n"; break;

Нужно вставить в нескольких местах.
Ищите тег <description> и в этом блоке добавляйте
case 'sales_notes': $strTmpOff .= "<sales_notes>".yandex_text2xml($sales_notes_value)."</sales_notes>\n"; break;
Evgeny S 16.01.2017
Михаил, в экспорте не появляется $sales_notes_value. Вернул файл ядра на место и вставил ваш файл.  
Есть ли еще какие-то важные настройки, чтобы выводилось это свойство?
Evgeny S 16.01.2017
Михаил, спасибо за ответ!
Запомнил это. Мои действия были такими из-за того, что я банально не нашел файл run с таким кодом по пути  /bitrix/php_interface/include/catalog_export.  Но в этом файле подключался файл с ядра, где и был похожий код.

Моя ошибка, упустил слово "кастомизировать" в вашей статье.
Михаил Базаров 16.01.2017
Цитата
Evgeny S пишет:
Михаил, заменил вашим файлом yandex_run.php по пути /bitrix/modules/catalog/load/yandex_run.php
Почему-то после экспорта $sales_notes_value не появляется в файле экспорта.
Есть ли еще какие-то еще нюансы настройки?

Да, и у вас авторизация через соц сети не работает. Ошибку выдает
А зачем вы внесли его в ядро? "Ни когда, ни чего не добавляйте и не убавляйте в ядре системы", примите за правило это...правило

По вопросу

Код
Нужно кастомизировать файл yandex_run.php который расположен по пути /bitrix/php_interface/include/catalog_export
 
Evgeny S 15.01.2017
Михаил, заменил вашим файлом yandex_run.php по пути /bitrix/modules/catalog/load/yandex_run.php
Почему-то после экспорта $sales_notes_value не появляется в файле экспорта.
Есть ли еще какие-то еще нюансы настройки?

Да, и у вас авторизация через соц сети не работает. Ошибку выдает
Михаил Базаров 13.09.2016
Цитата
Александр написал:
Приветствую! статья хорошая сделать было не сложно, но при экспорте через несколько секунд вылазит
504 Gateway Time-out  nginx

 И файла экспорта нет, в чем может быть решения?
С уважением
Не хватает производительности хостинга-сервера. Просто отваливается. Перейдите на более производительный, видимо каталог большой (ну или, хостинг совсем дохлый)
Александр 12.09.2016
Приветствую! статья хорошая сделать было не сложно, но при экспорте через несколько секунд вылазит
504 Gateway Time-out
nginx

И файла экспорта нет, в чем может быть решения?
С уважением

Работы из портфолио

В портфолио не публикуются работы, доля моего участия в которых менее 80%.
Часто обращаются за доработками уже существующих проектов или реализацией не стандратного функционала на готовых сайтах.