Удалить товары из умного фильтра

Стояла задача убрать из умного фильтра товары, которые были отмечены как распроданные. При этом активны на сайте. Решил через удаление их из фасетного индекса.

$arSelect = Array("ID", "IBLOCK_ID", "NAME");//IBLOCK_ID и ID обязательно должны быть указаны, см. описание arSelectFields выше
$arFilter = Array("IBLOCK_ID"=>60, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y", "PROPERTY_SOLD" => "Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, array("nPageSize" => 50, "iNumPage" => $i), $arSelect);
while($ob = $res->GetNextElement()){ 
	$arFields = $ob->GetFields(); 
	\Bitrix\Iblock\PropertyIndex\Manager::deleteElementIndex(60, $arFields["ID"]);
	echo "<br>";
}
$i++;
echo "<meta http-equiv='refresh' content='1; url=?i=".$i."' />";

Удаляется за раз 50 элементом, затем страница перезагружается(работает в браузере, возможно переделаю для запуска в консоли).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *