Новые маршруты цифровой эволюции
Заказать проект✦
Ретейл

Магазин цифровых товаров в Telegram

Каталог, корзина и онлайн-оплата для магазина игровой валюты. Управление ассортиментом — в Google Таблице.

11методов API для каталога, корзины, заказов и оплаты
6таблиц данных: категории, товары, корзины, позиции корзин, заказы, позиции заказов
2фоновые задачи: синхронизация каталога и резервное копирование
3внешние интеграции: мессенджер, таблицы и облачный диск, платёжный сервис

Контекст и задача

Интернет-магазин игровой валюты и цифровых товаров принимал заказы через личную переписку. Ассортимент хранился в таблице, а продавец вручную уточнял состав покупки и сверял оплату. Даже простой заказ требовал его участия.

Мы разработали мини-приложение в Telegram, чтобы покупатель мог самостоятельно выбрать товары, собрать корзину и перейти к оплате. Продавцу нужно получить состав оплаченного заказа и контакт покупателя для выдачи товара. Управление каталогом при этом должно остаться в привычной Google Таблице.

Исследование

Разобрали путь от выбора товара до оплаты, структуру каталога и сведения, необходимые продавцу для выдачи покупки. Определили, как связать заказ с результатом платежа и какие уведомления нужны обеим сторонам.

Таблицу сохранили единым источником ассортимента. Для покупателя предусмотрели вход через аккаунт Telegram без отдельной регистрации. Выдачу цифрового товара оставили за продавцом: мини-приложение организует выбор и оплату, а уведомление передаёт ему данные для выполнения заказа.

Решение

От каталога до оплаты

Покупатель открывает витрину из бота, выбирает категорию и видит карточки товаров с изображением, описанием и ценой. В корзине можно изменить количество, удалить позиции и проверить итоговую сумму.

Из корзины создаётся заказ, после чего покупатель переходит на страницу платёжного сервиса. При возврате мини-приложение показывает результат оплаты. Успешный платёж запускает два уведомления: покупатель получает контакт продавца, а продавец — номер заказа, сумму, состав покупки и контакт клиента. Если платёж не прошёл, бот предлагает повторить попытку.

Ассортимент в Google Таблице

Администратор редактирует привычную таблицу: категории, названия, описания, цены и изображения. Каталог приложения синхронизируется с ней каждые 10 минут. Изображения сохраняются на сервере, а удалённые из таблицы позиции исчезают из каталога.

Связь заказа и платежа

Серверная часть хранит каталог, корзины и заказы. Для заказа создаётся уникальный ключ, по которому формируется счёт в платёжном сервисе. Уведомление о результате платежа запускает сообщения в Telegram. Для базы данных настроено ежедневное резервное копирование.

Технологии

Витрина построена на React и TypeScript и открывается как Telegram Mini App. Python и FastAPI обеспечивают серверную часть, PostgreSQL хранит данные. Google Sheets API и Google Drive API связывают приложение с каталогом, Cardlink API — с оплатой, aiogram — с ботом и уведомлениями.

PythonFastAPISQLAlchemyAlembicPostgreSQLAPScheduleraiogramTelegram Mini AppsGoogle Sheets APIGoogle Drive APICardlink APIReactTypeScriptViteRedux ToolkitMUIDockerGitLab CI

Результат

Разработаны витрина с синхронизацией каталога, корзина, оформление заказа, онлайн-оплата и уведомления покупателю и продавцу. Решение развёрнуто на тестовом контуре.

Путь покупки собран в одном мини-приложении: от просмотра ассортимента до передачи продавцу данных об оплаченном заказе. Для управления каталогом используется Google Таблица, а выдача цифрового товара остаётся за продавцом.

Проект находится в доработке перед промышленным запуском.