Розробка бота сповіщень у 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 робочі дні.