Когда категорий не существует в Маркете, это создает проблему для интернет-магазина. Чуть ниже вы узнаете как можно дать другие названия разделам.
Как в выгрузке Битрикса изменить название разделов
Возможно вы уже читали другие материалы на эту тему с нашего сайта, а если нет, то советую почитать 1С-Битрикс выгрузка в Яндекс Маркет товаров по наличию и статья которая увеличит положительное отношение пользователей к вашему проекту – Как вывести последние отзывы магазина с Яндекс Маркета.
Что мы получим в итоге:
<category id="120">Кнопка «Engine Start Stop»</category> <category id="152" parentId="120">Кнопка старт стоп</category> <category id="153" parentId="120">Модули запуска двигателя</category> <category id="115">test</category> <category id="130" parentId="115">Блоки розжига ксенона</category>
Обратите внимание на категорию 115, в нее выгрузилось тестовое название. Теперь, сделаем все настройки и внесем код в несколько шагов.
Шаг 1. Создаем дополнительное свойство
Заходим в админку, находим наш каталог и в разделах кликаем по ID:
Переходим на вкладку Доп. поля и создаем свойство с кодом UF_YANDEX:
Шаг2. Добавляем код в наш файл выгрузки
В папке /bitrix/php_interface/include/catalog_export/ открываем ваш файл выгрузки с приставкой ИМЯ_ФАЙЛА_run.php, где ИМЯ_ФАЙЛА это название файла, который вы должны были скопировать.
Находим код, который отвечает за категории:
$strTmpCat .= '<category id="'.$value['ID'].' ...
Поднимаемся чуть выше и меняем этот блок (у меня это 1070 строка, у вас она может быть другой):
$sectionIterator = CIBlockSection::GetList( array('LEFT_MARGIN' => 'ASC'), array_merge($filter, $permissionFilter), false, array('ID', 'IBLOCK_SECTION_ID', 'NAME') ); while ($section = $sectionIterator->Fetch()) { $section['ID'] = (int)$section['ID']; $section['IBLOCK_SECTION_ID'] = (int)$section['IBLOCK_SECTION_ID']; $arAvailGroups[$section['ID']] = $section; $arSectionIDs[$section['ID']] = $section['ID']; if ($intMaxSectionID < $section['ID']) $intMaxSectionID = $section['ID']; }
На этот:
$sectionIterator = CIBlockSection::GetList( array('LEFT_MARGIN' => 'ASC'), array_merge($filter, $permissionFilter), false, array('ID', 'IBLOCK_SECTION_ID', 'NAME', 'UF_YANDEX') ); while ($section = $sectionIterator->Fetch()) { if ($section['UF_YANDEX'] != false) { $section['NAME'] = $section['UF_YANDEX']; } $section['ID'] = (int)$section['ID']; $section['IBLOCK_SECTION_ID'] = (int)$section['IBLOCK_SECTION_ID']; $arAvailGroups[$section['ID']] = $section; $arSectionIDs[$section['ID']] = $section['ID']; if ($intMaxSectionID < $section['ID']) $intMaxSectionID = $section['ID']; }
Мы добавили в массив выбора ‘UF_YANDEX’ и если оно есть, то менять имя раздела на него. После этого необходимо зайти в Магазин -> Экспорт и перевыгрузить наши разделы (имеется ввиду после того как заполнили свойство в разделах).