Руководство по интеграции ретрансляционного веб сервиса TecDoc и

advertisement
Руководство по интеграции
ретрансляционного веб сервиса
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 Номер сортировки)
...
)
В браузере:
Download