Документация

Последнее обновление: 2 Марта, 2018

Общее

Доступ к API осуществляется посредством HTTP-запросов и реализован с использованием принципов REST.

Базовый URI для веб-службы:

http://api.gpi24.ru/v1.0/

Обмен осуществляется в кодировке UTF-8.


API - Википедия REST - Википедия

Авторизация

Поддерживается только один способ авторизации:

  • передача ключа в GET-параметре key

Получить ключ-доступа можно в личном кабинете (чтобы страница стала доступной, необходимо запросить доступ через менеджера).

Для каждого клиента создается отдельный ключ.

Версионирование

С течением времени могут измениться как перечень запросов, так их структура и структура ответов.

Для уверенности в том, что используется API желаемой версии, необходимо передавать версию в строке запроса.

Итого запрос должен выглядеть следующим образом: /v[версия]/[путь_к_ресурсу]

Например:

http://api.gpi24.ru/v1.0/details/?key='key'

В случае, если версия не передана, будет возвращён ответ в формате, описанном в последней стабильной версии API.

Поддержка старых версий API cо временем может быть прекращена.

Перечень версий:
Версия Статус
1.0 Текущая

Коды ошибок API

Код Сообщение Описание
200 OK
400 Bad Request Некорректный запрос
401 Unauthorized Неавторизованный доступ
403 Forbidden Доступ запрещен
404 Not Found Данные не найдены
500 Internal server error Внутренняя ошибка сервера

GET запросы API

Имя Тип Обязательный Описание
fields Строка Нет Фильтр: Возможность частичного ответа
article Строка Да Артикул
brand Строка Нет Фильтр: Получение списка товара определенного бренда
days Число Нет Фильтр: Получение значений за определенный период
key Строка Да Секретный ключ пользователя

Получение списка товаров по артикулу

Принцип работы:

Находим товар по заданному артикулу в поиске. В случае, если товар не найден или произошла какая-то ошибка, элемент STATUS будет иметь код ошибки, а элемент MESSAGE текст-описание ошибки.

Шаблон запроса:

http://api.gpi24.ru/v1.0/details/?fields='fields'&article='article'&brand='brand'&key='key'

Входные параметры:
Имя Тип Обязательный Описание Примечание
fields Строка Нет Фильтр: Возможность частичного ответа fields=code,article,brand,descr,warehouse,delivery,box,price
article Строка Да Артикул article=w683
brand Строка Нет Фильтр: Получение списка товара определенного бренда brand=bosch
key Строка Да Секретный ключ пользователя key=************
Выходные параметры:
Имя Тип Описание
status Строка Кодовое значение ответа сервера
message Строка Текстовое пояснение кода ответа сервера
answer Массив Ответ сервера на запрос
Ответ сервера на запрос:
Имя Тип Описание
code Число Код товара
article Строка Артикул
brand Строка Бренд
descr Строка Описание
warehouse Строка Склад
delivery Строка Доставка
box Число Количество
price Число Цена

Получение списка брендов по артикулу

Принцип работы:

Находим список брендов по заданному артикулу в поиске. В случае, если брендов по данному артикулу нет, элемент STATUS будет иметь код ошибки, а элемент MESSAGE текст-описание ошибки.

Шаблон запроса:

http://api.gpi24.ru/v1.0/group/?article='article'&key='key'

Входные параметры:
Имя Тип Обязательный Описание Примечание
article Строка Да Артикул article=w683
key Строка Да Секретный ключ пользователя key=************
Выходные параметры:
Имя Тип Описание
status Строка Кодовое значение ответа сервера
message Строка Текстовое пояснение кода ответа сервера
answer Массив Ответ сервера на запрос
Ответ сервера на запрос:
Имя Тип Описание
article Строка Артикул
brand Строка Бренд
descr Строка Описание

Получение общего списка брендов

Принцип работы:

Получаем полный список брендов с которыми работает GPARTSIMPORT. В случае, если произошла какая-то ошибка, элемент STATUS будет иметь код ошибки, а элемент MESSAGE текст-описание ошибки.

Шаблон запроса:

http://api.gpi24.ru/v1.0/brand/?fields='fields'&key='key'

Входные параметры:
Имя Тип Обязательный Описание Примечание
fields Строка Нет Фильтр: Возможность частичного ответа fields=id,brand,code
key Строка Да Секретный ключ пользователя key=************
Выходные параметры:
Имя Тип Описание
status Строка Кодовое значение ответа сервера
message Строка Текстовое пояснение кода ответа сервера
answer Массив Ответ сервера на запрос
Ответ сервера на запрос:
Имя Тип Описание
id Число ID бренда
brand Строка Бренд
code Строка Код бренда

Получение списка офисов G`PARTSIMPORT

Принцип работы:

Получаем полный список офисов GPARTSIMPORT. В случае, если произошла какая-то ошибка, элемент STATUS будет иметь код ошибки, а элемент MESSAGE текст-описание ошибки.

Шаблон запроса:

http://api.gpi24.ru/v1.0/office/?fields='fields'&key='key'

Входные параметры:
Имя Тип Обязательный Описание Примечание
fields Строка Нет Фильтр: Возможность частичного ответа fields=id,city,name,info,email,phone,timework,weekend
key Строка Да Секретный ключ пользователя key=************
Выходные параметры:
Имя Тип Описание
status Строка Кодовое значение ответа сервера
message Строка Текстовое пояснение кода ответа сервера
answer Массив Ответ сервера на запрос
Ответ сервера на запрос:
Имя Тип Описание
id Число ID офиса
city Строка Город
name Строка Наименование
info Строка Информация
email Строка Email
phone Строка Телефон
timework Строка Часы работы в рабочие дни
weekend Строка Часы работы в выходные дни

Получение списка заказов

Принцип работы:

Получаем полный список заказов клиента GPARTSIMPORT. В случае, если произошла какая-то ошибка, элемент STATUS будет иметь код ошибки, а элемент MESSAGE текст-описание ошибки.

Шаблон запроса:

http://api.gpi24.ru/v1.0/orders/?fields='fields'&days='days'&key='key'

Входные параметры:
Имя Тип Обязательный Описание Примечание
fields Строка Нет Фильтр: Возможность частичного ответа fields=number,name,manager,office,status,message,delivery,date,position
days Число Нет Фильтр: Возможность выбрать период (дни) выборки days=30
key Строка Да Секретный ключ пользователя key=************
Выходные параметры:
Имя Тип Описание
status Строка Кодовое значение ответа сервера
message Строка Текстовое пояснение кода ответа сервера
answer Массив Ответ сервера на запрос
Ответ сервера на запрос (ANSWER):
Имя Тип Описание
number Строка Номер заказа
name Строка Клиент
manager Строка Менеджер
office Строка Офис
status Строка Статус
message Строка Комментарий к заказу
delivery Строка Доставка
date Строка Дата формирования заказа
position Массив Позиции по заказу
Ответ сервера на запрос (POSITION):
Имя Тип Описание
article Строка Артикул
brand Строка Бренд
desc Строка Описание
count Строка Количество товара
status Строка Статус
price Строка Цена
date Строка Дата

Формирование заказа

Принцип работы:

Добавление, удаление товаров в корзину и формирование заказа. В случае, если произошла какая-то ошибка, элемент STATUS будет иметь код ошибки, а элемент MESSAGE текст-описание ошибки.

Шаблон запроса - добавление товара в корзину:

http://api.gpi24.ru/v1.0/cart/?get='add'&position='code:count'&key='key'

http://api.gpi24.ru/v1.0/cart/?get='add'&position='code1:count1,code2:count2'&key='key'

Шаблон запроса - удаление товара из корзины:

http://api.gpi24.ru/v1.0/cart/?get='delete'&position='number'&key='key'

http://api.gpi24.ru/v1.0/cart/?get='delete'&position='number1,number2'&key='key'

Шаблон запроса - оформление заказа:

http://api.gpi24.ru/v1.0/cart/?get='order'&key='key'

Входные параметры:
Имя Тип Обязательный Описание Примечание
get Строка Да Фильтр: Вариант запроса get=add,?get=delete,?get=order
position Строка Да При добавлении: код товара:количество товара (код товара можно получить в details), При удалении: номер товара в корзине Пример добавления: ?position=382885436:1,
Пример удаления: ?position=50234
key Строка Да Секретный ключ пользователя key=************
Выходные параметры:
Имя Тип Описание
status Строка Кодовое значение ответа сервера
message Строка Текстовое пояснение кода ответа сервера
answer Массив Ответ сервера на запрос
Ответ сервера на запрос:
Имя Тип Описание
number Строка Индивидуальный номер корзины
price Строка Общая сумма заказа
position Массив Позиции товара в корзине
position:number Строка Номер товара в корзине
position:article Строка Артикул товара в корзине
position:brand Строка Бренд товара в корзине
position:desc Строка Описание товара в корзине
position:count Число Количество товара в корзине
position:min Число Минимальное количество товара в корзине
position:price Число Цена товара в корзине
position:date Число Дата добавления товара в корзину

Информация об аккаунте

Принцип работы:

Получение базовой информации об аккаунте клиента. В случае, если произошла какая-то ошибка, элемент STATUS будет иметь код ошибки, а элемент MESSAGE текст-описание ошибки.

Шаблон запроса - получение базовой информации:
http://api.gpi24.ru/v1.0/account/?fields='fields'&key='key'

Входные параметры:
Имя Тип Обязательный Описание Примечание
fields Строка Нет Фильтр: Возможность частичного ответа fields=name,email,phones,type,balance...
key Строка Да Секретный ключ пользователя key=************
Выходные параметры:
Имя Тип Описание
status Строка Кодовое значение ответа сервера
message Строка Текстовое пояснение кода ответа сервера
answer Массив Ответ сервера на запрос
Ответ сервера на запрос:
Имя Тип Описание
name Строка Имя клиента
email Строка Email клиента
phones Строка Номер телефона клиента
type Строка Тип клиента
balance Число Баланс клиента
dateUpdateBalance Строка Дата обновления баланса клиента
office_id Число ID офиса к кторому прикреплен клиент
manager Массив Базовая информация о менеджере
manager:name Строка Имя менеджера
manager:email Строка Email менеджера
manager:phone Строка Телефон менеджера
dt Число Дата создания аккаунта
private_key Строка Ключ доступа к API GPI

Пример реализации API

Информация:

Данный код является открытым примером реализации подключения к GPI API. Вы можете спокойно использовать его для своего проекта, без каких либо указаний на первоисточник.

PHP Code Example
                                        
class API_GPI
{
    // Необходимо подставить свой ключ-доступа для работы с API
    private $secretkey = '********************************';
    private $baseURL = 'http://www.api.gpi24.ru/v1.0/';

    public function getDetails($fields = '*', $article, $brand = '')
    {
        return $this->getJson("details/?fields=$fields&article=$article&brand=$brand&key=$this->secretkey");
    }

    public function getBrand($fields = '*')
    {
        return $this->getJson("brand/?fields=$fields&key=$this->secretkey");
    }

    public function getOffice($fields = '*')
    {
        return $this->getJson("office/?fields=$fields&key=$this->secretkey");
    }

    public function getOrders($fields = '*', $days = '')
    {
        return $this->getJson("orders/?fields=$fields&days=$days&key=$this->secretkey");
    }

    private function getJson($string)
    {
        return $this->getContent($this->baseURL . $string);
    }

    private function getContent($string)
    {
        $get_content = @file_get_contents($string, true);
        return json_decode($get_content, true);
    }

}

$gpi = new API_GPI();

// Получаем список товаров по артикулу W683 бренда MANN-FILTER
$details = $gpi->getDetails('*', 'W683', 'MANN-FILTER');

// Получаем список брендов, используя fields в ответе приходят только наименования брендов.
$brand = $gpi->getBrand('BRAND');

// Получаем список офисов
$office = $gpi->getOffice();

// Получаем список заказов за 30 дней
$orders = $gpi->getOrders('*', '30');

var_dump($brand);
                                        
                                    

Если у вас все еще есть вопросы по работе API, покажите этот текст своему программисту или обратитесь в IT службу поддержки GPARTSIMPORT.