Склады
Склад объединяет адрес хранения, единицу вместимости, владельца и настройки цены. Остатки относятся к складу по warehouse_id, а приложение получает товары только со складов, которые к нему привязаны.
Вернуться к разделу: управление складом.
Для первого сквозного сценария начните с быстрого старта складского учёта.
Перед началом
Используйте Bearer сотрудника:
Authorization: Bearer <employee_token> Права сотрудника:
view-warehouses— просмотр;create-warehousesилиedit-warehouses— создание;edit-warehouses— изменение, удаление и настройка интеграций.
API складов проверяет принадлежность записи проекту сотрудника. При обращении к складу другого проекта вы не получите доступ к его данным.
Перед созданием подготовьте:
storage_unit_idизGET /api/storage_units;avatar_idиз API файлов, если нужен аватар;counterparty_id, если склад принадлежит поставщику;- полный адрес: Gigma определяет город из поля
address.
city_id в запросе создания и обновления не передаётся.
Какой метод использовать
| Задача | Метод |
|---|---|
| Получить компактный JSON-список | GET /api/warehouses |
| Построить административную таблицу | GET /api/tables/warehouses |
| Получить один склад | GET /api/warehouses/{warehouse} |
| Создать склад | POST /api/warehouses |
| Изменить склад | PUT /api/warehouses/{warehouse} |
| Удалить склад | DELETE /api/warehouses/{warehouse} |
| Настроить внешнюю систему | методы в блоке Интеграции склада |
| Посмотреть журнал действий | GET /api/warehouses/{warehouse}/history |
Объект склада
Основные поля ответа:
id— ID склада;code— числовой код склада;name— название;avatar— файл аватара илиnull;owned_by_us—true, если склад принадлежит вашему проекту;address— полный адрес;city— город, определённый из адреса, илиnull;storage_capacity— вместимость;storage_unit— единица вместимости;counterparty— владелец или поставщик, либоnull;is_price_from_inventories— источник цены для клиентского каталога.
Получить список складов
- Метод
- GET
- URL
https://api.gigma.ru/api/warehouses- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Accept: application/json- Успешный ответ
200
Используйте этот метод в серверных интеграциях, формах выбора склада и заданиях синхронизации. API возвращает только склады проекта сотрудника.
Параметры запроса
query(string, необязательный) — поиск по названию, до 255 символов.owned_by_us(boolean, необязательный) — фильтр по принадлежности склада.type_id[](integer[], необязательный) — ID типов номенклатуры, которая есть на складе.city_id[](integer[], необязательный) — ID городов.
Пример запроса
GET /api/warehouses?owned_by_us=true&city_id[]=1 HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Accept: application/json Ответ
{
"warehouses": [
{
"id": 12,
"code": 12001,
"name": "Основной склад",
"avatar": null,
"owned_by_us": true,
"address": "Москва, Варшавское шоссе, 1",
"storage_capacity": 5000,
"storage_unit": {
"id": 1,
"name": "Штука",
"abbreviation": "шт."
},
"city": {
"id": 1,
"name": "Москва",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2026-08-01T09:00:00.000000Z"
},
"counterparty": null,
"is_price_from_inventories": true
}
],
"warehousesCount": 1
} Ошибки
401— Bearer отсутствует или недействителен.403— у сотрудника нет права на просмотр складов.422— фильтр не прошёл валидацию.
Получить таблицу складов
- Метод
- GET
- URL
https://api.gigma.ru/api/tables/warehouses- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Accept: application/json- Успешный ответ
200
Используйте метод для административного интерфейса: ответ содержит описание колонок, строки и пагинацию. Для обычной серверной синхронизации проще использовать GET /api/warehouses.
Параметры запроса
Поддерживаются те же фильтры, что и в GET /api/warehouses, а также:
page(integer, необязательный) — номер страницы, по умолчанию1.per_page(integer, необязательный) — количество строк, по умолчанию10.
Пример запроса
GET /api/tables/warehouses?query=основной&page=1&per_page=20 HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Accept: application/json Ответ
{
"columns": [
{
"id": 81,
"table_id": 11,
"order": 0,
"key": "id",
"has_icon": 0,
"text": "№"
},
{
"id": 82,
"table_id": 11,
"order": 1,
"key": "name",
"has_icon": 1,
"text": "Название"
}
],
"warehouses": [
{
"id": {
"icon": null,
"value": 12,
"url": "/warehouses/list-warehouses/12"
},
"code": {
"icon": null,
"value": 12001,
"url": "/warehouses/list-warehouses/12"
},
"name": {
"icon": "https://api.gigma.ru/storage/uploads/default.svg",
"value": "Основной склад",
"link": "/warehouses/list-warehouses/12"
},
"owner": "Свой",
"city": "Москва",
"creator": {
"icon": "https://api.gigma.ru/storage/uploads/default.svg",
"value": "Иванов Иван",
"link": "/users/list-users/39"
},
"storage_capacity": 5000,
"storage_unit": "Штука",
"is_price_from_inventories": "Да"
}
],
"pagination": {
"total": 1,
"per_page": 20,
"current_page": 1,
"last_page": 1,
"from": 1,
"to": 1
}
} Ссылки внутри табличного ответа предназначены для административного интерфейса. Не используйте их как API-адреса.
Получить склад
- Метод
- GET
- URL
https://api.gigma.ru/api/warehouses/{warehouse}- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Accept: application/json- Успешный ответ
200
Получите актуальные настройки склада перед изменением остатка или цены.
Параметры пути
warehouse(integer, обязательный) — ID склада.
Пример запроса
GET /api/warehouses/12 HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Accept: application/json Ответ
{
"warehouse": {
"id": 12,
"code": 12001,
"name": "Основной склад",
"avatar": null,
"owned_by_us": true,
"address": "Москва, Варшавское шоссе, 1",
"storage_capacity": 5000,
"storage_unit": {
"id": 1,
"name": "Штука",
"abbreviation": "шт."
},
"city": {
"id": 1,
"name": "Москва",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"created_at": "2026-08-01T09:00:00.000000Z"
},
"counterparty": null,
"is_price_from_inventories": true
}
} Ошибки
401— Bearer отсутствует или недействителен.403— склад относится к другому проекту или у сотрудника нет права на просмотр.404— склад не найден.
Создать склад
- Метод
- POST
- URL
https://api.gigma.ru/api/warehouses- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Content-Type: application/json- Успешный ответ
201
Создавайте склад только в административном контуре. Привязка нового склада к приложению выполняется отдельно через настройки приложения.
Параметры запроса
name(string, обязательный) — название, до 255 символов.address(string, обязательный) — полный адрес, до 255 символов.storage_unit_id(integer, обязательный) — ID единицы вместимости изGET /api/storage_units.code(integer, необязательный) — положительный код, уникальный в проекте. Если не передать, Gigma создаст его автоматически.avatar_id(integer, необязательный) — ID файла аватара илиnull.owned_by_us(boolean, необязательный) — принадлежит ли склад вашему проекту.storage_capacity(number, необязательный) — вместимость, больше нуля.counterparty_id(integer, необязательный) — ID владельца или поставщика.is_price_from_inventories(boolean, необязательный) — использовать ли цену складской позиции в клиентском каталоге.
Пример запроса
{
"name": "Основной склад",
"address": "Москва, Варшавское шоссе, 1",
"storage_unit_id": 1,
"owned_by_us": true,
"storage_capacity": 5000,
"is_price_from_inventories": true
} Ответ
Gigma возвращает созданный объект в поле warehouse. Сохраните warehouse.id.
Ошибки
401— Bearer отсутствует или недействителен.403— у сотрудника нет права на создание складов.422— обязательное поле отсутствует, связанный ID не найден или код уже занят в проекте.
Обновить склад
- Метод
- PUT
- URL
https://api.gigma.ru/api/warehouses/{warehouse}- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Content-Type: application/json- Успешный ответ
200
Передавайте только изменяемые поля. Поля имеют те же типы и ограничения, что и при создании.
Параметры пути
warehouse(integer, обязательный) — ID склада.
Параметры запроса
name(string, необязательный) — новое название.address(string, необязательный) — новый или текущий полный адрес.storage_unit_id(integer, необязательный) — ID единицы вместимости.code(integer, необязательный) — положительный код, уникальный в проекте.avatar_id(integer, необязательный) — ID файла аватара илиnull.owned_by_us(boolean, необязательный) — принадлежность склада.storage_capacity(number, необязательный) — вместимость, больше нуля.counterparty_id(integer, необязательный) — ID владельца или поставщика.is_price_from_inventories(boolean, необязательный) — источник цены клиентского каталога.
Передавайте текущее address, даже если меняете другое поле. При обновлении Gigma заново определяет город из адреса; без address поле city может стать null.
Пример запроса
{
"name": "Основной склад — Москва",
"address": "Москва, Варшавское шоссе, 1",
"is_price_from_inventories": false
} Ответ
Gigma возвращает обновлённый объект в поле warehouse.
Ошибки
401— Bearer отсутствует или недействителен.403— склад относится к другому проекту или у сотрудника нет праваedit-warehouses.404— склад не найден.422— данные не прошли валидацию.
Удалить склад
- Метод
- DELETE
- URL
https://api.gigma.ru/api/warehouses/{warehouse}- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Accept: application/json- Успешный ответ
200
Удаляйте склад только после того, как убедились, что он не используется приложением, остатками и интеграциями.
Параметры пути
warehouse(integer, обязательный) — ID склада.
Ответ
{
"message": "Warehouse deleted."
} Ошибки
401— Bearer отсутствует или недействителен.403— склад относится к другому проекту или у сотрудника нет праваedit-warehouses.404— склад не найден.
Интеграции склада
При создании склада Gigma добавляет доступные складские интеграции в неактивном состоянии. Дальше вы передаёте их параметры и включаете нужную интеграцию.
В ответах есть два разных ID:
integration.id— ID связи интеграции со складом; используйте его в URL;integration.integration_id— ID интеграции в общем справочнике.
Секретные значения API не возвращает. Для них value_1 или value_2 будет null, а наличие сохранённого значения покажут has_value_1 и has_value_2.
Получить интеграции склада
- Метод
- GET
- URL
https://api.gigma.ru/api/warehouses/{warehouse}/integrations- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Accept: application/json- Успешный ответ
200
Параметры пути
warehouse(integer, обязательный) — ID склада.
Ответ
{
"integrations": [
{
"id": 41,
"integration_id": 10,
"name": "Складская система",
"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
"is_active": false,
"parameters": [
{
"id": 10,
"key_1": "login",
"description_1": "Логин",
"key_2": "password",
"description_2": "Пароль"
}
],
"values": [
{
"id": 73,
"key_1": "login",
"description_1": "Логин",
"key_2": "password",
"description_2": "Пароль",
"value_1": "warehouse-user",
"value_2": null,
"has_value_1": true,
"has_value_2": true
}
]
}
],
"integrationsCount": 1
}Изменить статус интеграции
- Метод
- PUT
- URL
https://api.gigma.ru/api/warehouses/{warehouse}/integrations/{integration}- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Content-Type: application/json- Успешный ответ
200
Включайте интеграцию после сохранения и проверки обязательных параметров.
Параметры пути
warehouse(integer, обязательный) — ID склада.integration(integer, обязательный) —integrations[].id, а неintegration_id.
Параметры запроса
is_active(boolean, обязательный) — новый статус интеграции.
Пример запроса
{
"is_active": true
} Ответ
Gigma возвращает обновлённый объект в поле integration.
Ошибки
403— склад относится к другому проекту или у сотрудника нет права на изменение.404— склад или связь интеграции не найдены.422—is_activeотсутствует или имеет неверный тип.
Получить сохранённые параметры
- Метод
- GET
- URL
https://api.gigma.ru/api/warehouses/{warehouse}/integrations/{integration}/parameters- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Accept: application/json- Успешный ответ
200
Параметры пути
warehouse(integer, обязательный) — ID склада.integration(integer, обязательный) — ID связи интеграции со складом.
Ответ
{
"parameters": [
{
"id": 73,
"key_1": "login",
"description_1": "Логин",
"key_2": "password",
"description_2": "Пароль",
"value_1": "warehouse-user",
"value_2": null,
"has_value_1": true,
"has_value_2": true
}
],
"parametersCount": 1
}Сохранить параметры интеграции
- Метод
- POST
- URL
https://api.gigma.ru/api/warehouses/{warehouse}/integrations/{integration}/parameters- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Content-Type: application/json- Успешный ответ
200 или 201
Метод работает как upsert: создаёт параметр или обновляет уже сохранённый параметр с тем же integration_parameter_id.
Параметры пути
warehouse(integer, обязательный) — ID склада.integration(integer, обязательный) — ID связи интеграции со складом.
Параметры запроса
integration_parameter_id(integer, обязательный) — ID шаблона параметра изintegrations[].parameters.value_1(string, необязательный) — первое значение.value_2(string, необязательный) — второе значение.
Пример запроса
{
"integration_parameter_id": 10,
"value_1": "warehouse-user",
"value_2": "secret-value"
} Ответ
Секретное значение не возвращается в открытом виде:
{
"parameter": {
"id": 73,
"key_1": "login",
"description_1": "Логин",
"key_2": "password",
"description_2": "Пароль",
"value_1": "warehouse-user",
"value_2": null,
"has_value_1": true,
"has_value_2": true
}
} Не записывайте value_1 и value_2 в прикладные логи.
Удалить сохранённый параметр
- Метод
- DELETE
- URL
https://api.gigma.ru/api/warehouses/{warehouse}/integrations/{integration}/parameters/{parameter}- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Accept: application/json- Успешный ответ
200
Параметры пути
warehouse(integer, обязательный) — ID склада.integration(integer, обязательный) — ID связи интеграции со складом.parameter(integer, обязательный) —parameters[].idсохранённого значения.
Ответ
{
"message": "Parameter successfully deleted."
}Получить историю склада
- Метод
- GET
- URL
https://api.gigma.ru/api/warehouses/{warehouse}/history- Авторизация
- Bearer сотрудника
- Headers
Authorization: Bearer {token}, Accept: application/json- Успешный ответ
200
История подходит для аудита изменений карточки склада. Она не заменяет журнал вашей синхронизации остатков.
Параметры пути
warehouse(integer, обязательный) — ID склада.
Ответ
{
"histories": [
{
"id": 283,
"icon": "edit",
"color": "success",
"title": "Редактирование",
"description": "Изменение склада",
"datetime": "22.08.2026 10:15"
}
],
"historiesCount": 1
}