Общая информация

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

Параметры:

  • username - имя пользователя API
  • password - пароль пользователя API
  • xml - вывод информации в формате XML. По умолчанию, без указания этого параметра, результат возвращается в формате JSON

Результат: код сессии или код ошибки при невозможности провести регистрацию.

Код сессии используется для авторизации во время проведения последующих операций с системой. Выполнять операции можно до тех пор, пока действительна сессия.

При отправке запросов к сервису API для авторизации необходимо передавать идентификатор сессии в виде служебной cookie в заголовке запроса. Например,

... Cookie: PHPSESSID=<код сессии> ...

В целях безопасности, в конце выполнения работ сессию рекомендуется завершить.

Параметр xml – необязательный параметр. При передаче его (значение 1), вывод данных в текущей сессии, будет производиться в формате xml.

Пример результата:

Array

(

[cookie] => 077d0e69b78f8192e36a0b7f2da51fb3

[success] => API сессия успешно запущена!

)

Задание текущего покупателя

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

Название функции: customer

Параметры :

  • 'customer_id' – идентификатор пользователя
  • 'customer_group_id' – идентификатор группы пользователя (необязательный параметр)
  • 'firstname' – имя пользователя
  • 'lastname' – фамилия пользователя
  • 'email' – адрес электронной почты
  • 'telephone' – номер телефона

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

Параметры:

  • category_id - идентификатор категории

Результат: список товаров указанной категории

Пример результата:

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 - идентификатор товара

Результат: информация о товаре с указанным 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 - идентификатор товара

Результат: список изображений товара с указанным 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 - идентификатор товара

Результат: информация о свойствах товара с указанным 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 - идентификатор товара

Результат: информация о совместимых печатающих устройствах и картриджах для товара с указанным 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 - идентификатор товара

Результат: список цен товара с указанным product_id.

Пример результата: (в разработке)

Работа с корзиной

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

Добавление товара в корзину

Название функции: cart/add

Параметры:

  • product_id - идентификатор товара
  • quantity - количество единиц товара(необязательный)

Результат: код завершения операции

Удаление товара из корзины

Название функции: cart/remove

Параметры:

  • key - уникальный код товара в заказе

data ={

'key':'10'

}

Результат: код завершения операции

Изменение количества товара в корзине

Название функции: cart/edit

  • key - уникальный код товара в заказе
  • quantity - количество единиц товара

data={

'key':'100'

'quantuty':'1'

}

Результат: код завершения операции

Просмотр списка товаров в корзине

Название функции: cart/products

Параметры: нет

Результат: код завершения операции

Функции работы с оплатой

Указание адреса оплаты

Название функции: payment/address

Параметры:

  • firstname - имя пользователя
  • lastname- фамилия пользователя
  • company - компания
  • address_1 - адрес
  • address_2 - адрес
  • postcode - почтовый индекс
  • city - код города
  • zone_id - код зоны
  • country_id - код страны

Результат: код завершения операции

Список способов оплаты

Название функции: payment/methods

Параметры: нет

Результат: список доступных способов оплаты

Установка способа оплаты

Название функции: payment/method

Параметры:

  • payment_method - способ оплаты (например, 'payment_method'=>'bank_transfer')

data={

'payment_method':'bank_transfer'

}

Результат: код завершения операции

Функции работы с доставкой

Указание адреса доставки

Название функции : shipping/address

Параметры:

  • firstname - имя пользователя
  • lastname - фамилия пользователя
  • company - компания
  • address_1 - адрес
  • address_2 - адрес
  • postcode - почтовый индекс
  • city - код города
  • zone_id - код зоны
  • country_id - код страны

Результат: код завершения операции

Список способов доставки

Название функции: shipping/methods

Параметры: нет

Результат: список доступных способов доставки

Установка способа доставки

Название функции: shipping/method

Параметры:

  • shipping_method - способ доставки (например, 'shipping_method'=>'pickup.pickup')

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 При каждом заказе

После этого сформированный заказ отправляется в систему и становится доступным для обработки менеджером.