Максим

Максим

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

Создает ресурс. Набор обязательных полей зависит от типа расчета, подробнее о типах в статье Ресурсы.

v1/resources/add.php

Параметры

Поле Тип Обязательное Описание
name string Да Название
type string Да Тип расчета: «rate», «percent» или «amortized»
dynamic int Нет 1: цена фиксированной ставки или процент процентного ресурса указывается в составе продукта. По умолчанию 0. У амортизации не используется
unit string Для rate и amortized Единица измерения, код из статьи Единицы измерения. У ставки с dynamic 1 не нужна
price float Для rate Цена за единицу, 0 или больше. У ставки с dynamic 1 не нужна
base string Для percent База расчета: «cost» (себестоимость) или «price» (цена продажи)
percent float Для percent Процент, больше 0 и не больше 100. При dynamic 1 не нужен
initial_cost float Для amortized Первоначальная стоимость, 0 или больше
useful_life float Для amortized Срок службы в единицах unit, больше 0
notes string Нет Заметки
categories array Нет ID категорий из v1/categories/get_list с type «resources»

Цена амортизируемого ресурса рассчитывается автоматически: initial_cost / useful_life. Станок за 600000 рублей со сроком службы 2000 часов стоит 300 рублей за час работы.

Категории через API не создаются, можно назначить только существующие. В categories можно передать числа или объекты с полем id, как их возвращает v1/resources/get_entry.

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

Фиксированная ставка: часовая ставка столяра.

{
    "name": "Работа столяра",
    "type": "rate",
    "unit": "ч",
    "price": 600,
    "categories": [31]
}

Процент от себестоимости, одинаковый для всех продуктов:

{
    "name": "Накладные расходы",
    "type": "percent",
    "base": "cost",
    "percent": 10
}

Комиссия маркетплейса, процент которой задается в составе каждого продукта:

{
    "name": "Комиссия маркетплейса",
    "type": "percent",
    "dynamic": 1,
    "base": "price"
}

Амортизация оборудования:

{
    "name": "Фрезерный станок",
    "type": "amortized",
    "unit": "ч",
    "initial_cost": 600000,
    "useful_life": 2000
}

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

{
    "success": true,
    "resource_id": 57
}

Ошибки

Ошибка Причина
No name in input Не передано обязательное поле (вместо name будет имя поля: type или поле, обязательное для типа)
Name must not be empty Пустое название
Name must be a string Название передано не строкой, например массивом
Invalid type value. Must be one of: rate, percent, amortized Неверный type
Unit not set Передана пустая единица измерения
Unit not found Неизвестная единица измерения
Invalid price value. Must be a number, 0 or greater Цена не число или меньше 0 (так же для initial_cost)
Invalid base value. Must be one of: cost, price Неверная база расчета
Percent must be greater than 0 and not exceed 100 Процент 0, меньше 0 или больше 100
Useful life must be greater than 0 Срок службы 0 или меньше
Category 12 not found Категория не найдена