Документація з API для розробників. За допомогою API ви зможете інтегрувати WorkPan зі своєю програмою або сайтом
API «WorkPan» містить набір викликуваних методів.
Ви можете інтегрувати «WorkPan» з будь-яким застосунком, отримавши доступ до бази даних через API.
Для всіх запитів діє обмеження за кількістю: не більше ніж 8 запитів на секунду.
Перш ніж використовувати API, його потрібно увімкнути й згенерувати ключ token — це робиться в розділі «Модулі» панелі управління. Після цього всі запити до API мають містити цей параметр token.
Запити можна надсилати методом GET|POST.
Усі відповіді надаються у форматі JSON.
URL: — це адреса розташування вашої системи, наприклад https://_ВАШ_ЛОГІН_.workpan.com.
У цьому уроці ми використовуватимемо DEMO-систему з такими даними
URL:
- https://demo.workpan.com
token:
- wt3sctw89sl
Зміст:
Розділ №1: Отримання статусу замовлення
Опис запиту:
|
|
Метод |
/api/order-status/ |
token (required) |
(string) token |
id (required) |
(integer) Номер замовлення |
Опис відповіді:
| Ключ |
Тип |
Опис |
status |
(boolean) |
Статус запиту: TRUE|FALSE |
data |
(object) |
Об’єкт із даними |
Докладна інформація про об’єкт data.
| Ключ |
Опис |
id |
Ключ замовлення |
contacts_id |
Ключ контакту |
contacts_name |
Найменування контакту |
global_sid |
Ключ статусу |
global_status_name |
Повний опис статусу |
global_status_name_sm |
Короткий опис статусу |
global_status_class |
Клас статусу: ('none','warning','success','important','info','inverse') |
global_status_type |
Тип статусу: (1 = очікування, 2 = відкритий, 3 = у роботі, 4 = успіх, 5 = помилка, 6 = закритий) |
gid |
Ключ типу апарата |
g_name |
Тип апарата |
bid |
Ключ бренду |
b_name |
Бренд |
models_id |
Ключ моделі |
m_name |
Модель |
imei |
IMEI апарата |
bt_data |
Опис поломки |
nt_data |
Примітка до замовлення |
discount_name |
Знижка |
sumPrice |
Сума послуг |
sumDiscount |
Сума знижки |
sumTotal |
Підсумкова сума |
repairs |
Масив об’єктів із видами ремонту:
orders_repairs_id — тікет ремонту
products_rosters_id — ключ виду ремонту
products_rosters_name — найменування
price — вартість
|
details |
Масив об’єктів із комплектуючими:
orders_details_id — тікет закупівлі
details_rosters_id — ключ деталі
details_rosters_name — найменування
price — вартість
|
<?php
$url = 'https://demo.workpan.com/api/order-status/';
$token = 'wt3sctw89sl'; // Приблизний token, його можна отримати в особистому кабінеті
$id = 10; // Приблизний ключ замовлення
$postData = array(
'token' => $token,
'id' => $id
);
$post = http_build_query($postData);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
curl_close($ch);
// Виведення даних
$obj = json_decode($response);
var_dump($obj);
{
"data": {
"id": "10",
"contacts_id": "23",
"contacts_name": "Мария",
"global_sid": "27",
"global_status_name": "Выдан с ремонтом",
"global_status_name_sm": "Выдан с ремонтом",
"global_status_class": "info",
"global_status_type": "4",
"gid": "2",
"g_name": "Планшет",
"bid": "1",
"b_name": "3Q",
"models_id": "17",
"m_name": "3Q Q-pad MT0729D",
"imei": null,
"bt_data": "После попадания воды планшет не включается, так же разбит дисплей",
"nt_data": null,
"discount_name": null,
"sumPrice": "7500.00",
"sumDiscount": "0.00",
"sumTotal": "7500.00",
"repairs": [
{
"orders_repairs_id": "34",
"products_rosters_id": "1",
"products_rosters_name": "Диагностика",
"price": "0"
},
{
"orders_repairs_id": "35",
"products_rosters_id": "2",
"products_rosters_name": "Чистка после попадания воды",
"price": "1500"
},
{
"orders_repairs_id": "36",
"products_rosters_id": "85",
"products_rosters_name": "Замена модуля (стекло, тачскрин и дисплей)",
"price": "1500"
}
],
"details": [
{
"orders_details_id": "5",
"details_rosters_id": "48",
"details_rosters_name": "Модуль (стекло, тачскрин и дисплей)",
"price": "4500"
}
]
},
"status": true
}
Розділ №2: Отримання ID усіх замовлень
Опис запиту:
|
|
Метод |
/api/get-orders-ids/ |
token (required) |
(string) token |
page |
(integer) Номер сторінки |
create_date_start |
(integer) Дата створення замовлення, початок (UNIXTIMESTAMP) |
create_date_end |
(integer) Дата створення замовлення, кінець (UNIXTIMESTAMP) |
Опис відповіді:
| Ключ |
Тип |
Опис |
paginator |
(object) |
Об’єкт із даними для обходу за запитом |
items |
(object) |
ID замовлень для подальшого отримання повних даних |
{
"paginator": {
"pageCount": 2,
"itemCountPerPage": 10,
"first": 1,
"current": 1,
"last": 2,
"next": 2,
"pagesInRange": {
"1": 1,
"2": 2
},
"firstPageInRange": 1,
"lastPageInRange": 2,
"currentItemCount": 10,
"totalItemCount": 11,
"firstItemNumber": 1,
"lastItemNumber": 10
},
"items": [
"1",
"2",
"9",
"22",
"29",
"30",
"31",
"32",
"33",
"34"
]
}
Розділ №3: Отримання інформації про замовлення за ID
Опис запиту:
|
|
Метод |
/api/get-order-by-id/ |
token (required) |
(string) token |
id (required) |
(integer) Номер замовлення |
Опис відповіді:
| Ключ |
Тип |
Опис |
id |
(integer) |
ID замовлення |
contacts_id |
(integer) |
ID контакту/клієнта (для отримання повних даних див. відповідний розділ) |
models_id |
(integer) |
ID моделі |
models_name |
(string) |
Назва моделі |
models_gadgets_id |
(integer) |
ID типу пристрою |
models_gadgets_name |
(string) |
Назва типу пристрою |
models_brands_id |
(integer) |
ID бренду |
models_brands_name |
(string) |
Назва бренду |
services_id |
(integer) |
ID сервісного центру |
create_uid |
(integer) |
ID користувача, який створив замовлення (для отримання даних див. відповідний розділ) |
create_date |
(datetime) |
Дата створення замовлення |
create_date_u |
(integer) |
Дата створення замовлення (UNIXTIMESTAMP) |
priority |
(integer) |
Пріоритет замовлення (1, 2, 3) |
isService |
(boolean) |
Де перебуває апарат (0 => у клієнта, 1 => у сервісному центрі) |
isWarranty |
(boolean) |
Гарантійне замовлення? (0 => ні, 1 => так) |
isClose |
(boolean) |
Замовлення закрите? (0 => ні, можна редагувати, 1 => так, закрите) |
bug_tid |
(integer) |
Ключ опису поломки (для отримання повних даних див. відповідний розділ) |
note_tid |
(integer) |
Примітка до замовлення (для отримання повних даних див. відповідний розділ) |
color_rid |
(integer) |
Колір апарата (для отримання повних даних див. відповідний розділ) |
discount_rid |
(integer) |
Знижка за замовленням (для отримання повних даних див. відповідний розділ) |
discount_type |
(integer) |
Тип знижки (1 => на роботу, 2 => на все) |
oriented |
(integer) |
Узгоджена сума |
imei |
(string) |
Серійний номер апарата |
cond |
(string) |
Стан |
appearance |
(string) |
Зовнішній вигляд |
complete |
(string) |
Комплектація |
global_sid |
(integer) |
Глобальний статус замовлення (для отримання повних даних див. відповідний розділ) |
client_sid |
(integer) |
Клієнтський статус (для отримання повних даних див. відповідний розділ) |
acceptance_sid |
(integer) |
Статус приймання (для отримання повних даних див. відповідний розділ) |
detail_sid |
(integer) |
Статус деталей (для отримання повних даних див. відповідний розділ) |
repair_sid |
(integer) |
Статус ремонтів (для отримання повних даних див. відповідний розділ) |
delivery_sid |
(integer) |
Статус видачі (для отримання повних даних див. відповідний розділ) |
acceptance_uid |
(integer) |
ID співробітника, який прийняв апарат (для отримання повних даних див. відповідний розділ) |
acceptance_date |
(datetime) |
Дата приймання |
acceptance_date_u |
(integer) |
Дата приймання (UNIXTIMESTAMP) |
delivery_uid |
(integer) |
ID користувача, який видав апарат (для отримання повних даних див. відповідний розділ) |
delivery_date |
(datetime) |
Дата видачі |
delivery_date_u |
(integer) |
Дата видачі (UNIXTIMESTAMP) |
delivery_type |
(integer) |
Тип видачі (1 => з ремонтом, 2 => без ремонту) |
expect_date |
(date) |
Очікувана дата видачі |
expect_date_u |
(integer) |
Очікувана дата видачі (UNIXTIMESTAMP) |
sumPrice |
(float) |
Сума всіх послуг |
sumDiscount |
(float) |
Сума знижки |
sumTotal |
(float) |
Підсумкова сума (сума послуг мінус знижка) |
sumExpense |
(float) |
Сума витрат |
sumPaid |
(float) |
Оплачено |
sumIncome |
(string) |
Прибуток |
guarantee_rid |
(string) |
ID ключа гарантії (для отримання повних даних див. відповідний розділ) |
{
"id": "31",
"contacts_id": "23",
"models_id": "1928",
"models_name": "Apple iPhone 2G",
"models_gadgets_id": "1",
"models_gadgets_name": "Apple",
"models_brands_id": "5",
"models_brands_name": "Телефон",
"services_id": "2",
"create_uid": "1",
"create_date": "2018-07-05 16:30:55",
"create_date_u": "1530790255",
"priority": "2",
"isService": "1",
"isWarranty": "0",
"isClose": "0",
"bug_tid": "10",
"note_tid": null,
"color_rid": "107",
"discount_rid": null,
"discount_type": null,
"oriented": "0",
"imei": "",
"cond": "Б/У",
"appearance": "Потертости,Царапины",
"complete": "Без упаковки,Без флешки,Без СЗУ,Без аккумлятора",
"global_sid": "14",
"client_sid": "7",
"acceptance_sid": "10",
"detail_sid": "14",
"repair_sid": "21",
"delivery_sid": null,
"acceptance_uid": "1",
"acceptance_date": "2019-01-19 14:36:40",
"acceptance_date_u": "1547890600",
"delivery_uid": null,
"delivery_date": null,
"delivery_date_u": null,
"delivery_type": null,
"expect_date": "2019-03-11",
"expect_date_u": "1552244400",
"sumPrice": "1000.00",
"sumDiscount": "0.00",
"sumTotal": "1000.00",
"sumExpense": "0.00",
"sumPaid": "1000.00",
"sumIncome": "1000.00",
"guarantee_rid": null
}
Розділ №4: Отримання інформації про контакт за ID
Опис запиту:
|
|
Метод |
/api/get-contact-by-id/ |
token (required) |
(string) token |
id (required) |
(integer) Номер контакту |
Опис відповіді:
| Ключ |
Тип |
Опис |
id |
(integer) |
ID контакту |
name |
(string) |
Назва |
create_users_id |
(integer) |
Користувач, який створив контакт |
date_create |
(datetime) |
Дата створення |
date_create_u |
(integer) |
Дата створення (UNIXTIMESTAMP) |
date_update |
(datetime) |
Дата оновлення |
date_update_u |
(integer) |
Дата оновлення (UNIXTIMESTAMP) |
types |
(string) |
Тип контакту (ENUM('client','organization','provider')) |
status |
(integer) |
Статус |
update_users_id |
(integer) |
ID користувача, який оновив контакт |
communications |
(object) |
Масив із даними для зв’язку з контактом (телефон, сайт, адреса тощо) |
{
"id": "23",
"name": "Мария",
"create_users_id": "1",
"date_create": "2018-06-11 18:38:11",
"date_create_u": "1528724291",
"date_update": "2019-03-29 16:44:23",
"date_update_u": "1553859863",
"types": "client",
"status": "1",
"update_users_id": "1",
"communications": [
{
"rosters_id": "1",
"rosters_name": "Телефон",
"rosters_type_id": "17",
"rosters_type_name": "Мобильный",
"data": "78124987856"
},
{
"rosters_id": "1",
"rosters_name": "Телефон",
"rosters_type_id": "16",
"rosters_type_name": "Рабочий",
"data": "7495123456"
}
]
}
Розділ №5: Отримання інформації про статус за ID
Опис запиту:
|
|
Метод |
/api/get-status-by-id/ |
token (required) |
(string) token |
id (required) |
(integer) ID статусу |
Опис відповіді:
| Ключ |
Тип |
Опис |
id |
(integer) |
ID статусу |
name |
(string) |
Назва |
name_small |
(string) |
Коротка назва |
status_groups_id |
(integer) |
ID групи статусу |
status_groups_name |
(string) |
Назва групи статусу |
class |
(string) |
class ENUM('none','warning','success','important','info','inverse') |
class_i |
(integer) |
class integer |
type |
(string) |
type ENUM(очікування, відкритий, у роботі, успіх, помилка, закритий) |
type_i |
(integer) |
type integer |
{
"id": "14",
"name": "Требуется назначить закупщика",
"name_small": "Тр. назначить закупщика",
"status_groups_id": "4",
"status_groups_name": "Запчасти",
"class": "warning",
"class_i": "2",
"type": "ожидание",
"type_i": "1"
}
Розділ №6: Отримання інформації про співробітника за ID
Опис запиту:
|
|
Метод |
/api/get-user-by-id/ |
token (required) |
(string) token |
id (required) |
(integer) ID співробітника |
Опис відповіді:
| Ключ |
Тип |
Опис |
id |
(integer) |
ID співробітника |
name |
(string) |
Ім’я |
lastname |
(string) |
Прізвище |
{
"id": "1",
"create_date": "2018-04-18 19:11:42",
"create_date_u": "1524060702",
"create_uid": "1",
"name": "Иван",
"lastname": "Иванов",
"patronymic": null,
"login": "ivanov123",
"auths_groups_id": "1",
"isAdmin": "1",
"services_id": "1",
"status_id": "50",
"rosters_posts_id": "1",
"date_birth": "1989-01-01",
"date_birth_u": "614372400",
"note": null,
"career_start": "2018-02-01",
"career_end": null,
"communications": [
{
"rosters_id": "1",
"rosters_name": "Телефон",
"rosters_type_id": null,
"rosters_type_name": null,
"data": "+749512346"
},
{
"rosters_id": "3",
"rosters_name": "E-mail",
"rosters_type_id": null,
"rosters_type_name": null,
"data": "[email protected]"
},
{
"rosters_id": "12",
"rosters_name": "Мессенджер",
"rosters_type_id": null,
"rosters_type_name": null,
"data": "skype_name"
}
]
}
Розділ №7: Отримання текстових даних за ID (поля із закінченням _tid)
Опис запиту:
|
|
Метод |
/api/get-text-by-id/ |
token (required) |
(string) token |
id (required) |
(integer) ID потрібного запису | поля із закінченням _tid у запитах вище |
Опис відповіді:
| Ключ |
Тип |
Опис |
id |
(integer) |
ID |
data |
(string) |
Дані |
{
"id": "15",
"data": "Не заряжается"
}
Розділ №8: Отримання даних із довідника за ID (поля із закінченням _rid)
Опис запиту:
|
|
Метод |
/api/get-roster-by-id/ |
token (required) |
(string) token |
id (required) |
(integer) ID потрібного запису | поля із закінченням _rid у запитах вище |
Опис відповіді:
| Ключ |
Тип |
Опис |
id |
(integer) |
ID |
name |
(string) |
Назва |
{
"id": "15",
"name": "Банковские реквизиты"
}