Разработка бота уведомлений в Telegram об изменении цен поставщиков

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

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Разработка бота уведомлений в Telegram об изменении цен поставщиков
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Разработка бота уведомлений в Telegram об изменении цен поставщиков

Бот отслеживает цены поставщиков (через API, парсинг или загрузку прайс-листов) и немедленно уведомляет ответственных об изменениях, требующих реакции: рост цены, появление позиций в дефиците, изменение условий.

Логика отслеживания

class SupplierPriceMonitor
{
    public function checkChanges(Supplier $supplier): void
    {
        $newPrices = $this->fetchPrices($supplier);

        foreach ($newPrices as $sku => $newPrice) {
            $oldPrice = SupplierPrice::where([
                'supplier_id' => $supplier->id,
                'sku'         => $sku,
            ])->value('price');

            if ($oldPrice === null) continue;  // новая позиция — не уведомляем

            $changePercent = abs($newPrice - $oldPrice) / $oldPrice * 100;

            if ($changePercent >= config('suppliers.notify_threshold_percent', 5)) {
                $this->notify($supplier, $sku, $oldPrice, $newPrice, $changePercent);
            }

            SupplierPrice::updateOrCreate(
                ['supplier_id' => $supplier->id, 'sku' => $sku],
                ['price' => $newPrice, 'checked_at' => now()]
            );
        }
    }

    private function notify(Supplier $supplier, string $sku, float $old, float $new, float $pct): void
    {
        $arrow     = $new > $old ? '📈' : '📉';
        $direction = $new > $old ? 'вырос' : 'снизился';

        $message = "{$arrow} <b>Цена {$direction}</b>\n\n" .
                   "Поставщик: {$supplier->name}\n" .
                   "SKU: <code>{$sku}</code>\n" .
                   "Было: " . number_format($old, 2) . " ₽\n" .
                   "Стало: " . number_format($new, 2) . " ₽\n" .
                   "Изменение: <b>" . round($pct, 1) . "%</b>";

        $this->telegram->sendToChannel(config('telegram.pricing_channel'), $message);
    }
}

Порог уведомления (5% по умолчанию) настраивается в конфигурации. Проверка запускается по расписанию через Cron/Celery Beat.

Время реализации: 2–3 рабочих дня.