Перейти к содержимому

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

← Все разделы