Руководство по интеграции ретрансляционного веб сервиса TecDoc и интернет-магазинов на базе PHP Содержание Общее описание API Основные функции для формирования каталога: o Получения производителей (брендов) деталей. o Получение производителей автомобилей. o Получения списка моделей данного производителя. o Получение списка модификаций модели. o Получение групп деталей (запчастей). o Получение списка деталей данной группы. o Получение информации о детали. o Получение изображения детали. Поиск аналогов для запчастей o Получение аналогов по артикулу. o Полезные ссылки. Общее описание Для соединения с веб сервисом потребуется использование SOAP клиента, в случае использования PHP 5й версии, достаточно указать инициализации клиента путь к веб-сервису. // Инициализация экземпляра SOAP // без использования wsdl-файлов (для ускорения работы) $tecdoc = new SoapClient(null, array('location' => "http://tecdoc.com.ua/1.2/", 'uri' => "http://tecdoc.com.ua/1.2/")); Пример Получение производителей (марок) автомобилей $tecdoc = new SoapClient(null, array('location' => "http://tecdoc.com.ua/1.2/",'uri' => "http://tecdoc.com.ua/1.2/")); $output = ''; $carType = isset($_POST['type']) ? intval($_POST['type']) : 1; try { $params = array( 'cached' => 1, 'countriesCarSelection' => 'ru', 'lang' => 'ru', 'favouredList'=> 1, 'countryGroupFlag'=> false, 'carType'=> $carType, 'countriesCarSelection'=> 'ru', 'evalFavor'=> false ); при $result = $tecdoc->getVehicleManufacturers($params); foreach ($result as $item) { $output . = '<li><a rel="'.$item['manuId'].'"href="models.html?type='.$carType.'&man='. $item['manuId'].'">'.$item['manuName'].'</a></li>'; } echo '<ul id="manufacturers">'.$output.'</ul>'; } catch (SoapFault $ex) { echo $ex->getMessage(); } Результат: Получение списка моделей определенного производителя Пример (запрос): $params = array( 'cached' => 1, 'countriesCarSelection' => 'ru', 'lang' => 'ru', 'favouredList'=> 1, 'countryGroupFlag'=> false, 'carType'=> $carType, // 1 – легковые авто, 2 -грузовые 'countriesCarSelection'=> 'ru', 'evalFavor'=> false, 'manuId'=> $manuId); $result = $tecdoc->getVehicleModels($params); Результат (ответ): Название modelId modelname yearOfConstrFrom yearOfConstrTo Тип int string date date Описание (содержание ответа) Номер производителя Название производителя Дата начала производства в формате yyyymm Дата конца производства в формате yyyymm Получение списка модификаций модели Пример (запрос): $params = array( 'carType'=> $carType, 'countriesCarSelection'=> 'ru', 'countryGroupFlag'=> false, 'countryUserSetting'=> 'ru', 'lang' => 'ru', 'favouredList'=> 1, 'linked' => false, 'manuId'=> $manuId, 'modId' =>$modId ); $result = $tecdoc->getVehicleModelsTypes($params); Ответ веб-сервиса: array( 'carDetails', 'complexType', 'struct', 'all', '', array( 'carId' => array('carId' => 'carId', 'type' => 'xsd:int'), 'carName' => array('carName' => 'carName', 'type' => 'xsd:string'), 'cylinderCapacity' => array('cylinderCapacity' => 'cylinderCapacity', 'type' => 'xsd:int'), 'firstCountry' => array('firstCountry' => 'firstCountry', 'type' => 'xsd:string'), 'linked' => array('linked' => 'linked', 'type' => 'xsd:int'), 'powerHpFrom' => array('powerHpFrom' => 'powerHpFrom', 'type' => 'xsd:int'), 'powerHpTo' => array('powerHpTo' => 'powerHpTo', 'type' => 'xsd:int'), 'powerKwFrom ' => array('powerKwFrom ' => 'powerKwFrom ', 'type' => 'xsd:int'), 'powerKwTo ' => array('powerKwTo' => 'powerKwTo', 'type' => 'xsd:int'), 'yearOfConstrFrom' => array('yearOfConstrFrom' => 'yearOfConstrFrom', 'type' => 'xsd:int'), 'yearOfConstrTo' => array('yearOfConstrTo' => 'yearOfConstrTo', 'type' => 'xsd:int') ) ) Ответ в браузере: Получение групп деталей * * По сути – это категории (группы) деталей и детали, доступные для выбранной модификации Пример (запрос): $params = array( 'country'=>'ru', 'linkingTargetType'=>'C', 'linkingTargetId'=>$carId, // id модификации модели 'lang' => 'ru', 'parentNodeId'=>$parent, // ** id родительской категории 'childNodes' => false ); $result = $tecdoc->getVehicleMainDetails($params); ** Если требуется получить все «дерево» категорий и деталей в них, укажите null Ответ в браузере: Получение списка деталей определенной группы Пример (запрос): $params = array( 'lang' => 'ru', 'linkingTargetType' => 'C', // Поиск по следующему параметру // C: Vehicle type, M: Motor, A: Axles, // K: Body Type, U: Universal 'country' => 'ru', 'linkingTargetId' => $carId, // Linking target ID параметр // соответсвующий linking target type: // C: Vehicle type, M: Motor, // A: Axles, K: Body Type, U: Universal, ‘assemblyGroupNodeId' => $groupId, //Assembly group node ID – // Идентификатор // родителя(узла) категории 'brandNo' => null, 'genericArticleId' => null, 'sort' => 1 ); $result = $tecdoc->findAnalogues($params); Ответ веб-сервиса *: * В результате получаем список аналогов, отвечающий параметрам Array(0=>array( 'articleId // int Идентификатор артикула , 'articleName' // string Название ,'articleNo' // string Артикул детали , 'brandName' // string Название бренда 'brandNo' // int Номер бренда 'genericArticleId // int Идентификатор группы 'genericArticleName' // string Название 'sortNo' // int Номер сортировки ... ) ) Ответ в браузере: Получение информации о детали * * Подробная информация о детали – это набор опций, указаний к установке и т.д. от производителя Пример (запрос): $params = array( 'lang' => 'ru', 'linkingTargetType' => 'U', 'country' => 'ru', 'manuId' => null, 'modId' => null, 'linkingTargetId' => null, 'articleId'=>$articleId, 'articleLinkId'=>$articleId, 'attributs' => true, 'priceDate' => null, 'immediateAttributs' =>false, 'immediateInfo' => false, 'normalAustauschPrice' => false, 'eanNumbers' => false, 'usageNumbers' => false, 'replacedNumbers' => false, 'replacedByNumbers' => false, 'info' => false, 'mainArticles' => false, 'documents' => false, 'prices' =>false, 'oeNumbers' => false, 'documentsData' => false ); $tecdoc->getDetailInfo($params); Ответ веб-сервиса: Array( 'attrName' // Название спецификации 'attrValue' // значение спецификации // 'attrUnit' // 'attrShortName' // 'attrIsConditional' // 'attrIsInterval' ); В браузере: Получение изображения детали Пример запроса: http://tecdoc.com.ua/thumb/?829481 <img height="30" src=http://tecdoc.com.ua/thumb/?829481 /> В качестве параметра в запросе указывается идентификатор артикула в ответах сервера он обозначен как 'articleId' Поиск аналогов по артикулу детали Пример запроса: $params = array( 'lang' => 'ru', 'linkingTargetType' => 'C', // Поиск по следующему параметру // C: Vehicle type, M: Motor, A: Axles, // K: Body Type, U: Universal 'country' => 'ru', 'linkingTargetId' => $carId, // Linking target ID параметр // соответсвующий linking target type: // C: Vehicle type, M: Motor, //A: Axles, K: Body Type, // U: Universal, assemblyGroupNodeId' => $groupId, // Assembly group node ID – Идентификатор // родителя (узла) категории 'brandNo' => null, 'genericArticleId' => null, 'sort' => 1 ); $result = $tecdoc->findAnalogues($params); Ответ веб-сервиса: Array(‘0’=>array( 'articleId //int Идентификатор артикула , 'articleName' // string Название ,'articleNo' //string Артикул детали , 'brandName' //string Название бренда 'brandNo' //int 'genericArticleId //int Номер бренда Идентификатор группы 'genericArticleName' //string Название 'sortNo' //int Номер сортировки) ... ) В браузере: