Веб-сервис av34.ru API
- Работа с поиском
- Работа с заказами
- Работа с корзиной
- Общие примечания
Общее
При отправке запросов к нашему Сервису обратите внимание, что Host (https://av34.ru) и другие заголовки во всех запросах должны быть едиными. URL, методы и параметры меняются в зависимости от запроса.
Работа с поиском
Получение брендов по артикулу
|
HTTP метод |
GET |
|||||||||
|
URL запроса |
/SearchService/GetBrands?article={article}&withoutTransit={true/false} |
|||||||||
|
Заголовки запроса |
Authorization: Basic {credentials} |
|||||||||
|
Параметры запроса (Все параметры обязательные!) |
article – Артикул (тип string) withoutTransit – Не возвращать транзитных поставщиков (тип Bool) |
|||||||||
|
Ответ |
JSON, коллекция объектов следующей структуры:
|
Получение результатов по артикулу и бренду
|
HTTP метод |
GET |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
URL запроса |
/SearchService/GetParts?article={article}&brand={brand}&withoutTransit={true/false} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Заголовки запроса |
Authorization: Basic {credentials} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Параметры запроса (Все параметры обязательные!) |
article – Артикул (тип string) brand – Бренд (тип string) withoutTransit – Не возвращать транзитных поставщиков (тип Bool) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ответ |
JSON, коллекция объектов следующей структуры:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
Работа с заказами
Отправка товаров в заказ (без отправки в корзину)
|
HTTP метод |
GET |
||||||||||||
|
URL запроса |
/SearchService/AddOrder?items=[array of items] |
||||||||||||
|
Заголовки запроса |
Authorization: Basic {credentials} |
||||||||||||
|
Параметры запроса (Все параметры обязательные!) |
items – Массив объектов вида: [{ article – Артикул (тип string), brand – Бренд (тип string), SupplierName – имя поставщика (тип string), CostSale – цена товара (тип double), Quantity – количество единиц товара (тип int), SupplierTimeMin – минимальный срок поставки в часах (тип int), SupplierTimeMax – максимальный срок поставки в часах (тип int), Comment – комментарий к позиции (тип string), GioID – уникальный идентификатор позиции в вашей системе (тип int) },{..}, …] Внимание! Параметр необходимо кодировать в строку URL-адреса! |
||||||||||||
|
Ответ |
JSON, коллекция объектов следующей структуры:
|
Получение информации о статусах заказа
|
HTTP метод |
GET |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
URL запроса |
/SearchService/GetPositionsByOrder/{orderId} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Заголовки запроса |
Authorization: Basic {credentials} Accept: application/json Content-type: application/json |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Параметры запроса |
orderId - номер заказа в нашей системе (тип int) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ответ |
JSON, коллекция объектов следующей структуры:
Object Status
|
Работа с корзиной
Отправка товара в корзину на сайте
|
HTTP метод |
GET |
|
URL запроса |
/SearchService/AddToBasket?article={Article}&brand={Brand}&supplierName={SupplierName}&costSale={CostSale}&quantity={Count}&supplierTimeMin={SupplierTimeMin}&supplierTimeMax={SupplierTimeMax}&comment={comment} |
|
Заголовки запроса |
Authorization: Basic {credentials} |
|
Параметры запроса (Все параметры обязательные!) |
article – Артикул (тип string) brand – Бренд (тип string) supplierName – имя поставщика (тип string) costSale – цена товара (тип double) quantity – количество единиц товара (тип int) supplierTimeMin – минимальный срок поставки в часах (тип int) supplierTimeMax – максимальный срок поставки в часах (тип int) comment – комментарий к позиции (тип string) |
|
Ответ |
"Ok" – товар добавлен "Position was not found" – позиция не найдена "Error": "Недопустимое значение для параметров article. Параметры не могут быть пустыми" – не указан артикул "Error": "Недопустимое значение для параметров brand. Параметры не могут быть пустыми" – не указан бренд "Error": "Недопустимое значение для параметров supplierName. Параметры не могут быть пустыми" – не указано имя поставщика "Error": "Недопустимое значение для параметров costsale. Параметры не могут быть пустыми" – не верно задана или не указана цена "Error": "Недопустимое значение для параметров quantity. Параметры не могут быть пустыми" – не верно задано или не указано количество "Quantity is more than the supplier stock" - количество больше чем в наличии у транзитного поставщика "Quantity does not match MinCount" - количество не соответствует кратности товара "Undefined Error" – невозможно добавить позицию по другим причинам |
Получение информации о позициях в корзине
|
HTTP метод |
GET |
|||||||||||||||||||||||||||||||||
|
URL запроса |
/SearchService/GetBasket |
|||||||||||||||||||||||||||||||||
|
Заголовки запроса |
Authorization: Basic {credentials} |
|||||||||||||||||||||||||||||||||
|
Параметры запроса |
||||||||||||||||||||||||||||||||||
|
Ответ |
JSON, коллекция объектов следующей структуры:
Если в корзине не будет ни одной позиции, то ответ будет таким: [] |
Изменение комментария позиции в корзине
|
HTTP метод |
POST |
|||||||||||||||||||||||||||||||||
|
URL запроса |
/SearchService/ChangeBasketPositionComment?positionId={positionId}&comment={comment} |
|||||||||||||||||||||||||||||||||
|
Заголовки запроса |
Authorization: Basic {credentials} |
|||||||||||||||||||||||||||||||||
|
Параметры запроса |
positionId – Номер позиции в корзине (Int) comment – Новый комментарий (String) |
|||||||||||||||||||||||||||||||||
|
Ответ |
JSON, коллекция объектов следующей структуры:
|
Изменение количества позиции в корзине
|
HTTP метод |
POST |
|||||||||||||||||||||||||||||||||
|
URL запроса |
/SearchService/ChangeBasketPositionCount?positionId={positionId}&count={count} |
|||||||||||||||||||||||||||||||||
|
Заголовки запроса |
Authorization: Basic {credentials} |
|||||||||||||||||||||||||||||||||
|
Параметры запроса |
positionId – Номер позиции в корзине (Int) count – Новое количество (Short) |
|||||||||||||||||||||||||||||||||
|
Ответ |
JSON, коллекция объектов следующей структуры:
|
Удаление позиции из корзины
|
HTTP метод |
POST |
|||||||||||||||||||||||||||||||||
|
URL запроса |
/SearchService/RemoveBasketPosition?positionId={positionId} |
|||||||||||||||||||||||||||||||||
|
Заголовки запроса |
Authorization: Basic {credentials} |
|||||||||||||||||||||||||||||||||
|
Параметры запроса |
positionId – Номер позиции в корзине (Int) |
|||||||||||||||||||||||||||||||||
|
Ответ |
JSON, коллекция объектов следующей структуры:
Если в корзине не будет ни одной позиции, то ответ будет таким: [] |
Очистка корзины
|
HTTP метод |
POST |
|||
|
URL запроса |
/SearchService/ClearBasket |
|||
|
Заголовки запроса |
Authorization: Basic {credentials} |
|||
|
Параметры запроса |
||||
|
Ответ |
JSON объект следующей структуры:
|
Получение реквизитов для оформления корзины в заказ
|
HTTP метод |
POST |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
URL запроса |
/SearchService/GetCheckoutParams |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Заголовки запроса |
Authorization: Basic {credentials} |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Параметры запроса |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ответ |
JSON объект следующей структуры:
Object Deliveries коллекция объектов следующей структуры:
Object Payments коллекция объектов следующей структуры:
Object Params
Object Points коллекция объектов следующей структуры:
Object Addresses коллекция объектов следующей структуры:
|
Оформление корзины
|
HTTP метод |
POST |
||||||||||||
|
URL запроса |
/SearchService/CheckoutBasket?positionIds={positionIds}&deliveryTypeId={deliveryTypeId}&paymentTypeId={paymentTypeId}&addressId={addressId}&deliveryPointId={deliveryPointId}&comment={comment} |
||||||||||||
|
Заголовки запроса |
Authorization: Basic {credentials} |
||||||||||||
|
Параметры запроса |
positionIds – список id позиций из корзины для заказа (Int) |
||||||||||||
|
Ответ |
JSON, коллекция объектов следующей структуры:
|
Общие примечания
Запросы осуществляются с помощью HTTP-методов GET
Для запросов требуется преобразовать ваш логин и пароль вида «Login:Password» в стандарт Base64 и подставить в {credentials}
В итоге, строка авторизации должна иметь вид как представлено ниже.
Пример кода на C#:
return "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(Login + ":" +Password));
Для параметра withoutTransit допустимы только значения true/false. 0 и 1 не являются допустимыми с точки зрения c# для типа bool (System.Boolean).
Также обратите внимание, что артикулы, бренды и прочие параметры URL-адреса нужно кодировать, чтобы передавались они верно. В нашем примере используется
HttpUtility.UrlEncode
Пример кода для автоматического оформления заказа:
HttpClient client = new HttpClient();
string lp = Convert.ToBase64String(Encoding.UTF8.GetBytes(login + ":" + password)).ToString();
Uri url = new Uri("https://av34.ru/SearchService/AddOrder?items=" + HttpUtility.UrlEncode(items));
client.BaseAddress = url;
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", lp);
var response = client.GetAsync(url).Result;
Возможные ошибки
- Неверные логин и/или пароль, указанные в обращении к Сервису. Они должны совпадать с логином/паролем для доступа на наш сайт.
- Убедитесь, что ваши запросы идут с IP адреса, который вы указывали при запросе доступа к Сервису
- Нет транзитных поставщиков в результате – дневной лимит на поиск по транзитным поставщикам исчерпан, обратитесь к менеджеру
- Доступ запрещён по другим причинам
Добавить на главный экран