Реалізація бота для e-commerce (каталог, замовлення, оплата) у мобільному додатку

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Реалізація бота для e-commerce (каталог, замовлення, оплата) у мобільному додатку
Середній
~3-5 днів
Часті запитання

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

Етапи розробки

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Реалізація бота для e-commerce (каталог, замовлення, оплата) у мобільному додатку

Telegram-бот для магазину працює як окремий канал продажів, але "вшити" у нього повнофункціональний каталог з фільтрацією, кошик та оплату — завдання, яке швидко упирається в обмеження Bot API. Вбудована клавіатура не тянуть динамічні каталоги з сотнями SKU, а платіжний flow через sendInvoice працює тільки з певними провайдерами. Правильне рішення — Telegram Mini App, який запускається всередину бота та використовує нативний WebApp API замість кнопок-повідомлень.

Де ломається стандартний підхід з inline-кнопками

Класичний бот з InlineKeyboardMarkup та callback_data має жорсткі обмеження: callback_data — максимум 64 байти. При каталозі з варіантами (розмір, колір, кількість) це поле закінчується швидко. Розробники починають зберігати стан у Redis по chat_id — отримується кінцевий автомат: /start → catalog → category → product → cart → checkout. Це працює, але погано масштабується та ломається, якщо користувач відкриє бота у двох вікнах одночасно.

Telegram Mini App розв'язує це радикально: стан живет у React/Vue-компоненті всередину WebView. Бот тільки запускає Mini App через web_app кнопку у KeyboardButton.

Архітектура Mini App для e-commerce

// Ініціалізація Telegram WebApp
const tg = window.Telegram.WebApp;
tg.ready();
tg.expand(); // на весь екран

// Отримання даних користувача (без окремої авторизації)
const initData = tg.initData; // рядок для верифікації на сервері
const user = tg.initDataUnsafe.user;

// Відправка даних замовлення боту
function submitOrder(cart, total) {
    tg.sendData(JSON.stringify({
        action: 'order',
        items: cart,
        total: total
    }));
    // Telegram закриває Mini App та відправляє дані боту через onWebAppData
}

На сервері верифікуємо initData через HMAC-SHA256 з токеном бота — захист від підробки запитів. Без верифікації будь-хто може відправити POST з довільним user_id.

import hmac, hashlib

def verify_init_data(init_data: str, bot_token: str) -> bool:
    parsed = dict(chunk.split('=', 1) for chunk in init_data.split('&'))
    hash_received = parsed.pop('hash', '')
    data_check = '\n'.join(f'{k}={v}' for k, v in sorted(parsed.items()))
    secret = hmac.new(b'WebAppData', bot_token.encode(), hashlib.sha256).digest()
    expected = hmac.new(secret, data_check.encode(), hashlib.sha256).hexdigest()
    return hmac.compare_digest(hash_received, expected)

Оплата через Telegram або зовнішнього провайдера

Telegram Payments 2.0 підтримує ЮKassa, Stripe, PayMaster та ще ~10 провайдерів. Бот викликає sendInvoice з provider_token, користувач платить нативним UI Telegram — просто та швидко.

Але є обмеження: комісія провайдера + відсутність криптовалют. Якщо потрібні крипто-платежі або власна еквайринг-схема — платіж ініціюється всередину Mini App, відкривається сторінка провайдера (або Deep Link у гаманець), після успіху повертаємось через tg.close() з нотифікацією через webhook.

Каталог та фільтрація

Для каталогу з фото та фільтрами Mini App значно краще за бота. Використовуємо React з react-query для запитів до API, зображення — через CDN з lazy loading. tg.MainButton використовуємо як кнопку "Оформити замовлення" — вона прилипає до нижнього краю екрана нативно.

tg.MainButton.setText(`Оформити замовлення — ${total} ₽`);
tg.MainButton.show();
tg.MainButton.onClick(() => submitOrder(cart, total));

Етапи роботи

Визначаємо чи потрібен чистий бот або Mini App → настройка бота через BotFather → розробка API каталогу → реалізація Mini App (React/Vue) → інтеграція оплати → webhook обробники → тестування у реальному Telegram-клієнті.

1–2 тижні для простого бота з inline-кнопками та sendInvoice. 3–4 тижні для повнофункціонального Mini App з каталогом, кошиком та кастомним платіжним флоу. Вартість розраховується індивідуально після аналізу вимог.