Данный сервис предоставляет удобный для пользователя поиск. Поиск осуществляется в два этапа. Вначале, согласно критериям, пользователь указывает необходимый товар. В результате он получает несколько каталогов, в которых находится интересующий его товар. Теперь пользователь может приступить ко второму этапу поиска. Указывая имя каталога и искомую деталь, пользователь получит расширенный список найденных товаров.
Сервис включает в себя определение двух методов.
| Название | Назначение |
|---|---|
| SearchCatalogs | Осуществляет поиск каталогов по указанным критериям (первый этап поиска). |
| SearchDetails | Осуществляет поиск подходящих товаров, включая аналоги искомого товара (второй этап поиска). |
Метод SearchCatalogs
Осуществляет поиск подходящих каталогов (первый этап поиска).
Входные данные:
| Имя параметра | Тип | Обязательный | Описание |
|---|---|---|---|
| login | string | Да | Логин пользователя. |
| password | string | Да | Пароль пользователя. |
| article | string | Да | Артикул. |
Результат:
Класс содержит список найденных каталогов и комментарий к ошибке при поиске, если таковая имеется.
| Имя свойства | Тип | Описание |
|---|---|---|
| Catalogs | SearchCatalog[] | Список найденных каталогов. |
| Comment | string | Описание к ошибке при поиске, если таковая имеется. Текст ошибки будет полезен для разработчиков. |
Найденный каталог на первом этапе поиска.
| Имя свойства | Тип | Описание |
|---|---|---|
| CatalogName | string | Наименование каталога. |
| Description | string | Описание детали. |
В этом примере показано, как вызвать метод 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
Осуществляет поиск подходящих деталей (второй этап поиска).
Входные данные:
| Имя параметра | Тип | Обязательный | Описание |
|---|---|---|---|
| login | string | Да | Логин пользователя. |
| password | string | Да | Пароль пользователя. |
| article | string | Да | Артикул. |
| catalogName | string | Да | Наименование каталога из первого этапа поиска. |
| isAnalogs | bool | Нет | Требуется ли искать кроме оригинальных запчастей еще и аналоги. Если параметр не задан, то по умолчанию true. |
| averageDeliveryDaysNoMore | int? | Нет | Максимальное среднее количество дней, за которое прибудет заказ. Если параметр не задан или равен null, то фильтр результата не выполняется. |
| deliveryPercentNoLess | int? | Нет | Минимальная вероятность доставки (null или значение от 0 до 100). Если параметр не задан или равен null, то фильтр результата не выполняется |
Результат:
Класс содержит список найденных оригинальных запчасте, их аналогов и другую полезную информацию.
| Имя свойства | Тип | Описание |
|---|---|---|
| Originals | SearchDetail[] | Список найденных оригинальных запчастей. |
| Analogs | SearchDetail[] | Список найденных аналогов. |
| UserCurrencyCode | string | Трехбуквенная валюта клиента в формате ISO 4217. |
| IsLocked | bool | Значение true, если клиенту временно ограничен второй этап поиска; в противном случае - false. |
| Comment | string | Описание к ошибке при поиске, если таковая имеется. Текст ошибки будет полезен для разработчиков. |
Найденная деталь для заказа.
| Имя свойства | Тип | Описание |
|---|---|---|
| SearchQueryId | Guid | Идентификатор для заказа данной детали. Указывается при добавлении в корзину. |
| ArticleDetail | string | Артикул детали. |
| Availability | int | Наличие (кол. деталей в наличии). Если кол-во деталей в наличии неизвестно, то данный параметр не имеет значения. |
| AvailabilityType | AvailabilityType | Тип наличия. |
| Country | string | Страна производитель. |
| DeliveryDaysAverage | int? | Срок доставки в среднем в днях. Если срок доставки неизвестен, то null. |
| DeliveryDaysGuranteed | int? | Гарантированный срок доставки в днях. Если срок доставки неизвестен, то null. |
| Description | string | Описание детали. |
| LotQuantity | int | Мин кол-во в партии. |
| Probability | int? | Вероятность доставки. Если вероятность неизвестна, то null, иначе значение от 0 до 100. |
| CatalogName | string | Производитель. |
| Price | decimal | Цена за одну деталь. |
Описывает тип наличия детали при поиске деталей.
| Значение | Описание |
|---|---|
| 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("Список товаров получен");
}
}