Управление складом

Складской контур Gigma хранит места хранения, остатки, цены и резервы. Используйте его, чтобы передать в Gigma фактическое количество товара и управлять тем, что доступно для заказа.

Этот раздел относится к API управления. Запросы выполняйте с вашего сервера и передавайте Bearer сотрудника в заголовке Authorization.

Что вы настроите

После прохождения сценария вы сможете:

  • найти склад, подготовленный для вашего проекта;
  • создать или импортировать остатки;
  • изменить цену и количество;
  • проверить, что товар доступен приложению;
  • понять, почему свободный остаток меньше складского;
  • посмотреть резервы, созданные заказами.

Перед началом

Подготовьте:

  • Bearer сотрудника;
  • ID приложения и его App Token;
  • склад, привязанный к приложению;
  • ID номенклатуры с заполненной категорией;
  • права сотрудника на работу со складами.

Склад создаёт сотрудник с правом create-warehouses или edit-warehouses; для первого запуска можно создать его в интерфейсе платформы. Для изменения и удаления нужно право edit-warehouses. Привязка склада к приложению настраивается отдельно с правом edit-applications.

Проверить привязку можно в ответе получения приложения. Общий формат URL, заголовков, пагинации и ошибок описан в правилах API.

Bearer сотрудника храните только на доверенном сервере. Не передавайте его в браузер, мобильное приложение или публичный JavaScript.

Быстрый старт

Шаг 1. Найдите склад

Получите список складов своего проекта:

GET /api/warehouses HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Accept: application/json

Сохраните warehouses[].id. Полный контракт и фильтры — в разделе Склады.

Шаг 2. Создайте остаток

Передайте ID склада и номенклатуры. Для первого запуска также задайте количество и цену:

POST /api/inventories HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Content-Type: application/json
Accept: application/json
{
	"warehouse_id": 12,
	"nomenclature_id": 340,
	"quantity": 25,
	"price": "1490.00",
	"discount": 0,
	"markup": 0
}

Сохраните inventory.id: он понадобится для чтения, обновления и удаления записи через PUT /api/inventories/{id}. Для массовой загрузки используйте POST /api/inventories/upload. Полный контракт — в разделе Остатки и импорт.

Шаг 3. Проверьте остаток

Используйте табличный метод с пагинацией:

GET /api/tables/inventories?warehouse_id[]=12&per_page=50 HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Accept: application/json

Найдите созданную позицию и сравните inventory.id, склад, цену и количество. Для синхронизации не определяйте запись только по названию товара.

Шаг 4. Проверьте приложение

Запросите каталог тем же App Token, который использует сайт или приложение:

GET /api/counterparty/products HTTP/1.1
Host: api.gigma.ru
Token: <application_token>
Accept: application/json

Если товара нет в ответе, проверьте по порядку:

  1. у номенклатуры заполнен category_id;
  2. остаток относится к складу, привязанному к приложению;
  3. свободный остаток больше нуля;
  4. запрос отправлен с App Token нужного приложения.

Подробный сценарий витрины, заказа и оплаты находится в разделе Интернет-магазин и приложения.

Как считается доступное количество

Складское количество хранится в inventory.quantity. Для приложения Gigma учитывает только свободный остаток:

свободное количество = количество на складе − активные резервы

Резерв появляется при создании заказа и блокирует конкретную складскую позицию до expired_at. Просроченные резервы становятся неактивными, а удаление позиции из заказа освобождает её количество.

Откуда берётся цена

Источник цены задаётся в карточке склада:

is_price_from_inventoriesЦена в приложении
trueцена складской позиции с учётом её наценки
falseполе price из карточки номенклатуры

Если приложение показывает неожиданную цену, сначала проверьте склад, к которому относится остаток, и значение is_price_from_inventories.

Выберите задачу

ЗадачаРаздел
Получить, создать или изменить складСклады
Настроить интеграцию складаИнтеграции склада
Создать или изменить остатокОстатки и импорт
Загрузить накладную или массив позицийИмпорт остатков
Посмотреть блокировки под заказыРезервы товаров

Границы раздела

В складском разделе находятся только склады, остатки и резервы. Здесь не создаются карточки товаров, приложения и заказы:

Безопасность синхронизации

Склады защищены проверкой проекта и прав сотрудника. Для операций с отдельными остатками такой проверки проекта сейчас нет на уровне контроллера: API находит запись по переданному ID.

Поэтому:

  • получайте ID только из списков своего проекта;
  • перед изменением или удалением сверяйте склад и номенклатуру;
  • не принимайте административный inventory.id напрямую от клиента;
  • журналируйте ID записи, склад, номенклатуру и результат каждого изменения.