Мне нужно, чтобы после выгрузки из 1С товаров без детальных картинок (эти товары не обработаны и пока не готовы к размещению в каталоге) все такие товары становились неактивными. Для этого есть событие, которые прописывается в init.php. Событие прописал, но после выгрузки товары остаются активными. Подскажите, пожалуйста, в чем может быть проблема и как ее решить.
Само событие.
Код |
---|
AddEventHandler("iblock", "OnSuccessCatalogImport1C", "OnSuccessCatalogImport1CHandler");
function OnSuccessCatalogImport1CHandler($arEvent)
{
CModule::IncludeModule('iblock');
CModule::IncludeModule("catalog");
$arResult["SECTIONS"] = array();
$rsSections = CIBlockSection::GetList(
array('left_margin' => 'asc', 'NAME' => 'ASC'),
array(),
true,
array('ID', 'NAME', 'CODE', 'DEPTH_LEVEL', 'SECTION_PAGE_URL')
);
while($arSection = $rsSections->GetNext(false))
{
$arResult["SECTIONS"][] = $arSection;
}
$el = new CIBlockElement;
$count = 0;
foreach ($arResult['SECTIONS'] as $arSection)
{
$dbEls = CIBlockElement::GetList(false, array('SECTION_ID' => $arSection['ID']), false, false, array());
$arEls = $arElsID = array();
while ($arEl = $dbEls->Fetch())
{
$arEls[] = $arEl;
}
foreach ($arEls as $arEl)
{
if (CCatalogSKU::IsExistOffers($arEl['ID']))
{
$arElID = intval($arEl['ID']);
$arSkuInfo = CCatalogSKU::GetInfoByProductIBlock($arEl['IBLOCK_ID']);
$SellingPropositions = CIBlockElement::GetList(
array(),
array('IBLOCK_ID' => $arSkuInfo['IBLOCK_ID'], '=PROPERTY_'.$arSkuInfo['SKU_PROPERTY_ID'] => $arElID, 'ACTIVE' => 'Y'),
false,
false,
array('ID', 'NAME', 'DETAIL_PICTURE')
);
$SellingPropositionsIDs = array();
while ($a = $SellingPropositions->Fetch())
{
$SellingPropositionsIDs[] = $a;
}
foreach ($SellingPropositionsIDs as $SellingPropositionsID)
{
if (!is_numeric($SellingPropositionsID["DETAIL_PICTURE"]))
{
$el->Update(intval($SellingPropositionsID["ID"]), array("ACTIVE" => 'N'));
}
}
}
}
}
}
|