Что это
Под названием Shopify Inventory API здесь собраны операции учета остатков Shopify. InventoryItem описывает складскую позицию, Location - место хранения, а InventoryLevel связывает их и содержит количества в разных состояниях. Это часть Admin API, не отдельная нейросеть.
Важно отличать физическое количество on_hand от доступного к продаже available и уже зарезервированного committed. Сводка без состояния и локации может вводить в заблуждение даже при правильном числе. Идентификатор товара, варианта и складской позиции тоже нельзя подменять друг другом.
Новые интеграции стройте на GraphQL. Старые примеры InventoryLevel через REST относятся к legacy-интерфейсу и прежним версиям. Первым полезным результатом сделайте отчет чтения, а не автоматическое исправление остатков.
Ключевые параметры
- Категория: Операционные задачи
- Сложность: Для разработчика
- Запуск: Проектное внедрение
- Open-source: Нет
- Данные: Не известно
- Чувствительные данные: Только с настройками
Сильные стороны
- InventoryLevel хранит количества по конкретной складской позиции и локации.
- Можно выбрать состояния остатков, нужные для отчета.
- read_inventory позволяет начать без права изменения количества.
- GraphQL связывает идентификаторы позиций, локаций и количества в одном запросе.
Ограничения
- Нужно понимать различия состояний остатков и идентификаторов.
- Неактивная позиция или неполная пагинация может дать неполный отчет.
- Изменения количества требуют отдельной защиты от повторов и конфликтов.
- API отражает учет Shopify, а не подтверждает физическое наличие товара.
Как использовать
1. Подготовка. В development store создайте учебный товар с включенным учетом остатков и задайте количество в выбранной локации. Запишите SKU и ожидаемые значения. Создайте приложение в Dev Dashboard, установите его с read_inventory; не выдавайте write_inventory для отчета.
2. Настройка. Получите access token через подходящий OAuth-процесс. Client credentials grant подходит только приложению и магазину одной Shopify organization. Используйте endpoint /admin/api/2026-10/graphql.json и заголовок X-Shopify-Access-Token, храните секреты на сервере.
3. Первый результат. Выполните GraphQL query: { inventoryItems(first: 3) { nodes { id sku tracked inventoryLevels(first: 3) { nodes { location { id name } quantities(names: ["available", "on_hand", "committed"]) { name quantity } } pageInfo { hasNextPage endCursor } } } pageInfo { hasNextPage endCursor } } }. Составьте строки SKU, локация, состояние, количество; запрос ничего не меняет.
4. Проверка. Сверьте учебную позицию с остатками Shopify для той же локации и того же состояния. Проверьте errors, tracked и pageInfo обеих вложенных выборок: три записи не означают весь склад. Нулевое available и отсутствие InventoryLevel - разные ситуации. Для рабочих изменений отдельно проверьте актуальные mutations, их требования к идемпотентности и журнал операций.
Примеры сценариев
- Сверить available одного SKU по двум локациям.
- Показать позиции с низким доступным остатком.
- Вывести расхождения между учетной выгрузкой и проверкой оператором.
Доступ и оплата
- Модель оплаты: Платно
- Работа в РФ: Нужно проверять
- VPN: Не известно
- Русский интерфейс: Не известно
- Русский язык: Не известно
Доступ к остаткам определяется установкой приложения и scopes магазина. Бесплатное тестовое окружение не означает бесплатную эксплуатацию магазина. Условия доступности и оплаты из России здесь не подтверждены.
Когда не подходит
- Предсказывать спрос без отдельной аналитики
- Считать available физическим остатком склада
- Перезаписывать остатки по неполной выгрузке
Альтернативы
Shopify Admin API описывает общую интеграцию магазина. Odoo External API подходит для учета Odoo, WooCommerce REST API - для магазина WooCommerce. При переносе проверьте значения состояний: одинаковое имя поля не гарантирует одинаковый учет.