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

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

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

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

Какие услуги предоставляю:
- Создание сайтов, шаблонов и компонентов на 1С-Битрикс;
- Разработка функционала с нуля и доработка кода на уже созданных проектах;
- Адаптивная вёрстка макетов и натяжка на Битрикс;
- Парсинг файлов и выгрузка на сайт (форматы - CSV, XML, XLSX, JSON)
- Интеграции со сторонними сервисами по API;
- Многоязычные версии и многое другое.

Если у вас остались вопросы, свяжитесь со мной любым удобным для вас способом или оставьте комментарий внизу.
E-mail: dmitriyribka@gmail.com
Skype: cinemacreaterus

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *