Товар кончился, а узнали от покупателя: как это убрать
Система читает остатки из 1С, учётной программы или таблицы и пишет закупщику в мессенджер до того, как полка опустеет, с предложением, сколько заказать. Минимум считается по реальным продажам и сезону, остатки должны быть точными, а решение о закупке остаётся за человеком.
Как узнают о пустой полке
Обычная история: покупатель спрашивает ходовую позицию, продавец идёт смотреть и возвращается с виноватым лицом. Товара нет уже третий день. Закупщик об этом не знал: в 1С он заглядывает раз в неделю, когда садится делать заказ.
Пока позиций пятьдесят, закупщик держит остатки в голове. На пятистах голова перестаёт справляться. Кончается то, о чём он не подумал. Клиент уходит к соседу, и это ещё не худший вариант. Хуже, когда он приходит второй раз, снова видит пустую полку и больше не возвращается.
Почему так получается
Остаток в базе есть, но он лежит и молчит. Чтобы увидеть, что позиция на исходе, человек должен сам открыть отчёт, отфильтровать и сравнить с тем, сколько обычно продаётся. Это откладывают, пока не горит.
Второй момент в том, что «мало» у каждого товара своё. Двадцать банок краски на складе строительного магазина это неделя продаж, а двадцать бутылок воды в летнюю жару в кафе это один день. Общее правило «ниже десяти штук тревога» ломается на первой же позиции. Нужен свой минимум под каждый товар.
Как это работает
Схема короткая. Раз в день, а для быстрых товаров раз в несколько часов, скрипт забирает остатки. Из 1С это делается через HTTP-сервис, из учётной программы через её API или выгрузку, из таблицы напрямую. Дальше сравнение: остаток ниже минимума, значит, позиция попадает в список.
Закупщик получает в Telegram или MAX одно сообщение на все позиции. В нём позиции, у которых остаток упал ниже порога, с цифрами: сколько лежит, сколько продаётся в день, на сколько дней хватит и сколько заказать. Рядом кнопки «Беру в заявку» и «Отложить на три дня». Если закупщик нажимает первую, позиция уходит в черновик заявки, который дальше идёт на согласование, как обычно у вас принято.
Пример сообщения: «Клей плиточный 25 кг: осталось 18 мешков, продаётся 6 в день, хватит на 3 дня. Срок поставки 5 дней. Предлагаю заказать 60». Закупщик видит суть за пять секунд и решает.
Как считать минимум и сколько заказывать
Базовая формула старая и рабочая. Минимальный остаток равен средней дневной продаже, умноженной на срок поставки в днях, плюс страховой запас на случай, если поставщик задержит или спрос подскочит. Рекомендуемый заказ считается до нужного вам запаса, например на две недели вперёд, минус то, что уже лежит и едет к вам.
Прикидка на цифрах, они условные. Продаётся 6 штук в день, поставка идёт 5 дней, страховой запас три дня. Минимум получается 6 × 5 + 6 × 3 = 48 штук. Как только остаток упал до 48, бот пишет закупщику. Если ждать «когда кончится», то есть до нуля, поставка придёт на пять дней позже пустой полки.
Среднюю продажу берут из истории за последние недели или месяцы. Для товаров с сезоном её надо считать по тому же периоду прошлого года. Для большей точности к расчёту подключают прогноз, я писал про него в статье про ИИ-прогноз спроса для закупок. Начать можно с простой формулы, она закрывает большую часть дыр.
Что важно учесть
Мусор на входе даёт мусор на выходе. Если в 1С остаток минус пять, потому что кассиры пробивают товар раньше прихода накладной, бот начнёт кричать по всем таким позициям, и закупщик через неделю его отключит. Прежде чем включать уведомления, надо проверить, что остатки в источнике совпадают с полкой хотя бы по ходовым позициям. Если магазинов несколько и остатки живут в разных местах, сначала стоит свести их, как в материале про единый учёт остатков по точкам.
Минимум надо пересматривать. Он посчитан по продажам за прошлые месяцы, а спрос меняется: сезон, акция, новый конкурент за углом. Раз в месяц имеет смысл пробежаться по топ-50 позиций и поправить пороги.
Бот не знает того, что знает закупщик: что поставщик закрывается на ремонт, что на позицию через неделю выйдет замена или что клиент уже забронировал партию. Поэтому в сообщении стоит предложение, а не заказ. Закупщик его принимает, правит или отклоняет. Если автоматически заказывать у поставщика без человека, первая же ошибка в остатках превратится в реальную закупку на реальные деньги.
Товары, которые продаются раз в квартал, и позиции под заказ по этой схеме не считаются. Порог для них не имеет смысла.
Что можно сделать уже сейчас
Первое. Выберите 20 самых ходовых позиций и выгрузите продажи за последние три месяца. Посчитайте среднюю дневную продажу и запишите срок поставки по каждой у своего поставщика.
Второе. Выведите по этим позициям минимум по формуле выше и проверьте на живых остатках. Сколько из них уже ниже порога? Обычно находятся две-три позиции, о которых вы бы не вспомнили до пустой полки.
Третье. Проверьте, что остаток в системе по этим 20 позициям совпадает с реальным. Сходите на склад и пересчитайте. Если расхождение больше пары процентов, сначала чините учёт, потом автоматизацию.
Четвёртое. Договоритесь с закупщиком, в каком мессенджере и в какое время ему удобно получать сводку. Если она приходит утром до звонков поставщикам, она работает. Если вечером, когда всё уже заказано, её никто не открывает. Про формат таких сводок есть материал про отчёт из 1С в мессенджер.
Частые вопросы
Работает ли это без 1С?
Да. Остатки можно брать из МойСклад, из другой учётной программы или из обычной таблицы, если она ведётся аккуратно. Главное условие одно: остаток должен обновляться в момент продажи и прихода, а не раз в месяц.
Сколько уведомлений в день придёт закупщику?
Одно сводное сообщение утром. Срочные позиции, где остатка меньше чем на день продаж, помечаются отдельно и могут приходить сразу. Если бот пишет по десять раз в день, значит, пороги выставлены неверно, и их надо править.
Может ли бот сам оформить заказ поставщику?
Технически может, но я так делать не советую. Пока остатки неидеальны и закупщик знает то, чего нет в базе, решение лучше оставлять человеку. Бот готовит черновик, человек нажимает кнопку.
Коротко о главном
Пустая полка чаще всего появляется потому, что закупщик вовремя не увидел цифру, которая давно лежала в базе. Уведомление с предложением количества закрывает именно это: он узнаёт заранее и принимает решение спокойно. Для этого нужен свой минимум по каждой позиции и остатки, которым можно верить.
Хотите, чтобы ваш закупщик узнавал о нехватке до покупателя? Напишите мне в Telegram слово «НЕХВАТКА». Посмотрим, откуда брать остатки, как посчитать пороги по вашим продажам и что придёт закупщику в сообщении. Возможные форматы и стоимость обсудим отдельно, ориентиры по ценам есть на странице цен, а под ваш случай подготовлю Telegram-бота.
Что я делаю для бизнеса
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»
12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.
Готовы обсудить вашу задачу?
Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


