Управление складом
Складской контур 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 Если товара нет в ответе, проверьте по порядку:
- у номенклатуры заполнен
category_id; - остаток относится к складу, привязанному к приложению;
- свободный остаток больше нуля;
- запрос отправлен с App Token нужного приложения.
Подробный сценарий витрины, заказа и оплаты находится в разделе Интернет-магазин и приложения.
Как считается доступное количество
Складское количество хранится в inventory.quantity. Для приложения Gigma учитывает только свободный остаток:
свободное количество = количество на складе − активные резервы Резерв появляется при создании заказа и блокирует конкретную складскую позицию до expired_at. Просроченные резервы становятся неактивными, а удаление позиции из заказа освобождает её количество.
Откуда берётся цена
Источник цены задаётся в карточке склада:
is_price_from_inventories | Цена в приложении |
|---|---|
true | цена складской позиции с учётом её наценки |
false | поле price из карточки номенклатуры |
Если приложение показывает неожиданную цену, сначала проверьте склад, к которому относится остаток, и значение is_price_from_inventories.
Выберите задачу
| Задача | Раздел |
|---|---|
| Получить, создать или изменить склад | Склады |
| Настроить интеграцию склада | Интеграции склада |
| Создать или изменить остаток | Остатки и импорт |
| Загрузить накладную или массив позиций | Импорт остатков |
| Посмотреть блокировки под заказы | Резервы товаров |
Границы раздела
В складском разделе находятся только склады, остатки и резервы. Здесь не создаются карточки товаров, приложения и заказы:
- карточки и категории — в Каталоге;
- настройка приложения — в Приложениях;
- клиентский каталог и оформление заказа — в Интернет-магазине и приложениях;
- управление позициями заказа — в Заказах.
Безопасность синхронизации
Склады защищены проверкой проекта и прав сотрудника. Для операций с отдельными остатками такой проверки проекта сейчас нет на уровне контроллера: API находит запись по переданному ID.
Поэтому:
- получайте ID только из списков своего проекта;
- перед изменением или удалением сверяйте склад и номенклатуру;
- не принимайте административный
inventory.idнапрямую от клиента; - журналируйте ID записи, склад, номенклатуру и результат каждого изменения.