Как создать подраздел в торговом каталоге?

// добавить раздел

$bs = new CIBlockSection;
$arFields = Array(
  "ACTIVE" => $ACTIVE,
  "IBLOCK_ID" => $IBLOCK_ID,
  "IBLOCK_SECTION_ID" => $IBLOCK_SECTION_ID,
  "NAME" => $NAME
  );

if($ID > 0)
{
  $res = $bs->Update($ID, $arFields);
}
else
{
  $ID = $bs->Add($arFields);
  $res = ($ID>0);
}

if(!$res)
  echo $bs->LAST_ERROR;

echo $ID; //ид раздела
$IBLOCK_SECTION_ID = $ID;
//----------
$NAME="Подраздел";
//$bs = new CIBlockSection;
$arFields = Array(
  "ACTIVE" => $ACTIVE,
  "IBLOCK_ID" => $IBLOCK_ID,
  "IBLOCK_SECTION_ID" => $IBLOCK_SECTION_ID,
  "NAME" => $NAME
  );

if($ID > 0)
{
  $res = $bs->Update($ID, $arFields);
}
else
{
  $ID = $bs->Add($arFields);
  $res = ($ID>0);
}

if(!$res)
  echo $bs->LAST_ERROR;

echo $ID; //ид раздела

пишет: Нельзя перенести раздел внутрь себя.

Как создать раздел, а внутри него подраздел?


Ответы (1 шт):

Автор решения: maxkrasnov

Получается, что $ID равно $IBLOCK_SECTION_ID, во второй раз когда тот же код используете, там зачем стоит проверка $ID, из-за этого получается, что вы пытаетесь обновить родителя, поправил чутка для примера:

// добавить раздел

$bs = new CIBlockSection;
$arFields = Array(
  "ACTIVE" => $ACTIVE,
  "IBLOCK_ID" => $IBLOCK_ID,
  "IBLOCK_SECTION_ID" => $IBLOCK_SECTION_ID,
  "NAME" => $NAME
  );

if($ID > 0)
{
  $res = $bs->Update($ID, $arFields);
}
else
{
  $ID = $bs->Add($arFields);
  $res = ($ID>0);
}

if(!$res)
  echo $bs->LAST_ERROR;

echo $ID; //ид раздела
$IBLOCK_SECTION_ID = $ID;
//----------
$NAME="Подраздел";
//$bs = new CIBlockSection;
$arFields = Array(
  "ACTIVE" => $ACTIVE,
  "IBLOCK_ID" => $IBLOCK_ID,
  "IBLOCK_SECTION_ID" => $IBLOCK_SECTION_ID,
  "NAME" => $NAME
  );

$subID = $bs->Add($arFields);
$res = ($subID>0);

if(!$res)
  echo $bs->LAST_ERROR;

echo $subID; //ид раздела
→ Ссылка