Максим

Максим

Обновлено Oct 6, 2026

Создает заказ. Статус заказа берется из настройки Статус нового заказа по умолчанию, а от статуса зависит, списываются ли продукты и материалы сразу (см. Заказы).

v1/orders/add.php

Параметры

Поле Тип Обязательное Описание
num string Да Номер заказа без префикса
products array Один из двух Строки продуктов
materials array Один из двух Строки материалов. Принимаются при включенной настройке Возможность заказа материалов
customer_id int Один из двух ID существующего покупателя
customer_name string Один из двух Имя нового покупателя. Остальные поля покупателя передаются с префиксом customer_
date_placed string Нет Дата заказа. По умолчанию сегодня
date_shipped string Нет Дата отправки
products_storage_id int Нет Склад продуктов. По умолчанию склад из настроек. Принимается и старое имя storage_id
materials_storage_id int Нет Склад материалов. По умолчанию склад из настроек
production int Нет 1, чтобы выполнить заказ производством под заказ. По умолчанию 0
delivery_price float Нет Стоимость доставки. По умолчанию 0
discount float Нет Скидка. По умолчанию 0
notes string Нет Заметки

Каждая строка в products и materials содержит id или sku, количество amount и сумму строки total. Поля покупателя, склады и производство под заказ описаны в статье Заказы.

Как работает

  • Номер. К num добавляется префикс подключения: «1001» сохранится как «A-1001».
  • Ненайденные позиции. Строка с неизвестным id или артикулом пропускается, а сообщение о ней дописывается в notes. Если не найдена ни одна строка, заказ не создается.
  • Покупатель. С customer_name каждый запрос создает нового покупателя, даже если такое имя уже есть. ID покупателя возвращается в ответе: сохраните его и передавайте customer_id в следующих заказах.
  • Даты. Движения по складу датируются датой отправки, а если она не задана, датой заказа.
  • Суммы. subtotal равен сумме строк, total равен subtotal плюс delivery_price минус discount. Себестоимость заказа Controlata считает сама.
  • Производство под заказ. С production со значением 1 Controlata создает связанное производство, продукты не списываются со склада.

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

{
    "num": "1001",
    "date_placed": "2026-10-06",
    "customer_name": "Иван Петров",
    "customer_phone": "+7 900 123-45-67",
    "customer_email": "ivan@example.com",
    "customer_address_real": "г. Москва, ул. Лесная, д. 5, кв. 12",
    "products": [
        {
            "sku": "P001",
            "amount": 2,
            "total": 26000
        },
        {
            "id": 816,
            "amount": 1,
            "total": 4500
        }
    ],
    "delivery_price": 500,
    "discount": 1000,
    "notes": "Заказ с сайта"
}

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

{
    "success": true,
    "order_id": 43727,
    "customer_id": 512
}

customer_id содержит ID покупателя заказа: найденного по customer_id или созданного по customer_name.

Ошибки

Ошибка Причина
No num in input Не передан num
Products is not an array products не массив (так же для materials)
No products or materials in input Не передано ни одной строки
Materials in orders are disabled in company settings Переданы материалы, а настройка Возможность заказа материалов выключена
Storage ID is not set Передан пустой склад
Storage ID not found Склад не найден или удален
Date is not a valid date in format YYYY-MM-DD Неверная дата заказа или отправки
Line 0 of products must be an object Строка не является объектом (вместо 0 будет номер строки)
SKU or id not set for product 0 В строке нет ни id, ни sku
Amount not set for product with SKU "P001" В строке нет amount
Total not set for product with SKU "P001" В строке нет total
Amount must be greater than 0 for product with SKU "P001" Количество не число или не больше 0 после округления
Total must be a number for product with SKU "P001" Сумма строки не число
All products have wrong SKU or id Не найдена ни одна строка. Если переданы материалы, текст будет «All products and materials have wrong SKU or id»
No customer_name or customer_id in input Не передан покупатель
Customer not found Покупатель customer_id не найден или удален
Customer name must not be empty Пустое customer_name
Customer name must be a string customer_name не строка
Invalid customer_type value. Must be one of: 1, 2, 3 Неверный тип покупателя

В текстах ошибок строк вместо product будет material для строк материалов, а вместо SKU "P001" будет id 816, если строка передана по id.