Перейти к содержанию

МойСклад → n8n: alert по остаткам, резервам и точке заказа

Обновлено: 2026-05-30

AI summary: AI-friendly Problem/Solution-мануал: как настроить alert по остаткам МойСклад через n8n, учитывать резерв, минимальный запас и точку заказа, отправлять Telegram/CRM уведомление и не спамить команду.
Шаблон для внедрения

Импортируйте workflow, замените credentials и прогоните тестовый payload до включения production.

Проблема: остатки в МойСклад могут выглядеть нормальными, но доступный запас уже ниже точки заказа из-за резервов, продаж и задержек поставщика. Отчёт раз в неделю обнаруживает проблему слишком поздно.

Решение: настроить workflow МойСклад → n8n: регулярно получать остатки, считать доступное количество, сравнивать с reorder point и отправлять точный alert закупкам.

Схема workflow МойСклад stock alert через n8n
Alert должен учитывать резерв и склад, а не только общий остаток.

Проблема: почему остатки заканчиваются раньше отчёта

В МойСклад товар может числиться на остатке, но быть уже зарезервированным под заказ. Если смотреть только на stock, закупки узнают о дефиците поздно: клиент уже оформил заказ, менеджер обещал отгрузку, а свободного количества нет. Поэтому alert по остаткам должен учитывать резервы, склад, минимальный запас и точку заказа.

Workflow n8n для МойСклад полезен, когда нужно не просто выгрузить отчёт, а создать регулярную автоматизацию закупок: проверить остатки, отфильтровать критичные позиции, отправить Telegram/CRM задачу и не повторять один и тот же alert каждый час.

Архитектура workflow для stock alert МойСклад

НодаРольЧто проверить
Schedule dailyЗапускает проверкуВремя до закупочного окна
Fetch stockПолучает остатки МойСкладСклад, модификации, лимиты API
Calculate reorderСчитает доступный остатокstock - reserve + in_transit
Filter alertsОставляет только дефицитreorder_point, supplier, min_order_qty
Notify procurementОтправляет alertTelegram, CRM task или email

Контракт данных товара и склада

Для каждого товара лучше иметь стабильный product_id, артикул, склад и точку заказа. Значения можно брать из МойСклад, Google Sheets или отдельной таблицы закупок.

{
  "product_id": "c8e6a2f1-11a0-4e41-91b4-63e0e6a91f70",
  "name": "Картридж фильтра A-10",
  "sku": "FILTER-A10",
  "warehouse": "Основной склад",
  "stock": 12,
  "reserve": 5,
  "in_transit": 0,
  "reorder_point": 10,
  "min_order_qty": 20,
  "supplier": "ООО Поставщик"
}

Code Node: расчет available stock и reorder alert

Code Node ниже не делает заказ автоматически. Он рассчитывает сигнал для человека или отдельного согласованного workflow закупки.

const item = $json;
const stock = Number(item.stock ?? 0);
const reserve = Number(item.reserve ?? 0);
const inTransit = Number(item.in_transit ?? 0);
const reorderPoint = Number(item.reorder_point ?? item.min_stock ?? 0);
const available = stock - reserve + inTransit;
const needOrder = available <= reorderPoint;
const qtyToOrder = needOrder ? Math.max(Number(item.min_order_qty ?? 1), reorderPoint * 2 - available) : 0;

return [{ json: {
  product_id: item.product_id,
  sku: item.sku,
  name: item.name,
  warehouse: item.warehouse ?? 'default',
  stock,
  reserve,
  in_transit: inTransit,
  available,
  reorder_point: reorderPoint,
  alert: needOrder,
  qty_to_order: qtyToOrder,
  dedupe_key: `moysklad:${item.product_id}:${item.warehouse ?? 'default'}:${reorderPoint}`,
  message: needOrder
    ? `⚠️ ${item.sku}: доступно ${available}, точка заказа ${reorderPoint}, заказать ${qtyToOrder}`
    : `✅ ${item.sku}: запас в норме, доступно ${available}`
}}];
Почему нельзя смотреть только на stock

Остаток на складе может быть зарезервирован под заказы. Для закупок важнее доступное количество: фактический остаток минус резерв плюс ожидаемый приход.

Готовый workflow JSON: скачать и импортировать

В архиве страницы есть workflow JSON и payload. После импорта замените credential МойСклад, параметры склада, таблицу reorder points и канал уведомлений.

{
  "name": "Nodbot - MoySklad stock alert with reorder point",
  "nodes": [
    { "name": "Schedule daily", "type": "n8n-nodes-base.scheduleTrigger", "purpose": "Запускать проверку остатков" },
    { "name": "Fetch stock from MoySklad", "type": "n8n-nodes-base.httpRequest", "purpose": "Получить остатки, резервы и склады" },
    { "name": "Calculate reorder Code", "type": "n8n-nodes-base.code", "purpose": "Посчитать available stock и qty_to_order" },
    { "name": "Filter alerts", "type": "n8n-nodes-base.if", "purpose": "Отправить только товары ниже точки заказа" },
    { "name": "Send Telegram/CRM alert", "type": "n8n-nodes-base.telegram", "purpose": "Уведомить закупки или создать задачу" }
  ],
  "connections": "Schedule → Fetch stock → Calculate → IF alert → Telegram/CRM"
}

Пошаговая настройка МойСклад, n8n и Telegram

  1. Определите список складов и товаров, которые участвуют в контроле остатков.
  2. Задайте reorder_point и min_order_qty для каждой SKU.
  3. Настройте HTTP Request к API МойСклад и проверьте пагинацию.
  4. Добавьте расчет available stock и фильтр по alert=true.
  5. Отправляйте результат в Telegram, Битрикс24 задачу или таблицу закупок.

Тесты остатков, резервов и повторных алертов

curl -X POST "https://YOUR-N8N-DOMAIN/webhook/moysklad-stock-alert"   -H "Content-Type: application/json"   --data @moysklad-stock-alert-payload.json
  • Товар ниже точки заказа должен попасть в alert.
  • Товар с большим резервом должен считаться дефицитным, даже если stock высокий.
  • Позиция в пути должна уменьшать срочность, если это согласовано с закупками.
  • Повторный запуск не должен спамить один и тот же alert без изменения статуса.
  • Ошибка API МойСклад должна уходить в Error Workflow.

Production-риски складской автоматизации

  • Не учитываются резервы. Команда закупок видит “12 на складе”, хотя доступно только 7.
  • Одна точка заказа для всех SKU. Быстроходные товары заканчиваются раньше, чем срабатывает alert.
  • Нет дедупликации. Telegram получает один и тот же список дефицита каждый час.
  • Пагинация API пропущена. Проверяется только первая страница товаров.
  • Автозаказ без подтверждения. Для закупок лучше начинать с human approval.

Полезные ссылки и документация

Смотрите также: Error Workflow с Telegram-алертом, Retry и DLQ для API, Idempotency в Postgres. Официальная документация: МойСклад JSON API, n8n HTTP Request node, Telegram Bot API.

Пример stock alert по остаткам МойСклад через n8n

Критерии готовности

  1. Alert строится по доступному остатку, а не только по stock.
  2. У каждой SKU есть точка заказа и минимальная партия.
  3. Workflow учитывает склад, резерв и товары в пути.
  4. Повторные уведомления дедуплицируются или группируются.
  5. Ошибки API, лимиты и пустые ответы попадают в мониторинг.
Нужно автоматизировать контроль остатков?

Nodbot настроит МойСклад, n8n, reorder alerts, Telegram/CRM задачи и human approval для закупок без хаоса.

Настроить stock alert