Проверка наличия товара с таким кодом, если есть - обновить цену, если нету - добавить:
Но почему-то условия не срабатывают. Где я ошибся?
| Код |
|---|
$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;
|
, $arFilter, Array("NAME","ID","DATE_ACTIVE_FROM","PROPERTY_CODE_SERVICE"
