Битрикс – Как выгрузить другие названия разделов в Яндекс.Маркет

Когда категорий не существует в Маркете, это создает проблему для интернет-магазина. Чуть ниже вы узнаете как можно дать другие названия разделам.

Как в выгрузке Битрикса изменить название разделов

Возможно вы уже читали другие материалы на эту тему с нашего сайта, а если нет, то советую почитать 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’ и если оно есть, то менять имя раздела на него. После этого необходимо зайти в Магазин -> Экспорт и перевыгрузить наши разделы (имеется ввиду после того как заполнили свойство в разделах).

Если у вас не получилось изменить вашу выгрузку или ваш проект необходимо доработать, обращайтесь ко мне за помощью

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *