Склады

Склад объединяет адрес хранения, единицу вместимости, владельца и настройки цены. Остатки относятся к складу по 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
}