Главная Интеграции
🔌

Интеграции

Maxim Izmaylov
От Maxim Izmaylov
2 статьи

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

Интеграция по 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. Префиксы заказов: К номеру заказа автоматически добавляется префикс из настроек интеграции.

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

Интеграция с Tilda

Интеграция с интернет магазином на Tilda позволяет получать заказы, которые покупатели оформляют на вашем сайте на Tilda сразу в Controlata. Для корректной настройки интеграции нужно указать SKU для всех продуктов в системе. Интеграция сопоставляет SKU продуктов из Controlata с SKU или externalid продуктов из Tilda. Перейдите в настройки Controlata, найдите блок "Интеграции" и нажмите "Подключить" напротив Tilda. После подключения интеграции вы увидите диалог с ее настройками. Скопируйте отсюда ключ API, он понадобится вам далее. Другие доступные настройки: - Префикс для номеров заказов: текст, который будет добавляться в начала номера каждого заказа, полученного из Тильды, по умолчанию "T-". - Поля номера заказа, имени покупателя, email покупателя и т.д. - названия полей (переменных) из формы заказа в Тильде. Controlata будет искать поля с такими названиями во входящих данных, чтобы заполнить информацию о заказе. Изначально эти поля заполнены значениями по умолчанию из Тильды. - Склад продуктов — склад, с которого нужно списывать продукты для заказа. - Создавать отдельное производство под каждый заказ — если указана эта опция, то Controlata не будет списывать продукты со склада, а будет создавать отдельное производство под каждый заказ. Подробнее см. здесь. - Использовать externalid для сопоставления продуктов — если указана эта опция, то сопоставление продуктов будет производиться по externalid из Тильды. В противном случае сопоставление продуктов будет производиться по SKU. Теперь зайдите в настройки вашего сайта в Тильде. В настройках найдите "Формы". В "Формах" найдите "Webhook" и нажмите на него. Здесь нужно указать настройки вебхука: Webhook URL: https://api.controlata.ru/connect/tilda/new_order.php API Method: post API Name: key API Key: ваш ключ API, который вы скопировали на втором шаге Дополнительные настройки: Посылать Cookies: нет Передавать данные по товарам в заказе — массивом: да Передавать externalid в товарах: да, если вы хотите сопоставлять продукты по externalid Отправлять данные в виде application/json: да Отправлять только после оплаты: да, если вы хотите, чтобы заказы отправлялись в Controlata только после оплаты Название формы в списке: Controlata После введение всех настроек нажмите "Сохранить". Далее, перейдите на страницу вашего сайта, к которой подключен интернет магазин. Найдите на этой странице блок ST100 "Корзина с формой заказа" и перейдите в его контент. Поставьте галочку напротив Webhook: Controlata, сохраните изменения и опубликуйте страницу. После этого заказы из Тильды должны приходить в Controlata. Сопоставление продуктов происходит по полю SKU. Если продукт с соответствующим SKU не найден в системе, он не будет добавлен в заказ, но это не приведет к ошибке. В заметки к заказу будет добавлено примечание, какой продукт был не сопоставлен. Но если ни один продукт из заказа не будет сопоставлен, то это приведет к ошибке и такой заказ не будет создан. Если у вас не получается подключить или настроить интеграцию, напишите нам в чат, и мы поможем.

Обновлено Jan 26, 2025