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

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

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

Настройка выгрузки в Яндекс маркет в формате 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 процентов", вставляете свое условие для продажи товора.

Александр12.09.2016
Приветствую! статья хорошая сделать было не сложно, но при экспорте через несколько секунд вылазит
504 Gateway Time-out
nginx

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

 И файла экспорта нет, в чем может быть решения?
С уважением
Не хватает производительности хостинга-сервера. Просто отваливается. Перейдите на более производительный, видимо каталог большой (ну или, хостинг совсем дохлый)
Evgeny S15.01.2017
Михаил, заменил вашим файлом yandex_run.php по пути /bitrix/modules/catalog/load/yandex_run.php
Почему-то после экспорта $sales_notes_value не появляется в файле экспорта.
Есть ли еще какие-то еще нюансы настройки?

Да, и у вас авторизация через соц сети не работает. Ошибку выдает
Михаил Базаров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 S16.01.2017
Михаил, спасибо за ответ!
Запомнил это. Мои действия были такими из-за того, что я банально не нашел файл run с таким кодом по пути  /bitrix/php_interface/include/catalog_export.  Но в этом файле подключался файл с ядра, где и был похожий код.

Моя ошибка, упустил слово "кастомизировать" в вашей статье.
Evgeny S16.01.2017
Михаил, в экспорте не появляется $sales_notes_value. Вернул файл ядра на место и вставил ваш файл.  
Есть ли еще какие-то важные настройки, чтобы выводилось это свойство?
Вячеслав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;
Олег Харитонов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;
misterchet Четвериков07.11.2017
Подскажите, что нужно поменять, что бы в поле description выводило полное описание, а не анонс?
Никита Дубченко23.01.2018
Здравствуйте! Подскажите пожалуйста как добавить в выгрузку поле со штрих-кодом(<barcode>)? Спасибо!
Sergey40019.02.2018
Добрый день! Спасибо за статью. НО... после проделанных операций в файле bitrix/php_interface/... не сохраняются вводимые данные, сбрасываются на те, которые были. Подскажите пожалуйста в чем может быть проблема. Заранее спасибо+кофе с печеньками)
Михаил Базаров20.02.2018
Цитата
Sergey400 написал:
Добрый день! Спасибо за статью. НО... после проделанных операций в файле bitrix/php_interface/... не сохраняются вводимые данные, сбрасываются на те, которые были. Подскажите пожалуйста в чем может быть проблема. Заранее спасибо+кофе с печеньками)
Так тяжело подсказать, но скорее всего у вас просто нет права записи в эту директорию. Попробуйте проделать это не через панель битрикса, а на пряму по FTP/SFTP
dm.sagitov@yandex.ru22.09.2018
Добрый день. Скажите, можно ли загружать в Маркет только выборочные товары, а не разделы?
Михаил Базаров22.09.2018
Цитата
dm.sagitov@yandex.ru написал:
Добрый день. Скажите, можно ли загружать в Маркет только выборочные товары, а не разделы?
Точно не знаю, ни разу не приходилось в этом плане "ковырять"
Но, из быстрого способа: Можно сложить товары в отдельный раздел и выбрать его
По сути, можно назначить товарам два раздела, один настоящий, второй чисто для выгрузки.
Этот второй, вообще не показывать пользователям сайта
Но в ссылках в yml-ке должны вести на основной раздел
Кастор Трой11.12.2018
Не совсем понятно. Если файл yandex_run.php  нельзя править в ядре /bitrix/modules/catalog/load/.
А по пути /bitrix/php_interface/include/catalog_export он есть , но там как раз прописан include  из ядра.
Где же тогда вносить правки?
Александр Ульянов11.10.2019
Михаил, спасибо за статью! Все получилось!
А  не подскажете, как добавить в выгрузку второй вид цен?
У меня розничная и оптовая цена. Оптовую нужно тоже выгрузить.
Михаил Базаров11.10.2019
Цитата
Александр Ульянов написал:
Михаил, спасибо за статью! Все получилось!
А  не подскажете, как добавить в выгрузку второй вид цен?
У меня розничная и оптовая цена. Оптовую нужно тоже выгрузить.
Статья немного старовата, попробуйте вот эту штуку
https://marketplace.1c-bitrix.ru/solutions/yandex.market/
Она официальная и достаточно гибкая в плане настроек- думаю, все получится
Антон Науменко12.02.2020
Доброго времени суток! Что-то пошло не так. Все сделал как описано в статье, но при повторном входе в настройки созданного мною экспорта в детальных настройках пропала вкладка "валюта и цены", а внесенные изменения во вкладке "настройка выгрузки" не сохраняются. Все это печально. Подскажите, в чем может быть проблема!!!
Михаил Базаров12.02.2020
Цитата
Антон Науменко написал:
Доброго времени суток! Что-то пошло не так. Все сделал как описано в статье, но при повторном входе в настройки созданного мною экспорта в детальных настройках пропала вкладка "валюта и цены", а внесенные изменения во вкладке "настройка выгрузки" не сохраняются. Все это печально. Подскажите, в чем может быть проблема!!!
Заметка староватая.
Воспользуйтесь вот этим модулем
https://marketplace.1c-bitrix.ru/solutions/yandex.market/
Это официальный, от Яндекса - там все гибко настраивается.
Эдуард Валеев03.03.2021
Есть необходимость выгружать описание товара обрамив тегами <[CDATA]> - не понимаю, где это настраивается... Не подскажете?

Случайные заметки