BETA версія
Зміст:
Дані для авторизації
Отримання коду для авторизації
Спочатку вам необхідно отримати код для авторизації у Вашого менеджера.
Отримання токена
Дані авторизації передаються в заголовках, це необхідно для кожного запиту.
При першому запиті цей заголовок має бути таким:
Authorization: Basic код для авторизації
Після цього запиту токен буде повернуто.
У всіх наступних запитах надсилайте токен у заголовках таким чином:
Authorization: Bearer %token%
Зверніть увагу, що токен має обмеження за часом 60 хвилин, тимчасова мітка токена оновлюється після кожного нового запиту.
Запит
Запити до API виконуються методом POST за допомогою cURL або іншого аналогічного програмного забезпечення.
Структура запиту:
$curl = curl_init('https://deps.ua/index.php?option=com_jshopping&controller=addon_api');
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'%authorization_header%'
]);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query([
'%arg1_name%' => '%arg1_value%',
'%arg2_name%' => '%arg2_value%',
'%arg3_name%' => '%arg3_value%',
...
]));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($curl);
curl_close($curl);
if ($res !== false) {
$res = json_decode($res, true);
}
exit(var_dump($res));
API повертає результат у форматі, зазначеному в запиті, за замовчуванням це json.
Параметри запиту
Name | Type | Default value | Description |
section | string | — | The API section |
task | string | — | The action, what need to do |
format | string | json | The format of reply |
args | array | — | Arguments, needed for specified action |
Відключення
Завжди закривайте з'єднання після завершення роботи з API:
Task: close
Приклади
Інформація про категорії товарів
1. Отримати повний перелік id категорій товарів:
section = category task = ids
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query([
'section' => 'category',
'task' => 'ids'
]));
Відповідь буде виглядати так:
{
"status":"ok",
"code":1,
"report":"No errors. Success",
"result":[23,24,27,32,35,36,37,38,40...
2. Отримати ієрархічне дерево id категорій товарів:
section = category task = tree
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query([
'section' => 'category',
'task' => 'tree'
]));
Дочірні категорії знаходитимуться в полі subcategories.
Відповідь буде виглядати так:
{
"status":"ok",
"code":1,
"report":"No errors. Success",
"result":{"1513":{"id":1513,"parent_id":0,
"subcategories":{"24":{"id":24,"parent_id":1513,"subcategories":[]},"285":{"id":285,"parent_id":1513,"subcategories":[]} ...
3. Отримати детальну інформацію про окремо взяту категорію:
section = category task = item args[id] = 228
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query([
'section' => 'category',
'task' => 'item',
'args[id]' => '228'
]));
Відповідь буде виглядати так:
{"status":"ok","code":1,"report":"No errors. Success","result":{"category":
{"typeAlias":null,
"category_id":228,
"category_image":"3.png",
"category_parent_id":23,
"category_publish":1,
"category_ordertype":1,
"category_template":"default",
"ordering":139,
"category_add_date":"0000-00-00 00:00:00",
"products_page":25,
"products_row":2,
"access":1
...
Отримання інформації про товари в категорії товарів:
Цей метод дасть змогу отримати детальну інформацію про перелік товарів окремої категорії (наприклад категорія з id=307) та лімітом 33 (не обов'язковий параметр):
section = product task = search category_id = 307 limit = 33 curl_setopt($curl, CURLOPT_POSTFIELDS,
http_build_query ([
'section' => 'product',
'task' => 'search',
'category_id' => '307',
'limit' => '33'
]));
Отримання інформації про модифікації в картці товару:
Наприклад, під час виконання запиту для отримання інформації про товар:
section = product task = item args[id] = 487 curl_setopt($curl, CURLOPT_POSTFIELDS,
http_build_query ([
'section' => 'product',
'task' => 'item',
'args[id]' => '487',
]));
Відповідь матиме такий вигляд:
"attributeValues":
{ "12": [{
"val_id": 1104,
"value_name":"FinMark FTTH002-SM-18 (1000 м = 1 бхт)",
"addprice": 0,
"price_mod": "" } ...
У даних відповіді є розділ product_attribute_datas, а в ньому поле attributeValues, де 12 - це id атрибута.
В нем вложен массив значений этого аттрибута. В примере поля значения (опции) атрибута: val_id - id опции (значения) value_name - название атрибута.
Опис деяких параметрів відповіді:
№ | Ключ | Опис |
1 | available | наявність товару |
2 | product_full_image | зображення товару |
3 | product_id | id товару всередині нашої БД |
4 | product_ean | код 1с товару |
5 | product_unit | одиниці виміру |
6 | product_price | дилерська ціна |
7 | retail_price | роздрібна ціна |
8 | product_weight | вага товару |
9 | name_uk-UA | назва товару українською мовою |
10 | name_ru-RU | назва товару російською мовою |
11 | description_uk-UA | опис товару українською мовою |
12 | description_ru-UA | опис товару російською мовою |
Отримання інформації про підключення:
$curl = curl_init('https://deps.ua/index.php?option=com_jshopping&controller=addon_api');
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token
]);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query([
'section' => 'connection',
'task' => 'info'
]));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($curl);
curl_close($curl);
if ($res !== false) {
$res = json_decode($res, true);
}
$info = $res['result'];
Закриття з'єднання:
$curl = curl_init('https://deps.ua/index.php?option=com_jshopping&controller=addon_api');
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token
]);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query([
'section' => 'connection',
'task' => 'close'
]));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_exec($curl);
curl_close($curl);