Битрикс — скрипт деактивирования товаров по свойству

10.06.2018  09:37

Задача: в каталоге товаров в Битриксе деактивировать товары с определённым свойством. Свойство до меня туповато обозвано «грузить на сайт» с туповатым кодом GRUZIT_NA_SAYT. Скрипт проверяет значение свойства и либо деактивирует товары и торговые предложения, либо активирует. Сам скрипт обхода элементов инфоблоков:

if (!empty($_SERVER["DOCUMENT_ROOT"])) $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"];
else $DOCUMENT_ROOT = '/home/public_html';
require_once($DOCUMENT_ROOT."/bitrix/modules/main/include/prolog.php");
CModule::IncludeModule('iblock');
$c = 0;
//100 инфоблок торговых предложений
//28185 — id свойства со значением «да»
//28186 — id свойства со значением «нет»
//70 инфоблок товаров
//19095 — id свойства со значением «да»
//19096 — id свойства со значением «нет»
$obE = new CIBlockElement();
$arSelectWin = Array("ID", "NAME", "PROPERTY_GRUZIT_NA_SAYT");
$arFilterWin = Array("IBLOCK_ID"=>70
, "=PROPERTY_GRUZIT_NA_SAYT"=>19096
, "ACTIVE"=>"Y"
);
$resWin = CIBlockElement::GetList(Array("sort"=>"asc"), $arFilterWin, false, false, $arSelectWin);
while($obWin = $resWin->Fetch())
{
	$arFields_update = Array(
		"ACTIVE" => "N",
		"IBLOCK_ID" => 70,
	);
	if ($obE->Update($obWin["ID"], $arFields_update)){
		$c++;
	}
}
echo '
Успешно деактивировано товаров: '.$c; $obE = new CIBlockElement(); $c3 = 0; $arSelectWin = Array("ID", "NAME", "PROPERTY_GRUZIT_NA_SAYT"); $arFilterWin = Array("IBLOCK_ID"=>70 , "=PROPERTY_GRUZIT_NA_SAYT"=>19095 , "ACTIVE"=>"N" ); $resWin = CIBlockElement::GetList(Array("sort"=>"asc"), $arFilterWin, false, false, $arSelectWin); while($obWin = $resWin->Fetch()) { $arFields_update = Array( "ACTIVE" => "Y", "IBLOCK_ID" => 70, ); if ($obE->Update($obWin["ID"], $arFields_update)){ $c3++; } } echo '
Успешно активировано товаров: '.$c3; $obE = new CIBlockElement(); $c2 = 0; $arSelectWin = Array("ID", "NAME", "PROPERTY_GRUZIT_NA_SAYT"); $arFilterWin = Array("IBLOCK_ID"=>100 , "=PROPERTY_GRUZIT_NA_SAYT"=>28186 , "ACTIVE"=>"Y" ); $resWin = CIBlockElement::GetList(Array("sort"=>"asc"), $arFilterWin, false, false, $arSelectWin); while($obWin = $resWin->Fetch()) { $arFields_update = Array( "ACTIVE" => "N", "IBLOCK_ID" => 100, ); if ($obE->Update($obWin["ID"], $arFields_update)){ $c2++; } } echo '
Успешно деактивировано ТП: '.$c2; $obE = new CIBlockElement(); $c4 = 0; $arSelectWin = Array("ID", "NAME", "PROPERTY_GRUZIT_NA_SAYT"); $arFilterWin = Array("IBLOCK_ID"=>100 , "=PROPERTY_GRUZIT_NA_SAYT"=>28185 , "ACTIVE"=>"N" ); $resWin = CIBlockElement::GetList(Array("sort"=>"asc"), $arFilterWin, false, false, $arSelectWin); while($obWin = $resWin->Fetch()) { $arFields_update = Array( "ACTIVE" => "Y", "IBLOCK_ID" => 100, ); if ($obE->Update($obWin["ID"], $arFields_update)){ $c4++; } } echo '
Успешно активировано ТП: '.$c4;


перейти в Блог

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): 1С-Битрикс 36  PHP 47  web-программирование 71  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю:
Имя


email (не публикуется)