среда 18 марта, 2015 - Андрей Поиск
Данный сервис предоставляет пользователям возможность искать необходимые им автозапчасти

Данный сервис предоставляет удобный для пользователя поиск. Поиск осуществляется в два этапа. Вначале, согласно критериям, пользователь указывает необходимый товар. В результате он получает несколько каталогов, в которых находится интересующий его товар. Теперь пользователь может приступить ко второму этапу поиска. Указывая имя каталога и искомую деталь, пользователь получит расширенный список найденных товаров.

WSDL схема: http://api.autogroup.pro/ClientApi/SearchService.svc?wsdl

URI сервиса:

SOAP - http://api.autogroup.pro/ClientApi/SearchService.svc/soap

JSON - http://api.autogroup.pro/ClientApi/SearchService.svc/json

Сервис включает в себя определение двух методов.

НазваниеНазначение
SearchCatalogsОсуществляет поиск каталогов по указанным критериям (первый этап поиска).
SearchDetailsОсуществляет поиск подходящих товаров, включая аналоги искомого товара (второй этап поиска).

Метод SearchCatalogs

Осуществляет поиск подходящих каталогов (первый этап поиска).

Входные данные:

Имя параметраТипОбязательныйОписание
loginstringДаЛогин пользователя.
passwordstringДаПароль пользователя.
articlestringДаАртикул.

Результат:

SearchCatalogsResult

Класс содержит список найденных каталогов и комментарий к ошибке при поиске, если таковая имеется.

Имя свойстваТипОписание
CatalogsSearchCatalog[]Список найденных каталогов.
CommentstringОписание к ошибке при поиске, если таковая имеется. Текст ошибки будет полезен для разработчиков.

SearchCatalog

Найденный каталог на первом этапе поиска.

Имя свойстваТипОписание
CatalogNamestringНаименование каталога.
DescriptionstringОписание детали.

В этом примере показано, как вызвать метод SearchCatalogs.

using (var client = new SearchServiceClient())
{
    var login = "login";
    var password = "password";
    var result = client.SearchCatalogs(login, password, "LX1605");

    if (!result.Catalogs.Any())
    {
        Console.WriteLine("Подходящих каталогов не найдено");
    }
    else
    {
        Console.WriteLine("Список каталогов получен");
    }
}

Метод SearchDetails

Осуществляет поиск подходящих деталей (второй этап поиска).

Входные данные:

Имя параметраТипОбязательныйОписание
loginstringДаЛогин пользователя.
passwordstringДаПароль пользователя.
articlestringДаАртикул.
catalogNamestringДаНаименование каталога из первого этапа поиска.
isAnalogsboolНетТребуется ли искать кроме оригинальных запчастей еще и аналоги. Если параметр не задан, то по умолчанию true.
averageDeliveryDaysNoMoreint?НетМаксимальное среднее количество дней, за которое прибудет заказ. Если параметр не задан или равен null, то фильтр результата не выполняется.
deliveryPercentNoLessint?НетМинимальная вероятность доставки (null или значение от 0 до 100). Если параметр не задан или равен null, то фильтр результата не выполняется

Результат:

SearchDetailsResult

Класс содержит список найденных оригинальных запчасте, их аналогов и другую полезную информацию.

Имя свойстваТипОписание
OriginalsSearchDetail[]Список найденных оригинальных запчастей.
AnalogsSearchDetail[]Список найденных аналогов.
UserCurrencyCodestringТрехбуквенная валюта клиента в формате ISO 4217.
IsLockedboolЗначение true, если клиенту временно ограничен второй этап поиска; в противном случае - false.
CommentstringОписание к ошибке при поиске, если таковая имеется. Текст ошибки будет полезен для разработчиков.

SearchDetail

Найденная деталь для заказа.

Имя свойстваТипОписание
SearchQueryIdGuidИдентификатор для заказа данной детали. Указывается при добавлении в корзину.
ArticleDetailstringАртикул детали.
AvailabilityintНаличие (кол. деталей в наличии). Если кол-во деталей в наличии неизвестно, то данный параметр не имеет значения.
AvailabilityTypeAvailabilityTypeТип наличия.
CountrystringСтрана производитель.
DeliveryDaysAverageint?Срок доставки в среднем в днях. Если срок доставки неизвестен, то null.
DeliveryDaysGuranteedint?Гарантированный срок доставки в днях. Если срок доставки неизвестен, то null.
DescriptionstringОписание детали.
LotQuantityintМин кол-во в партии.
Probabilityint?Вероятность доставки. Если вероятность неизвестна, то null, иначе значение от 0 до 100.
CatalogNamestringПроизводитель.
PricedecimalЦена за одну деталь.

AvailabilityType

Описывает тип наличия детали при поиске деталей.

ЗначениеОписание
MoreБолее, чем указанное кол-во деталей.
LessМенее, чем указанное кол-во деталей.
EquallyРавно указанному кол-ву деталей.
UnknownКол-во деталей в наличии неизвестно.

В этом примере показано, как вызвать метод SearchForDetails.

using (var client = new SearchServiceClient())
{
    var login = "login";
    var password = "password";
    var details = client.SearchDetails(login, password, "LX1605", "Knecht (Mahle Filter)");

    if (!details.Originals.Any() && !details.Analogs.Any())
    {
        Console.WriteLine("Подходящих товаров не найдено");
    }
    else
    {
        Console.WriteLine("Список товаров получен");
    }
}