Изменяет материал. Меняются только переданные поля, остальные остаются прежними. Подробнее о частичном редактировании в статье Общие правила.
POST https://api.controlata.ru/connect/v1/materials/edit.php
Параметры
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| material_id | int | Да | ID материала |
| name | string | Нет | Название |
| sku | string | Нет | Артикул |
| unit | string | Нет | Единица измерения |
| price | float | Нет | Цена за единицу |
| notes | string | Нет | Заметки |
| minimum | float | Нет | Минимальный остаток на складе storage_id |
| storage_id | int | С minimum | Склад, на котором меняется минимальный остаток |
| categories | array | Нет | ID категорий. Заменяют текущие целиком |
| suppliers | array | Нет | ID поставщиков. Заменяют текущих целиком |
Чтобы очистить поле, передайте пустую строку, чтобы снять все категории или поставщиков, передайте пустой массив.
Как работает
- Цена. После изменения цены Controlata пересчитывает себестоимость продуктов, в состав которых входит материал. Если поставок этого материала еще не было, по новой цене переоцениваются и начальный остаток, и корректировки остатка.
- Единица измерения. Если новая единица из той же группы (например,
гвместокг), Controlata пересчитывает остатки, историю движений и минимальный остаток. Если цена не передана, она тоже пересчитывается: 500 за кг станет 0.5 за г. Сменить группу (например,штнакг) нельзя, если материал входит в состав продукта. - Минимальный остаток задается на конкретном складе, поэтому вместе с ним нужен storage_id. Материал должен числиться на этом складе (см. Материалы).
- Категории определяют, на каких складах числится материал. После их изменения материал появится на складах с новыми категориями.
Пример запроса
{
"material_id": 2051,
"price": 135000,
"minimum": 1,
"storage_id": 3998
}
Пример ответа
{
"success": true
}
Ошибки
| Ошибка | Причина |
|---|---|
| No material_id in input | Не передан material_id |
| Material not found or access denied | Материал не найден или удален |
| Name must not be empty | Передано пустое название |
| Unit not found | Неизвестная единица измерения |
| Unit cannot be changed to another unit group: the material is used in components of products | Смена группы единицы у материала из состава продукта |
| No storage_id in input | Передан minimum без storage_id |
| Material is not stored in storage location 3998, so its minimum cannot be set there | Материал не числится на складе |
| Invalid price value. Must be a number | Значение не число (так же для minimum) |
| Category 12 not found | Категория не найдена |
| Supplier not found or access denied | Поставщик не найден или удален |