Проверка наличия товара с таким кодом, если есть - обновить цену, если нету - добавить:
Но почему-то условия не срабатывают. Где я ошибся?
Код |
---|
$arFilter = Array( "IBLOCK_ID"=>6, "PROPERTY_CODE_SERVICE"=>$keyadd['0'] ); $num = CIBlockElement::GetList(array(),array('IBLOCK_ID'=>6, "PROPERTY_CODE_SERVICE"=>$keyadd['0'], "ACTIVE"=>"Y"),array()); #echo $num.'<br />'; if($num == 0): $res = CIBlockElement::GetList(Array("SORT"=>"ASC", "PROPERTY_PRIORITY"=>"ASC"), $arFilter, Array("NAME","ID","DATE_ACTIVE_FROM","PROPERTY_CODE_SERVICE")); while($ar_fields = $res->GetNext()) { #Добавляем $el = new CIBlockElement; $PROP[126] = $keyadd['0']; $PROP[76] = $keyadd['2']; $PROP[77] = $keyadd['3']; $params = Array( "max_len" => "100", "change_case" => "L", "replace_space" => "_", "replace_other" => "_", "delete_repeat_replace" => "true", ); $code = $keyadd['1']; $arLoadProductArray = Array( "MODIFIED_BY" => 1, "CREATED_BY" => 1, "IBLOCK_SECTION" => "", "IBLOCK_ID" => 6, "CODE" => CUtil::translit($code, "ru", $params), "PROPERTY_VALUES"=> $PROP, "SORT" => 500, "NAME" => $keyadd['1'], "ACTIVE" => "Y" ); if($PRODUCT_ID = $el->Add($arLoadProductArray)){ echo "<pre>"; print_r($PRODUCT_ID); echo "</pre>"; echo " добавлен"; }else{ echo "Error: ".$el->LAST_ERROR; } } else: #обновляем if(CIBlockElement::SetPropertyValuesEx($ar_fields['ID'], false, array('PRICE' => $keyadd['2']))) echo 'обновлен '.$ar_fields['ID'].'<br />'; endif; |