API (Application Programming Interface) обеспечивает взаимодействие между двумя системами. Это как винтик, связывающий две детали, или как шестеренка, при помощи которой приводятся в движение две соседние шестеренки.
REST API разбивает последовательность обмена информацией, создавая серию небольших модулей. Каждый модуль, в свою очередь, обращается к определенной базовой части транзакции (последовательности).
Такая система дает разработчикам огромные возможности для интеграции своих приложений в другие системы.
Компания MAKKON предоставляет для своих партнеров доступ к базе данных товаров посредством API. Для получения доступа к интерфейсу достаточно иметь активированную регистрацию на портале компании.
С помощью API MAKKON Вы сможете получить прайсы, каталог товаров, цены, наличие, характеристики, описание, фильтры, а также забронировать товар, сформировать и отгрузить заказ и многое другое.
Для взаимодействия используется запросы https. Для передачи параметров используются методы GET и POST. Результаты выполнения (информационные блоки, коды ошибок, коды состояний и т.д.) возвращаются в виде строк в кодировке JSON либо XML.
Для обращения к функциям API используется базовый адрес: https://api.scc.com.ua/index.php?route=api/<имя_функции>.
Например, для регистрации в системе необходимо использовать следующее обращение: https://api.scc.com.ua/index.php?route=api/login.
При этом в POST нужно передавать параметры, такие как "username" и "password".
Ниже рассмотрены основные модули и функции API.
Название функции: login
Параметры:
Результат: код сессии или код ошибки при невозможности провести регистрацию.
Код сессии используется для авторизации во время проведения последующих операций с системой. Выполнять операции можно до тех пор, пока действительна сессия.
При отправке запросов к сервису API для авторизации необходимо передавать идентификатор сессии в виде служебной cookie в заголовке запроса. Например,
... Cookie: PHPSESSID=<код сессии> ...
В целях безопасности, в конце выполнения работ сессию рекомендуется завершить.
Параметр xml – необязательный параметр. При передаче его (значение 1), вывод данных в текущей сессии, будет производиться в формате xml.
Пример результата:
Array
(
[cookie] => 077d0e69b78f8192e36a0b7f2da51fb3
[success] => API сессия успешно запущена!
)
Для каждого покупателя могут быть заданы различные цены, скидки и т.д. Для успешного создания заказов, покупателя необходимо указать.
Название функции: customer
Параметры :
data={
'customer_group_id': 10,
'firstname':'Dear',
'lastname':'Customer',
'email':'customer@example.com',
'telephone':'+1 879 2548022'
}
Результат: код завершения операции
Название функции: logout
Параметры: нет
Результат: -
Закрывает текущую сессию, открытую функцией login.
Пример результата:
Array
(
[success] => API сессия успешно завершена!
)
Название функции: category
Параметры: нет
Результат: список категорий товаров
Пример результата:
Array(
[categories] => Array
(
[0] => Array
(
[parent_id] => 0
[category_id] => 65
[thumb] => https://scc.com.ua/image/cache/catalog/categories/Laser_fulllist-x.jpg
[name] => Лазерная печать
[description] => ..
)
…
Название функции: product/get_list
Параметры:
Результат: список товаров указанной категории
Пример результата:
Array(
[products] => Array (
[0] => Array (
[product_id] => 3127
[thumb] => https://scc.com.ua/image/cache/catalog/products/1c_products/6343_1-x.jpg
[name] => drum-картридж Canon iR-1018 (NPG-32/C-EXV18) 25k CET
[description] => Компания CET предлагает барабаны от производителя мирового уровня...
[price] => 1,415.66грн
[special] =>
[href] => https://scc.com.ua/drum-kartridzh-canon-ir-1018-npg-32-c-exv18-25k-cet-03127.html )…
Название функции: product/get
Параметры:
Результат: информация о товаре с указанным product_id
Пример результата:
Array(
[product] =>
Array (
[product_id] => 1996
[name] => картридж HP CLJ CE401A (507A) (SE401A) Makkon 6k cyan
[thumb] => https://scc.com.ua/image/cache/catalog/products/1c_products/2243_1-x.jpg
[model] => MN-HP-SE401A
[sku] => MN-HP-SE401A
[ean] => [description] => Лазерные картриджи...
[price] => 1,107.98грн
[special] =>
[href] => https://scc.com.ua/kartridzh-hp-clj-ce401a-507a-se401a-makkon-6k-cyan-01996.html ) )
Название функции: product/get_images
Параметры:
Результат: список изображений товара с указанным product_id
Пример результата:
Array (
[status_id] => 1
[product_id] => 1997
[images] => Array(
[0] => Array(
[image_full] => https://scc.com.ua/image/catalog/products/1c_products/2244_2.jpg
)
[1] => Array(
…
Название функции: product/get_attributes
Параметры:
Результат: информация о свойствах товара с указанным product_id. Свойства разбиты на группы (например, «Общая информация», «Параметры») и представлены в виде иерархического дерева.
Пример результата:
Array
(
[status_id] => 1
[product_id] => 1997
[attributes] => Array
(
[0] => Array
(
[attribute_group_id] => 4
[name] => Общая информация
[attribute] => Array
(
[0] => Array
(
[attribute_id] => 30
[name] => Торговая марка
[text] => MAKKON
)
[1] => Array
(
[attribute_id] => 29
[name] => Кол-во в упаковке (шт.)
[text] => 10
)
Название функции: product/get_compatibility
Параметры:
Результат: информация о совместимых печатающих устройствах и картриджах для товара с указанным product_id. Список картриджей и устройств представлен в виде списка значений, разделенных запятыми.
Пример результата:
Array
(
[status_id] => 1
[product_id] => 1997
[compatibility] => Array
(
[cartridges] => Canon 732 Y (6260B002),HP CE402A
[devices] => Canon LBP-7780,HP CLJ M551,HP CLJ M575,HP CLJ Pro M570
Название функции: product/get_prices
Параметры:
Результат: список цен товара с указанным product_id.
Пример результата:
С помощью функций API можно формировать заказы для последующей отправки их в систему, добавлять товары, получать информацию о состоянии текущего заказа и т.д.
Название функции: cart/add
Параметры:
Результат: код завершения операции
Название функции: cart/remove
Параметры:
Результат: код завершения операцииdata ={
'key':'10'
}
Название функции: cart/edit
data={
'key':'100'
'quantuty':'1'
}
Результат: код завершения операции
Название функции: cart/products
Параметры: нет
Результат: код завершения операции
Название функции: payment/address
Параметры:
Результат: код завершения операции
Название функции: payment/methods
Параметры: нет
Результат: список доступных способов оплаты
Название функции: payment/method
Параметры:
data={
'payment_method':'bank_transfer'
}
Результат: код завершения операции
Название функции : shipping/address
Параметры:
Результат: код завершения операции
Название функции: shipping/methods
Параметры: нет
Результат: список доступных способов доставки
Название функции: shipping/method
Параметры:
data={
'shipping_method'=>'pickup.pickup'
}
Результат: код завершения операции
Название функции: order/add
Параметры: нет
Результат : номер созданного заказа
| Действие | Функция | Комментарий |
|---|---|---|
| Выполняем регистрацию в системе | login | При каждом заказе |
| Задаем текущего покупателя | customer | При каждом заказе |
| Получаем список категорий | category | Периодически или при обновлении номенклатур |
| Получаем список товаров в нужной категории | product/get_list | Периодически или при обновлении номенклатур |
| Сопоставляем товары по уникальному коду product_id | На этапе интеграции | |
| Формируем корзину товаров | cart/add, cart/remove, cart/edit | При формировании корзины |
| Получаем список способов оплаты | payment/methods | |
| Устанавливаем способ оплаты | payment/method | Напр, «bank_transfer» |
| Получаем список методов доставки | shipping/methods | |
| Устанавливаем метод доставки | shipping/method | Напр, «pickup.pickup» |
| Отправляем заказ в систему | order/add | |
| Выполняем выход из системы | logоut | При каждом заказе |
После этого сформированный заказ отправляется в систему и становится доступным для обработки менеджером.