26.12.202010:5826.12.2020 10:58:11
https://fapi.iisis.ru/api-dostuphttps://app.swaggerhub.com/apis/serp83/fapi/1.0.4#/ define("FAPI_API_KEY", 'XXXXXXXXXXXXXXX'); //это ключ, который вам выдают для доступа |
Получаем список производителей с FAPI
function GetBrandsFapi(){
$url = 'http://fapi.iisis.ru/fapi/v2/manufacturerList?ui='.FAPI_API_KEY;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
|
Получить картинку детали с FAPI
function GetImageFapi($mfi,$numDetail){
$url = 'https://static.fapi.iisis.ru/fapi/v2/imageList?ui='.FAPI_API_KEY;
$result = '';
if(!empty($mfi) && !empty($numDetail)){
$numDetail = urlencode($numDetail);
$url = $url.'&mfi='.$mfi."&n=".$numDetail."&width=1000&imgd=false";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($curl);
curl_close($curl);
}
return $result;
}
|
Получить применяемость с FAPI
function GetApplicabilityFapi($mfi,$numDetail){
$url = 'https://fapi.iisis.ru/fapi/v2/productApplicabilityList?ui='.FAPI_API_KEY;
$result = '';
if(!empty($mfi) && !empty($numDetail)){
$numDetail = urlencode($numDetail);
$url = $url.'&mfi='.$mfi."&n=".$numDetail;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($curl);
curl_close($curl);
}
return $result;
}
|
получить список аналогов для детали с FAPI
function GetAnalogsFapi($mfi,$numDetail){
$url = 'https://fapi.iisis.ru/fapi/v2/analogList?ui='.FAPI_API_KEY;
$result = '';
if(!empty($mfi) && !empty($numDetail)){
$numDetail = urlencode($numDetail);
$url = $url.'&mfi='.$mfi."&n=".$numDetail."&r=2&O=CORRECT_AR";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$result = curl_exec($curl);
curl_close($curl);
}
return $result;
}
|
Заполняем бренды$result = GetBrandsFapi();
$result = json_decode($result);
$arBrandsFapi = array();
if(property_exists($result,'mf')){
foreach ($result->mf as $item) {
if(property_exists($item,'dbi') && property_exists($item,'ds')){
$arBrands[$item->dbi] = $item->ds;
}
}
}
|
В инфоблоке брендов завела свойство
MFI типа строка
обновляем их
CModule::IncludeModule('iblock');
$arSelect = Array("ID", "NAME");
$arFilter = Array("IBLOCK_ID"=>$iblockBrandsId);
$res = CIBlockElement::GetList(Array("id"=>"asc"), $arFilter, false, Array(), $arSelect);
while ($arBrand = $res->Fetch()) {
$brandName = strtoupper($arBrand["NAME"]);
$brandName = str_replace(array(" ","-","'",'/'), "", $brandName);
$mfi = array_search($brandName, $arBrandsFapi);
if($mfi !== false){
CIBlockElement::SetPropertyValuesEx($arBrand["ID"], false, array("MFI"=>$mfi));
}
else{
echo $brandName." не найден<br>";
}
}
|
функция для отбора брендов
function GetBrandsByFilter($iblockBrandsId,$filter=array()){
$arBrands = array();
if(!empty($filter) && CModule::IncludeModule('iblock')){
$arSelect = Array("ID", "NAME","PROPERTY_MFI");
$arFilter = Array(
"IBLOCK_ID"=>$iblockBrandsId,
"ID" => $filter,
"!PROPERTY_MFI"=>false
);
$res = CIBlockElement::GetList(Array("id"=>"asc"), $arFilter, false, Array("nPageSize"=>500,"iNumPage"=>1), $arSelect);
while ($arBrand = $res->Fetch()) {
$arBrands[$arBrand["ID"]] = $arBrand;
}
}
return $arBrands;
}
|
26.12.202010:5826.12.2020 10:58:11