Перейти до вмісту

API для розробників

Документація з 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": "Банковские реквизиты"
}

← Усі розділи