Битрикс – Как удалить товары заданного Бренда?

Пишем скрипт, который по запуску удалит все товары одного бренда.

Как написать скрипт в Битриксе по удалению товаров?

Первым делом подключаем пролог и модуль инфоблоков:

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

У нас будет 2 параметра – ID инфоблока и ID Бренда, товары которого будем удалять:

$IBLOCK_ID = 3;
$BRAND_ID = 127;

Для обхода товаров будем использовать CIBlockElement::GetList. Теперь пишем скрипт:

$res = CIBlockElement::GetList (
	Array("ID" => "ASC"),
	Array("IBLOCK_ID" => $IBLOCK_ID, "PROPERTY_BRAND" => $BRAND_ID),
	false,
	false,
	Array('ID', 'NAME', 'DETAIL_PAGE_URL')
);
while ($arItem = $res->GetNext())
{
	$ELEMENT_ID = $arItem['ID'];

	if(CIBlock::GetPermission($IBLOCK_ID)>='W')
	{
		$DB->StartTransaction();
		if(!CIBlockElement::Delete($ELEMENT_ID))
		{
			$strWarning .= 'Error!';
			$DB->Rollback();
		}
		else
		{
			$DB->Commit();
		}
	}
}

Вот так в Битриксе вы можете удалить товары при помощи скрипта. В случае, когда у вас бренд = раздел каталога, конечно же легче зайти в админку и просто удалить все товары в нужном разделе.

Важно! Перед запуском скрипта делайте резервную копию, убережет от ошибок 🙂
Полный код скрипта по удалению товаров заданного бренда выглядит так:

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (CModule::IncludeModule("iblock")):

	$IBLOCK_ID = 3;
	$BRAND_ID = 127;

	$res = CIBlockElement::GetList (
		Array("ID" => "ASC"),
		Array("IBLOCK_ID" => $IBLOCK_ID, "PROPERTY_BRAND" => $BRAND_ID),
		false,
		false,
		Array('ID', 'NAME', 'DETAIL_PAGE_URL')
	);
	while ($arItem = $res->GetNext())
	{
		$ELEMENT_ID = $arItem['ID'];

		if(CIBlock::GetPermission($IBLOCK_ID)>='W')
		{
			$DB->StartTransaction();
			if(!CIBlockElement::Delete($ELEMENT_ID))
			{
				$strWarning .= 'Error!';
				$DB->Rollback();
			}
			else
			{
				$DB->Commit();
			}
		}
	}
endif;

автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Email: dmitriyribka@gmail.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *