Your IP : 3.143.205.184
<pre><?$_SERVER["DOCUMENT_ROOT"] = __DIR__."/../..";
require $_SERVER["DOCUMENT_ROOT"]."/import/.config.php";
echo "here\n";
//echo $IBLOCK;
/*$options = [
'limit' => 5,
'offset' => 4
];*/
/*
startTimer("getProps");
// получить список характеристик
$arProps = getRest("properties");
$Props = formatProperty($arProps["data"]);
//echol($Props["PROPERTY_TYPES"]);
//$Props["GROUPS"] = getPropGroups($Props["PROPERTIES"]);
*/
// Получение каталога
startTimer("getCatalog");
$arCatalog = getRest("catalog");
$Catalog = formatCatalog($arCatalog["data"],$SITE_TYPE_XML_ID);
unset($arCatalog);
stopTimer("getCatalog");
//echol($Catalog);
//echol($Catalog["GROUP_PROPERTIES"]);
/*
foreach($Catalog["PROPERTIES"] as $id => $prop){
//echol($prop);
if(!empty($Props["PROPERTIES"][$id])) $Props["PROPERTIES"][$id]["FROM_CATALOG"]=$prop;
else {
$Props[$id] = $prop;
//echol("not_found".$id);
//echol($prop);
}
}
foreach($Catalog["GROUP_PROPERTIES"] as $k=> $cnt){
if(!empty($Props["PROPERTIES"][$k])) {
$Props["GROUP_PROPERTIES"][$k] = $Props["PROPERTIES"][$k];
unset($Props["PROPERTIES"][$k]);
}
}
$Props["PROPERTIES"] = mergePropsWithCatalog($Props["PROPERTIES"]);
$Props["PROPERTIES"] = setPropertiesCode($Props["PROPERTIES"]);
$arLoad = preparePropsLoad($Props["PROPERTIES"]);
/*MakeLoadReady($arLoad["IBLOCK"]["TO_UPDATE"]);
MakeLoadReady($arLoad["IBLOCK"]["TO_ADD"]);
MakeLoadReady($arLoad["GROUPS"]);
MakeLoadReadyProps($arLoad["PROPERTIES"]["TO_UPDATE"]);
MakeLoadReadyProps($arLoad["PROPERTIES"]["TO_ADD"]);*/
//echol($arLoad["GROUPS"]);
/*foreach($Props["PROPERTIES"] as $k=> $prop){
$TYPES[$prop["VALUE_TYPE"]]+=1;
}
echol($arLoad);
echol($TYPES);
*/
startTimer("getNomenclature");
// получить список характеристик
$arElements = getRest("nomenclature");
stopTimer("getNomenclature");
startTimer("formatNomenclature");
$Elements = formatElements($arElements["data"]);
//echopart($Elements);
//echopart($arElements,2);
unset($arElements);
// Получить ссылки на бренды
//$arBrends = allElements( $BRANDS_IBLOCK_ID, array("ID","NAME","XML_ID"), "XML_ID");
//$arBrends = cleanTilda($arBrends);
$arElements = allElements( $IBLOCK, array("ID","NAME","XML_ID"), "XML_ID");
$arElements = cleanTilda($arElements);
//echol($arBrends);
// получить список свойств
$arProps = getPropsList();
foreach($arProps as $pr){
if($pr["XML_ID"]!=""){
$out[$pr["XML_ID"]] = $pr;
}
}
$arProps = $out;
//echol($arProps);
// вытащить разделы для привязок
$arSections = allSections($IBLOCK,"N");
foreach($arSections as $k => $sec){
$arSections[$sec["XML_ID"]]=$sec["ID"];
unset($arSections[$k]);
}
//echol($arSections);
// вытащить стандартные поля
// вытащить характеристики-НЕхарактеристики
// обновить остальные поля
#$warranty_id = "d2a56176-e605-11e5-b14a-ac162d7b6f40";
#$country_id = "015cb1f0-e605-11e5-b14a-ac162d7b6f40";
#$test = [
# str_replace(";", "_", $el["NAME"]),$el["NSI_CODE"],$el["PROPERTIES"][$warranty_id],$el["PROPERTIES"][$country_id]
# ];
# echol(implode(";", $test));
//echol($arProps);
startTimer("Element_produce");
foreach($Elements as $xmlid => $el){
$gcounter++;
//if($gcounter<1100) continue;
if($el["ELEMENT_TYPE"] !="Товар") continue;
$arReady[$xmlid]=[
"XML_ID" => $xmlid
];
if($el["WEB_ACTIVE"]=="Y" && $el["AVAILABLE_TO_BUY"]=="Y" && $el["ACTIVE"]=="Y") $arReady[$xmlid]["ACTIVE"]="Y";
else $arReady[$xmlid]["ACTIVE"]="N";
$arReady[$xmlid]["IBLOCK_SECTION_ID"] = $arSections[$el["SECTION"]["GROUP"]];
foreach ($el["PROPERTIES"] as $id => $val) {
// для всех файловых свойств отправить значения на регистрацию
if($arProps[$id]["PROPERTY_TYPE"]=="F" || checkValForFile($val)) {
$out["FILES"][$val] += 1;
$file = [
"HASH" => $val,
"ELEMENT_ID" => $xmlid,
"PROPERTY_CODE" => $arProps[$id]["CODE"]
];
if(!empty($val)) registerGatewayFile($file);
}elseif(!empty($arProps[$id."-n"])){
if($val!="#" && !empty($val)){
$arReady[$xmlid]["PROPERTY_VALUES"][$arProps[$id]["CODE"]] = $val;
$arReady[$xmlid]["PROPERTY_VALUES"][$arProps[$id]["CODE"]."_n"] = $val;
}
}else{
// соединить символьный код характеристики и значение, отрезать решетку
if($val!="#" && !empty($val))
$arReady[$xmlid]["PROPERTY_VALUES"][$arProps[$id]["CODE"]] = $val;
}
//$Props["IN_ELEMENTS"][$id]+=1;
if($id=="c0da4812-6381-11e5-b5fc-ac162d7b6f40"){
// Название товара
$arReady[$xmlid]["NAME"]=$val;
}/*elseif($id=="73ad50bb-e69a-11e5-b14a-ac162d7b6f40"){
$test = [
str_replace(";", "_", $el["NAME"]),$el["NSI_CODE"],str_replace(";", "_", $val)
];
//echol(implode(";", $test));
}*/
if($Props["PROPERTIES"][$id]["VALUE_TYPE"]=="Значения свойств объектов") {
$Props["VALUES"][$id][$val]+=1;
$Props["PROPERTIES"][$id]["VALUES"][$val]+=1;
//echol("there");
}
if(empty($Props["PROPERTIES"][$id])) $not_found[$id]+=1;
}
if(!empty($el["IS_NEW"])&& $el["IS_NEW"]=="Y") $arReady[$xmlid]["PROPERTY_VALUES"]["IS_NEW"]=10038;
$arReady[$xmlid]["IBLOCK_ID"]=$IBLOCK;
// if($xmlid=="6ad15c42-02ce-42d5-8553-abee83a7fbf4"){
// echol($arReady["$xmlid"]);
// echol($el);
// echol($el["SECTION"]["GROUP"]);
// echol($Catalog[$el["SECTION"]["GROUP"]]);
// }
$arReady[$xmlid]["PROPERTY_VALUES"]["FULL_NAME"] = $el["FULL_NAME"];
$arReady[$xmlid]["PROPERTY_VALUES"]["NAME"] = $el["PROPERTY_NAME"];
$arReady[$xmlid]["PROPERTY_VALUES"]["CODE"] = $el["NSI_CODE"];
$arReady[$xmlid]["PROPERTY_VALUES"]["ACTIVE"] = $el["ACTIVE"];
$arReady[$xmlid]["PROPERTY_VALUES"]["ARTIKUL"] = $el["ARTIKUL"];
$arReady[$xmlid]["PROPERTY_VALUES"]["PREORDER"] = $el["PREORDER"];
$arReady[$xmlid]["PROPERTY_VALUES"]["GROUP"] = $arReady[$xmlid]["IBLOCK_SECTION_ID"];
$arReady[$xmlid]["PROPERTY_VALUES"]["EL_BRAND"] = $arBrends[$el["BRAND"]]["ID"];
// крупногабарит
$arReady[$xmlid]["PROPERTY_VALUES"]["IS_BIG_SIZE"] = $Catalog["BY_XML"][$el["SECTION"]["GROUP"]]["KGT"];
if(!empty($arElements[$xmlid])) $arReady[$xmlid]["ID"] = $arElements[$xmlid]["ID"];
else {
if(empty($arReady[$xmlid]["NAME"])){
$arReady[$xmlid]["NAME"] = $arReady[$xmlid]["PROPERTY_VALUES"]["NAME"];
}
$arTrans = array(
"replace_space"=>"_",
"replace_other"=>"_",
"delete_repeat_space"=>true,
"change_case"=>"L"
);
$code = Cutil::translit($arReady[$xmlid]["NAME"],"ru",$arTrans);
$arReady[$xmlid]["CODE"] = $code;
//if(empty($code)) echol($arReady[$xmlid]);
}
//if($xmlid=="2a4256d0-9956-423c-a759-1f240f4a9982") echol($arReady[$xmlid]);
if(empty($arReady[$xmlid]["IBLOCK_SECTION_ID"])) {
echol($el);
unset($arReady[$xmlid]);
$countempsec++;
}
}
// Alex: деактивируем товары которых не было в выгрузке
/*foreach($arElements as $xmlProd => $prod)
{
if(!isset($arReady[$xmlProd]))
{
$arReady[$xmlProd] = array(
"ID" => $prod["ID"],
"NAME" => $prod["NAME"],
"ACTIVE" => "N",
);
}
}*/
stopTimer("Element_produce");
$el = new CIBlockElement;
MakeLoadReady($arReady);
stopTimer("formatNomenclature");
echol($countEmpty." -- ".$countempsec);
echol(count($Elements)." __ ".count($arReady));
echol($arBrands);
$fd = fopen($_SERVER["DOCUMENT_ROOT"]."/import/my_cron.txt","a");
fwrite($fd, "Обращение к gate_products - ".date("d.m.Y H:i")."\r\n");
fclose($fd);
//echol($Elements);
//echol($Props["VALUES"]);
outTimers();
?>
</pre>