Пишем скрипт, который по запуску удалит все товары одного бренда.
Как написать скрипт в Битриксе по удалению товаров?
Первым делом подключаем пролог и модуль инфоблоков:
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;