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

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

Все заметки
Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей

Зарегистрироваться Войти
Напомнить пароль

Быстрая регистрация через соц.сеть:
Михаил Базаров
У кого нет файла yandex_run.php Можно найти его в ядре битрикс
Или скачать:  правки уже внесены
Александр
Приветствую! статья хорошая сделать было не сложно, но при экспорте через несколько секунд вылазит
504 Gateway Time-out
nginx

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

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

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

Моя ошибка, упустил слово "кастомизировать" в вашей статье.
Evgeny S
Михаил, в экспорте не появляется $sales_notes_value. Вернул файл ядра на место и вставил ваш файл.  
Есть ли еще какие-то важные настройки, чтобы выводилось это свойство?
Вячеслав
Цитата
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;
Олег Харитонов
Только решил такую же задачу для последней версии файла 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 Четвериков
Подскажите, что нужно поменять, что бы в поле description выводило полное описание, а не анонс?

© 2011—2017 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.

Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой.
Политика конфеденциальности