Доступ к API осуществляется посредством HTTP-запросов и реализован с использованием принципов REST.
https://api.gpi24.ru/v1/webservice/
https://dev.api.gpi24.ru/v1/webservice/
Обмен осуществляется в кодировке UTF-8.
С течением времени могут измениться как перечень запросов, так их структура и структура ответов.
Для уверенности в том, что используется API желаемой версии, необходимо передавать версию в строке запроса.
Итого запрос должен выглядеть следующим образом: /v[версия]/[путь_к_ресурсу]
https://api.gpi24.ru/v1/webservice/search/groups?key='key'
В случае, если версия не передана, будет возвращён ответ в формате, описанном в последней стабильной версии API.
Поддержка старых версий API cо временем может быть прекращена.
| Версия | Статус |
|---|---|
| v1 | Стабильная версия |
| Код | Сообщение | Описание |
|---|---|---|
| 200 | ||
| 400 | Bad Request | Некорректный запрос |
| 401 | Unauthorized | Неавторизованный пользователь |
| 403 | Forbidden | Доступ запрещен |
| 404 | Not Found | Ничего не найдено |
| 500 | Internal server error | Внутренняя ошибка сервера |
| Имя | Тип | Обязательный | Описание | Примечание |
|---|---|---|---|---|
| search | string | Да | Строка запроса от пользователя | search=HU1312 MANN-FILTER |
| Имя | Тип | Описание |
|---|---|---|
| success | bool | Статус запроса |
| code | int | Код ответа сервера |
| message | string | Текст ответа от сервера |
| data | object|array | Тело ответа сервера на запрос |
| Имя | Тип | Обязательный | Описание | Примечание |
|---|---|---|---|---|
| article | string | Да | Артикул товара | article=W683 |
| brand | string | Да | Бренд товара | brand=MANN-FILTER |
| Имя | Тип | Описание |
|---|---|---|
| success | bool | Статус запроса |
| code | int | Код ответа сервера |
| message | string | Текст ответа от сервера |
| data | object|array | Тело ответа сервера на запрос |
Чтобы добавить товар в корзину, необходимо совершить поиск товара для получения необходимых данных.
| Параметр | Тип | Описание | Где найти |
|---|---|---|---|
| code | string | Идентификатор товара | data.*.id |
| price_type | string | Тип цены товара | data.*.remains.*.price_type |
| remain | int | Идентификатор остатка товара | data.*.remains.*.id |
| count | int | Кол-во товара для добавления в корзину. Значение не должно превышать максимальное кол-во товара на складе data.*.remains.*.balance |
|
| price | float | Список оферов корзины на изменение | data.*.remains.*.price |
Чтобы добавить товар в корзину, необходимо совершить поиск товара для получения необходимых данных.
| Параметр | Тип | Описание | Где найти |
|---|---|---|---|
| code | string | Идентификатор товара | /search/positions data.*.id |
| price_type | string | Тип цены товара | /search/positions data.*.remains.*.price_type |
| remain | int | Идентификатор остатка товара | /search/positions data.*.remains.*.id |
| count | int | Кол-во товара для добавления в корзину. Значение не должно превышать максимальное кол-во товара на складе data.*.remains.*.balance |
|
| price | float | Список оферов корзины на изменение | /search/positions data.*.remains.*.price |
| Имя | Тип | Обязательный | Описание | Примечание |
|---|---|---|---|---|
| offer_id | array | Да | Список оферов корзины на изменение | "offer_id": [1, 2, 3] |
| action | string | Да | Код события над оферами |
Варианты:
|
| value | int|bool | Нет | Передаваемое значение на изменение. Учитывается только при вызове
события "action": "update" |
|
| type | string | Да | Код типа события над оферами. |
Варианты: 1. Учитываются только при вызове события"action": "update":
"type": "count" - устанавливает указанное в ключе value кол-во
товара у указанного офера. "type": "active" - устанавливает указанное в ключе value значение "action": "delete":
"type": "cart" - удаляет все позиции в корзине. "type": "offer" - удаляет указанные офера в корзине. 3. Учитываются только при вызове события"action": "restore":
"type": "offer" - восстанавливает указанные офера в корзине после удаления. |
Список доступных клиенту доставок, в каждой доставке имеется список доступных оплат заказа.
Для оформления заказа в корзине, необходимо получить доступную доставку и способ оплаты. После успешного оформления заказа в ответ от сервера клиент получит orderId - номер заказа и formUrl - ссылку на оплату заказа, formUrl возвращает ссылку только при оплате по карте онлайн.
| Параметр | Тип | Описание | Где найти |
|---|---|---|---|
| delivery_id | string | Идентификатор доставки заказа | /cart/order/delivery data.deliveries.*.id |
| payment_code | string | Идентификатор оплаты заказа | /cart/order/delivery data.deliveries.*.payments.*.code |
| delivery_address | string|null | Адрес доставки заказа | При самовывозе оставляйте пустым или null. |
| comments | string|null | Комментарий | Комментарий клиента по поводу заказа. |
| Имя | Тип | Описание |
|---|---|---|
| success | bool | Статус запроса |
| code | int | Код ответа сервера |
| message | string | Текст ответа от сервера |
| data | object | { "orderId": "23c6a6cf-2f9b-44c6-90e1-3c1bd5127623", "formUrl": null } |