Бортовой журнал Ктулху

Импорт и экспорт данных в Bitrix

Возникла необходимость в переносе контента с одного сайта на Битриксе на другой. Раньше я такого не делал и не представлял как это можно сделать. Я слыхал что ходят легенты о встроенном импорте-экспорте. Я решил попробовать.

 

Экспорт

Реализация в Битриксе кривовата. Для начала предлагается вручную создать файл *.xml.

кривой экспорт битрикса

Затем в этот файл делаем выгрузку.

выгрузка в xml в битриксе

выгрузка в битриксе

Картинки выгружаются в папку /upload/1_files (у меня выгрузились в эту, может у кого-то в другую).

Эту папку аккуратно архивируем и копируем на сайт-приемник где разворачиваем.

Импорт

Для начала скачиваем файл экспорта с сайта-донора и загружаем его на сайт-приемник.

битрикс импорт xml

Затем указываем в какой инфоблок загружать и с какими параметрами: удалить старые товары/категории, ничего не трогать, делать дубли неактивными.

импорт xml в битриксе

Одной из проблем при имепорте может быть дублирование инфоблока. Решения этой проблемы нет, есть пара костылей: удалить все данные или прочитать ниже.

Импорт в существующий инфоблок

Отсюда.

Столкнулся с такой проблемой - при импорте создавался новый инфоблок и элементы никак не хотели загружаться в "свой" инфоблок.
При чем, проблема была на двух сайтах. В одном случае было два сайта - тестовый и боевой, структура инфоблоков абсолютно идентичная, вплоть, до их ID. Во втором случае это был классификатор цветов товаров на совершенно разных сайтах.

Итак, в суть дела в тех ID (<ИД> и <ИдКлассификатора> ), что мы получаем в файле xml. На первый взгляд может показаться, что это ID инфоблоков в которые будет выгружаться содержимое xml-файла, но это не так. Могу предположить, что в этих полях указан внешний код инфоблоков. Как его посмотреть в админке я не нашел, поэтому порядок переноса элементов инфоблока (без свойств) я нашел следующий:
Делаем экспорт элементов с сайта донора;
Перекидываем xml файл и его папку в сайт акцептор;
Делаем экспорт элементов интересующего инфоблока с сайта акцептора;
Смотрим, какие <ИД> и <ИдКлассификатора> получаются в файле-выгрузки акцептора;
Переписываем эти значения в xml-файл выгрузку с сайта донора;
На сайте акцепторе запускаем импорт из xml.
Если еще нужен перенос свойств, то могут быть дополнительные проблемы с переписыванием ID этих свойств.