Веб-сервис 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 адреса, который вы указывали при запросе доступа к Сервису
- Нет транзитных поставщиков в результате – дневной лимит на поиск по транзитным поставщикам исчерпан, обратитесь к менеджеру
- Доступ запрещён по другим причинам