📦 API Документация сервиса заказов

⚠️ Важно! Перед началом работы с сервисом, необходимо обратиться к закрепленному сотруднику, который зарегистрирует вас в системе.

🔐 В качестве авторизации в сервисе используется JWT токен, получаемый после успешного логина.

🔑 Авторизация

POST https://api.kakchasy.ru/api/login

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

# Запрос на получение JWT токена
POST 'https://api.kakchasy.ru/api/login' \
  --header 'Content-Type: application/json' \
  --body '{
    "email": "email@yandex.ru",
    "password": "yourpass"
}'

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

{
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhd...",
    "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmcmVzaCI6ZmFsc2UsImlhd..."
}
📌 Примечание: Полученный access_token используется при вызове всех последующих методов. Срок действия 1 день. Полученый refresh_token можно использовать для обновления access_token без необходимости повторной аутентификации пользователя (Срок действия 3 дня). Токен передается в заголовке Authorization: Bearer <token>

📊 Статусы заказов

Статусы заказов (status_id):

Примечание: Отменить заказ можно только в статусах 9 или 10.

📊 Статусы элементов заказов

Статусы элементов заказов:

🛒 Методы работы с заказами

1. Создать заявку на покупку

POST https://api.kakchasy.ru/api/orders order_type_id: 1
# Создание заявки на покупку (заказ поставщику)
POST 'https://api.kakchasy.ru/api/orders' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
  --body '{
    "order_type_id": 1,
    "order_date": "2026-02-18",
    "est_date": "2026-02-28",
    "covname": "БИЗНЕС ГИФТС ООО",
    "cov_inn": "9715206895",
    "vat": "20%",
    "extorder_id": "EXT-12345",
    "items": [
        {
            "articul": "1745-005",
            "film_name": "КРАСАВИЦА",
            "good_name": "Варежки",
            "good_um": "шт.",
            "good_cnt": 30,
            "good_price": 100.0,
            "good_summa": 3000.0
        }
    ]
}'

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

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

{
    "msg": "Заявка на покупку создана",
    "order_id": 52
}

2. Создать заявку на доставку

POST https://api.kakchasy.ru/api/orders order_type_id: 2
# Создание заявки на доставку (отправка)
POST 'https://api.kakchasy.ru/api/orders' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
  --body '{
    "order_type_id": 2,
    "order_date": "2026-02-15",
    "est_date": "2026-02-22",
    "extorder_id": "EXT-67890",
    "items": [
        {
            "articul": "1710-013",
            "film_name": "МАТЕРИАЛИСТКА",
            "good_name": "Бейсболка LIBERTY SANDWICH",
            "good_cnt": 1,
            "category": "киносети",
            "counterparty": "Частное лицо",
            "town_name": "Красноярск",
            "adr": "660092, г. Красноярск, ул. Шевченко, д. 80, кв 118",
            "contact_fio": "Мирошникова Ирина Алексеевна",
            "contact_info": "89659052380",
            "note": "Примечание к заказу"
        }
    ]
}'

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

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

{
    "msg": "Заявка на отправку создана",
    "order_id": 53
}

3. Создать заявку от DCP24

POST https://api.kakchasy.ru/api/orders order_type_id: 4
# Создание заявки от DCP24
POST 'https://api.kakchasy.ru/api/orders' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
  --body '{
    "order_type_id": 4,
    "order_date": "2026-02-15",
    "est_date": "2026-02-22",
    "extorder_id": "DCP24-001",
    "items": [
        {
			"articul": "1710-013",
			"film_name": "МАТЕРИАЛИСТКА",
			"good_name": "Бейсболка",
			"good_cnt": 10,
			"counterparty": "Империя игр, ООО",
			"cinema_name": "Кинотеатр Победа",
			"town_name": "Королев",
			"region_name": "Московская область",
			"adr": "ул. Тверская, 15",
			"contact_info": "84951234567",
			"contact_fio": "Иванов П.В.",
			"extorderitem_id": "ITEM-001"
        }
    ]
}'

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

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

{
    "msg": "Заявка на отправку создана",
    "order_id": 54
}

4. Отменить заявку

DELETE https://api.kakchasy.ru/api/orders/<order_id>
# Отмена заказа по ID (доступно только для статусов 9 или 10)
DELETE 'https://api.kakchasy.ru/api/orders/52' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'

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

{
    "msg": "Заказ успешно отменён"
}
⚠️ Условия отмены: Заказ можно отменить только если его статус = 9 (Создан) или 10 (Принят). После отмены статус становится 11.

5. Получить список заказов

GET https://api.kakchasy.ru/api/orders
# Получение списка заказов текущего пользователя
GET 'https://api.kakchasy.ru/api/orders' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'

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

[
    {
        "id": 51,
        "type": "Заказ поставщику",
        "order_date": "2026-02-18",
        "est_date": "2026-02-28",
        "covname": "БИЗНЕС ГИФТС ООО",
        "cov_inn": "9715206895",
        "vat": "20%",
        "extorder_id": "EXT-12345",
        "status": "Создан"
    },
    {
        "id": 53,
        "type": "Заявка на отправку",
        "order_date": "2026-02-15",
        "est_date": "2026-02-22",
        "covname": null,
        "cov_inn": null,
        "vat": null,
        "extorder_id": "EXT-67890",
        "status": "Отменён"
    }
]

6. Получить информацию о заказе

GET https://api.kakchasy.ru/api/orders/<order_id>
# Получение детальной информации по конкретному заказу (с позициями)
GET 'https://api.kakchasy.ru/api/orders/53' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'

Пример ответа (заказ на доставку):

{
    "id": 53,
    "order_date": "2026-02-15",
    "est_date": "2026-02-22",
    "extorder_id": "EXT-67890",
    "status": "Завершен",
    "items": [
        {
            "articul": "1710-013",
            "film_name": "МАТЕРИАЛИСТКА",
            "good_name": "Бейсболка LIBERTY SANDWICH",
            "good_um": "шт",
            "good_cnt": 1,
            "good_price": 0.0,
            "good_summa": 0.0,
            "category": "киносети",
            "counterparty": "Частное лицо",
            "town_name": "Красноярск",
            "adr": "660092, г. Красноярск, ул. Шевченко, д. 80, кв 118",
            "contact_fio": "Мирошникова И. А.",
            "contact_info": "8965xxxxxxx",
            "note": "Примечание к заказу",
            "extorderitem_id": "smt311",
            "status": "Доставлено"
        }
    ]
}

📋 Сводная таблица методов

Метод Endpoint Описание Тип заказа
POST /api/login Авторизация и получение JWT токена Публичный
POST /api/orders Создание заявки на покупку type_id=1
POST /api/orders Создание заявки на доставку type_id=2
POST /api/orders Создание заявки от DCP24 type_id=4
DELETE /api/orders/{id} Отмена заказа (статусы 9 или 10) Любой
GET /api/orders Получение списка заказов пользователя Любой
GET /api/orders/{id} Получение детальной информации о заказе с позициями Любой

🗄️ Структура данных

Основные сущности:

📌 Важно: Во всех запросах, кроме /api/login, требуется передавать access_token в заголовке Authorization: Bearer <ваш_токен>.

🔗 Базовый URL API: https://api.kakchasy.ru

📅 Все даты передаются и возвращаются в формате YYYY-MM-DD

🔄 Каскадное удаление: при удалении заказа автоматически удаляются все его позиции