Для того, чтобы наладить взаимодействие с вашим сайтом через API, достаточно зайти в раздел Настройки > API (Временно не выводится в панели управления, т.к. ещё дорабатывается и тестируется), либо по адресу: http://site.ru/admin/api где site.ru - адрес вашего сайта.
Далее создаём новое приложение, нажимая "Добавить своё приложение":


Затем указываем необходимые права доступа у нового приложения.
Справа в колонке со своими приложениями будет высвечиваться ключ доступа, по которому можно будет обращаться к сайту.

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

Далее к API на сайте мы обращаемся через POST запросы. Все параметры передаются POST-ом. Секретный ключ передаётся в переменной secret_key = '';
В URL адресе запроса указываем только модуль к которому производится запрос, действие, а также идентификатор записи, если он требуется для этого действия.
Рассмотрим на примере получения списка заказов:
Делаем POST запрос на URL адрес:
http://site.ru/api/v1/order_statuses/get_list
- где v1 - это версия API (Текущая версия v1, если появятся новые, мы обязательно об этом сообщим),
- order_statuses- это модуль, с которым работаем. В данном случае это статусы заказов.
- get_list - действие, которое нужно выполнить серверу и затем вернуть результат выполнения. В данном примере - это получение списка заказов
POST Data:
secret_key=9ea6d5ec9e2a6a9a30da211e48484ff8
В данной версии API данные всегда возвращаются в json формате.
Стандартные коды ответом следующие:
- 'status' => 'ok' - Всё прошло успешно / 'error' - возникла ошибка
- 'message' => 'Сообщение системы' появляется, когда система хочет что-то сказать
- 'data' => MIXED_TYPE_DATA данные, которые возвращает система.
Array ( [status] => ok [data] => Array ( [0] => Array ( [order_status_id] => Array ( [type] => int_unsigned_not_null [edit] => [value] => 1 ) [order_status_name] => Array ( [type] => str [edit] => [value] => Новый ) [order_status_desc] => Array ( [type] => str [edit] => [value] => Новый заказ ) ) [1] => Array ( [order_status_id] => Array ( [type] => int_unsigned_not_null [edit] => [value] => 2 ) [order_status_name] => Array ( [type] => str [edit] => [value] => В обработке ) [order_status_desc] => Array ( [type] => str [edit] => [value] => Заказ обрабатывается ) ) ... остальные статусы заказов ... ) )
Для каждого поля система отдаёт информацию о том, какой тип данных у данного поля, а также возможно ли его изменять. Если edit=true, то поле доступно для изменений, если edit=false, как в данном примере, то изменение не доступно.
Типы полей выводятся для понимания, к каким данным они будут преобразовываться системой, перед тем как сохранить их.
Пример создания простого запроса к API на получение списка последних 10 созданных заказов на PHP:
<?php $ch = curl_init('http://site.ru/api/v1/orders/get_list'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array( 'secret_key' => '0837962f5a3cc1a97f164df9df55d826', 'per_page' => 10, ))); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $resultSrc = curl_exec ($ch) or die(curl_error($ch)); $result = json_decode($resultSrc , true); echo $result; echo $resultSrc; echo curl_error($ch); curl_close ($ch); ?>
Команды API по разделам:
Заказы
Статусы заказов
Клиенты
Группы клиентов