Your IP : 3.143.205.184


Current Path : /home/bitrix/ext_www/ballu.in.ua/import/subscripts/
Upload File :
Current File : /home/bitrix/ext_www/ballu.in.ua/import/subscripts/gate_products.php

<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>