Bitrix разработчикам: Как удалить товары из одной категории

19.01.2018

Попытка решить задачу: Полностью очистить категорию от отваров (удалить все тавры из категории).

Сразу отмечу, что "фокус не удался", за приемлемое время, и пришлось создавать новую категорию. А материал оставил тут на случай если будет время вернуться к данной задаче.

Вариант №1 (не сработал)

 
delete from b_iblock_section_element where 
IBLOCK_SECTION_ID=413 and IBLOCK_ELEMENT_ID in ("5643","5644","5645","5646")

Вариант №2 (не сработал)

Скрипт:

 
<?php
  error_reporting(E_ALL);
  ini_set('display_errors', 'On');

  require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

  $items = GetIBlockElementList(1, false, Array("SORT"=>"ASC"));

	$i = 0;
	while ($aItem = $items->Fetch())
	{
		$id = $aItem['ID'];
		$IBLOCK_ID = $aItem['IBLOCK_ID'];
		 
		$res = CIBlockElement::GetElementGroups(
		  $id,
		  false,
		  array('ID', 'NAME') // , 'SECTION_PAGE_URL'
		);
		 
		$aCats = array();
		$bFound = FALSE;
		while($row = $res->GetNext())
		{
			if($row['ID'] == 151)
			{
				$bFound = TRUE;
			}
			else
			{
				$aCats[] = $row['ID'];
			}
		}
		
		if($bFound)
		{
			echo '<pre>';
			print_r($aItem['NAME']);
			echo '</pre>';
			
			//$ID = 18;  // код элемента
			$ID = $id;
			//$arSects = array(1, 5, 7); // массив кодов групп
			$arSects = $aCats;
			CIBlockElement::SetElementSection($ID, $arSects);
		}

		$i++;
/*		if($i > 30)
		{
			break;
		}*/
	}
 

?>
Done
<?

  require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");

Bitrix, изменение разделов товара sql запросом


Яндекс.Метрика