Шпаргалка. Деактивация товаров у которых нет ни одного активного торгового предложения

В ходе определенной синхронизации были необходимо деактивировать товары, у которых нет ни одного активного оффера. Для этого был написан простой скрипт, который хотелось бы сохранить на всякий случай здесь :) 

$arProds = Array();                                                      // Массив со всеми товарами 

$resOffers = CIBlockElement::GetList(                                    // Делаем выборку офероф 
    Array(), 
    Array('IBLOCK_ID' => $IBLOCK_OFFERS_ID), 
    false, 
    false, 
    Array('IBLOCK_ID', 'ID', 'ACTIVE', 'PROPERTY_CML2_LINK.ID') 
); 

while($arOffer = $resOffers->GetNext()) {                                // Записываем активность офферов товара в массив $arProds 
    $iProdId = $arOffer['PROPERTY_CML2_LINK_ID']; 
    $iOfferId = $arOffer['ID']; 
    $arProds[$iProdId][$iOfferId] = $arOffer['ACTIVE']; 
} 

$arProdsToDeact = Array();                                               // Массив товаров для деактивации 
foreach($arProds as $iProdId=>$arOffers) {                               // Перебор всех товаров 
    $bDeact = true;                                                      // По умолчанию товар декативируем 
     
    foreach($arOffers as $iOfferId=>$sOfferActive) {                     // Но саначала посмотрим оферы товара 
        if($sOfferActive == "Y") {                                       // Если хоть один активен 
            $bDeact = false;                                             // Отменяем деактивацию 
            break;                                                       // И выходим из перебора офероф 
        } 
    } 
     
    if($bDeact) {                                                        // Если товар все таки нужно деактивировать 
        $arProdsToDeact[] = $iProdId;                                    // Запишем его в массив $arProdsToDeact 
    } 
} 

$elProd    = new CIBlockElement; 
$arProd    = Array('ACTIVE' => 'N');                                     // Каждому указываем новое значение активности 
foreach($arProdsToDeact as $keyProd=>$iProdId) {                         // Пройдем массив товаров для деактивации по порядку 
    $res = $elProd->Update($iProdId, $arProd);                           // И обновляем 
}