Добрый день!
Хочу перенести каталог из одной цмс в Битрикс, посоветуйте как лучше это технически реализовать.
Я поступаю следующим образом:
Через административный в битриксе я создаю инфоблок с нужными мне свойствами. Затем мне нужно добавить подразделы. Поскольку подразделов много и вручную их добавлять желания нету - то имеет смысл использовать API.
<B>Структура базы данных в моей цмс следующая:</B>
Таблица: Грузовики
Таблица: Автобусы
Таблица: Легковые автомобили
...
ТАБЛИЦА ГРУЗОВИКИ:
id, name, parent_id, is_folder
1 МАЗ 0 1
2 КРАЗ 0 1
3 УАЗ 0 1
4 Автомобиль МАЗ-346-201 1 0
5 Автомобиль МАЗ-346-202 1 0
6 Автомобиль МАЗ-346-202 1 0
7 Автомобиль КРАЗ-347-102 2 0
8 Автомобиль КРАЗ-348-103 11 0
9 Автомобиль КРАЗ-349-104 11 0
10 Самосвалы 3 1
11 Тягачи 3 1
12 Прицепы 3 1
13... и тд.
Я пишу скрипт переноса:
Первым делом я хочу сделать структуру каталогов инфоблока, такую же как в моей базе.
Делаю выборку из таблицы "Грузовики":
<QUOTE>
$rez = mysql_query ("SELECT * FROM camions WHERE is_folder=1");
$bs = new CIBlockSection; // Обьект категории
while ( list($id, $name, $parent_id) = mysql_fetch_array($rez) )
{
$arFields = Array(
"ID" => $id,
"ACTIVE" => "Y",
"IBLOCK_SECTION_ID" => $parent_id, // ID группы родителя, если не задан то группа корневая.
"IBLOCK_ID" => "4", //ID информационного блока (грузовики)
"NAME" => $name
);
echo "Элемент ".$parent_id."добавлен <br>";
$bs->Add($arFields);
}
</QUOTE>
Но к сожалению так добавляются только корневые категории (у которых parent_id =0), а подкатегории не добавляются.
АПИ функция битрикса игнорирует то что я задаю явно ID категории, и присваивает всем категориям сови ID, в порядке возростания.
Как же тогда правильно перенести структуру каталогов?
Спасибо.
Хочу перенести каталог из одной цмс в Битрикс, посоветуйте как лучше это технически реализовать.
Я поступаю следующим образом:
Через административный в битриксе я создаю инфоблок с нужными мне свойствами. Затем мне нужно добавить подразделы. Поскольку подразделов много и вручную их добавлять желания нету - то имеет смысл использовать API.
<B>Структура базы данных в моей цмс следующая:</B>
Таблица: Грузовики
Таблица: Автобусы
Таблица: Легковые автомобили
...
ТАБЛИЦА ГРУЗОВИКИ:
id, name, parent_id, is_folder
1 МАЗ 0 1
2 КРАЗ 0 1
3 УАЗ 0 1
4 Автомобиль МАЗ-346-201 1 0
5 Автомобиль МАЗ-346-202 1 0
6 Автомобиль МАЗ-346-202 1 0
7 Автомобиль КРАЗ-347-102 2 0
8 Автомобиль КРАЗ-348-103 11 0
9 Автомобиль КРАЗ-349-104 11 0
10 Самосвалы 3 1
11 Тягачи 3 1
12 Прицепы 3 1
13... и тд.
Я пишу скрипт переноса:
Первым делом я хочу сделать структуру каталогов инфоблока, такую же как в моей базе.
Делаю выборку из таблицы "Грузовики":
<QUOTE>
$rez = mysql_query ("SELECT * FROM camions WHERE is_folder=1");
$bs = new CIBlockSection; // Обьект категории
while ( list($id, $name, $parent_id) = mysql_fetch_array($rez) )
{
$arFields = Array(
"ID" => $id,
"ACTIVE" => "Y",
"IBLOCK_SECTION_ID" => $parent_id, // ID группы родителя, если не задан то группа корневая.
"IBLOCK_ID" => "4", //ID информационного блока (грузовики)
"NAME" => $name
);
echo "Элемент ".$parent_id."добавлен <br>";
$bs->Add($arFields);
}
</QUOTE>
Но к сожалению так добавляются только корневые категории (у которых parent_id =0), а подкатегории не добавляются.
АПИ функция битрикса игнорирует то что я задаю явно ID категории, и присваивает всем категориям сови ID, в порядке возростания.
Как же тогда правильно перенести структуру каталогов?
Спасибо.