Главная Интеграции Интеграция по API

Интеграция по API

Обновлено Sep 10, 2025

Интеграция по API позволяет полноценно работать с данными Controlata: управлять заказами, покупателями и продуктами из внешних систем.

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

Настройка интеграции

  1. Перейдите в настройки Controlata, найдите блок "Интеграции" и нажмите "Подключить" напротив "Общее API"

  2. Получите ключ API для авторизации запросов

  3. Настройте префикс для номеров заказов (будет добавлен в начало всех заказов через API)

Авторизация

Все запросы должны содержать ключ API в заголовке Authorization:

Authorization: ваш_ключ_api

Базовые URL

Все эндпоинты располагаются по адресу:

  • Покупатели: https://api.controlata.ru/connect/v1/customers/

  • Заказы: https://api.controlata.ru/connect/v1/orders/

  • Продукты: https://api.controlata.ru/connect/v1/products/

Формат запросов и ответов

  • Метод: POST

  • Формат данных: JSON

  • Кодировка: UTF-8

Все ответы содержат поле success (true/false) и в случае ошибки - поле error с описанием.


Работа с покупателями

Создание покупателя

URL: customers/add.php

Обязательные параметры:

  • name (string) - название покупателя

Опциональные параметры:

  • type (int) - тип покупателя (1 = юридическое лицо, 2 = индивидуальный предприниматель, 3 - физическое лицо, по умолчанию 3)

  • email (string) - электронная почта

  • phone (string) - телефон

  • address_legal (string) - юридический адрес

  • address_real (string) - фактический адрес

  • inn (string) - ИНН

  • kpp (string) - КПП

  • ogrn (string) - ОГРН

  • agreement (string) - номер договора

  • manager_name (string) - имя менеджера

  • manager_post (string) - должность менеджера

  • notes (string) - заметки

Пример запроса:

{
    "name": "ООО Ромашка",
    "email": "[email protected]",
    "phone": "+7 (495) 123-45-67",
    "inn": "1234567890"
}

Пример ответа:

{
    "success": true,
    "customer_id": 123
}

Редактирование покупателя

URL: customers/edit.php

Обязательные параметры:

  • customer_id (int) - ID покупателя

  • name (string) - название покупателя

Опциональные параметры аналогичны созданию покупателя.

Важно: Если опциональный параметр не передан в запросе, существующее значение будет заменено на пустое.

Удаление покупателя

URL: customers/delete.php

Обязательные параметры:

  • customer_id (int) - ID покупателя

Получение списка покупателей

URL: customers/get_list.php

Параметры не требуются.

Пример ответа:

{
    "success": true,
    "customers": [
        {
            "id": 123,
            "name": "ООО Ромашка",
            "email": "[email protected]",
            "phone": "+7 (495) 123-45-67",
            "inn": "1234567890",
            "notes": ""
        }
    ]
}

Получение данных покупателя

URL: customers/get_entry.php

Обязательные параметры:

  • customer_id (int) - ID покупателя


Работа с заказами

Создание заказа

URL: orders/add.php

Обязательные параметры:

  • num (string) - номер заказа

  • products (array) - массив продуктов:

    • sku (string) - артикул продукта

    • amount (float) - количество

    • total (float) - сумма (цена × количество)

  • Покупатель (один из вариантов):

    • customer_id (int) - ID существующего покупателя

    • customer_name (string) - имя нового покупателя

Опциональные параметры:

  • customer_email, customer_phone, customer_address_real и другие поля покупателя

  • storage_id (int) - ID склада (если не указан, используется склад по умолчанию для заказов)

  • date_placed (string) - дата заказа в формате YYYY-MM-DD (если не указана, будет использована текущая дата)

  • date_shipped (string) - дата отправки в формате YYYY-MM-DD

  • delivery_price (float) - стоимость доставки

  • discount (float) - скидка

  • production (int) - 1 для создания производства, 0 для списания со склада

  • notes (string) - заметки

Пример запроса:

{
    "num": "1001",
    "customer_name": "Петров Иван",
    "customer_email": "[email protected]",
    "delivery_price": 500,
    "discount": 100,
    "products": [
        {
            "sku": "A001",
            "amount": 2,
            "total": 1800
        },
        {
            "sku": "A002",
            "amount": 1,
            "total": 1000
        }
    ]
}

Пример ответа:

{
    "success": true,
    "order_id": 456,
    "customer_id": 789
}

Редактирование заказа

URL: orders/edit.php

Обязательные параметры:

  • order_id (int) - ID заказа

  • num (string) - номер заказа

  • products (array) - массив продуктов

Опциональные параметры аналогичны созданию заказа.

Важно: Если опциональный параметр не передан в запросе, существующее значение будет заменено на пустое.

Обновление статуса заказа

URL: orders/update_status.php

Обязательные параметры:

  • order_id (int) - ID заказа

  • status (int) - новый статус (0 = новый, 1 = упакован, 3 = отправлен, 4 = отменен)

Опциональные параметры:

  • date_shipped (string) - дата отгрузки в формате YYYY-MM-DD, ее можно указать при переходе заказа в статус отправлен

Обновление статуса оплаты

URL: orders/update_payment.php

Обязательные параметры:

  • order_id (int) - ID заказа

  • status (int) - статус оплаты (0 = не оплачен, 1 = частично оплачен, 2 = оплачен)

Удаление заказа

URL: orders/delete.php

Обязательные параметры:

  • order_id (int) - ID заказа

Получение списка заказов

URL: orders/get_list.php

Опциональные параметры:

  • date_from (string) - дата от в формате YYYY-MM-DD

  • date_to (string) - дата до в формате YYYY-MM-DD

Получение данных заказа

URL: orders/get_entry.php

Обязательные параметры:

  • order_id (int) - ID заказа

Пример ответа:

{
    "success": true,
    "order": {
        "id": "31591",
        "num": "103",
        "status": "0",
        "payment": "0",
        "date_placed": "2025-08-09",
        "date_shipped": "2025-08-11",
        "subtotal": "480000.00",
        "delivery_price": "0.00",
        "discount": "0.00",
        "total": "480000.00",
        "cost": "229400.00",
        "notes": "",
        "amount": "6.000",
        "lines": "3",
        "source": "api",
        "production": "0",
        "production_num": null,
        "customer_id": "4877",
        "customer_type": "3",
        "customer_name": "Михаил Петров",
        "customer_email": "[email protected]",
        "customer_phone": "",
        "customer_address_real": "",
        "customer_address_legal": "",
        "customer_inn": "",
        "customer_kpp": "",
        "customer_ogrn": "",
        "customer_agreement": "",
        "customer_manager_name": "",
        "customer_manager_post": "",
        "customer_notes": "",
        "storage_id": "3998",
        "storage_name": "Главный",
        "products": [
            {
                "id": "48390",
                "sku": "F003",
                "name": "Стул обеденный дубовый",
                "amount": "4",
                "unit": "шт",
                "total": "180000",
                "price": "45000",
                "cost": "99520",
                "position": "0"
            },
        ]
    }
}


Работа с продуктами

Создание продукта

URL: products/add.php

Обязательные параметры:

  • name (string) - название продукта

  • unit (string) - единица измерения (см. список выше)

  • storage_id (int) - ID склада

Опциональные параметры:

  • sku (string) - артикул

  • price (float) - цена продажи

  • batch_size (float) - размер партии (по умолчанию: 1)

  • stock (float) - начальные остатки

  • minimum (float) - минимальный остаток

  • notes (string) - заметки

Пример запроса:

{
    "name": "Товар 1",
    "sku": "TOV001",
    "unit": "шт",
    "price": 900,
    "storage_id": 1,
    "stock": 10,
    "minimum": 5
}

Редактирование продукта

URL: products/edit.php

Обязательные параметры:

  • product_id (int) - ID продукта

  • name (string) - название продукта

  • unit (string) - единица измерения (см. список единиц выше)

  • storage_id (int) - ID склада

Опциональные параметры:

Остальные параметры аналогичны созданию продукта.

Важно: Если опциональный параметр не передан в запросе, существующее значение будет заменено на пустое.

Обновление остатков

URL: products/update_stock.php

Обязательные параметры:

  • product_id (int) - ID продукта

  • storage_id (int) - ID склада

  • stock (float) - новое количество остатков

Опциональные параметры:

  • notes (string) - заметки к корректировке

Удаление продукта

URL: products/delete.php

Обязательные параметры:

  • product_id (int) - ID продукта

Получение списка продуктов

URL: products/get_list.php

Обязательные параметры:

  • storage_id (int) - ID склада

Получение данных продукта

URL: products/get_entry.php

Обязательные параметры:

  • product_id (int) - ID продукта

  • storage_id (int) - ID склада

Доступные единицы измерения

При работе с продуктами вы можете использовать следующие единицы измерения:

Количество и вес:

  • шт - штуки

  • кг - килограммы

  • г - граммы

  • мг - миллиграммы

  • ц - центнеры

  • т - тонны

  • кар - караты

  • упак - упаковки

  • компл - комплекты

Объем:

  • л - литры

  • мл - миллилитры

  • дал - декалитры

  • гл - гектолитры

  • дцл - децилитры

Длина и площадь:

  • м - метры

  • см - сантиметры

  • мм - миллиметры

  • км - километры

  • дм - дециметры

  • пог. м - погонные метры

  • кв. м - квадратные метры

  • кв. см - квадратные сантиметры

  • кв. дм - квадратные дециметры

  • куб. м - кубические метры

  • куб. см - кубические сантиметры

  • куб. дм - кубические дециметры

Где найти storage_id

При создании продуктов или заказов вам может потребоваться идентификатор склада storage_id. На данный момент у нас нет эндпоинтов для получения списка складов, но вы можете посмотреть storage_id существующих складов в системе. Для этого нужно:

  1. Зайти в раздел складов

  2. Открыть нужный склад

  3. Взять storage_id из адресной строки браузера: https://app.controlata.ru/storages/item/[storage_id]


Обработка ошибок

В случае ошибки API возвращает JSON с полями:

  • success: false

  • error: описание ошибки

Примеры ошибок:

{
    "success": false,
    "error": "Product not found or access denied"
}

Типичные ошибки:

  • 401 Unauthorized - неверный API ключ

  • Customer not found - покупатель не найден

  • All products have wrong SKU - все продукты имеют неверный артикул

  • Invalid status value - неверное значение статуса


Особенности работы

  1. Сопоставление продуктов происходит по артикулу (SKU). Сначала поиск выполняется по основному SKU продукта, если не найден - по альтернативным SKU. Если продукт не найден, он пропускается, но заказ создается с остальными продуктами.

  2. Логирование: Все запросы логируются для отладки и мониторинга.

  3. Префиксы заказов: К номеру заказа автоматически добавляется префикс из настроек интеграции.