Skip to content

Repository files navigation

DropShop

Drop Shop



An automated Telegram bot for monetizing digital products, providing a full order processing cycle - from balance replenishment to product delivery.

The project is designed to automate sales within Telegram without the need for a separate web interface.

The bot supports payments via Telegram Stars and CryptoBot, as well as product management, promo codes, and user management.

The project's key visual goal is to use only the built - in keyboard for navigation and interaction, minimizing chat clutter and eliminating unnecessary messages. The interface is structured to keep communication clear, manageable, and as compact as possible, ensuring a smooth user experience without overwhelming the conversation history.

Implemented Features

Store

  • Digital product sales;
  • Automatic delivery after payment;
  • Database data storage;
  • Multi-language support (RU / EN);

Admin Panel

  • Product Management;
  • User Management;
  • Payment Control;
  • View Statistics;

Promo Codes

  • Promo Code Creation;
  • Activation Limit;

Balance Top-up

  • Telegram Stars;
  • CryptoBot;

Mailing

  • Bulk messaging to users;
  • Text/media/text formatting support;

Stack

Grammy, JavaScript
Pino, Prisma, Docker

Backend

  • Node.js;
  • Grammy — Telegram Bot API framework;
  • Prisma — ORM;
  • MySql;

Infrastructure

  • Docker;
  • Docker Compose;

Payments

  • Telegram Stars;
  • CryptoBot API;

Logging

  • Pino;

Running via Docker

1. Clone the repository

git clone https://github.com/Frolov3/TelegramShop.git
cd TelegramShop

2. Create .env

  1. Create a file named .env in the root of your project.
  2. Copy the contents of .example.env into it.
  3. Fill in the variable values.
Example:
BOT_TOKEN="your_bot_token"
ADMIN_LIST=781277112,7261241736
CRYPTO_BOT_API="your_crypto_bot_token"
ADMIN_LINK="https://t.me/username"
LOG_CHANNEL_ID=-1098667344118
BUTTON_SYMBOL=ᅠ ᅠ
DB_HOST=db
DB_USER=root
DB_PASSWORD=password
DB_DATABASE=tgshop
DATABASE_URL="mysql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:3306/${DB_DATABASE}"

3. Run

docker compose up --build

Setting up chat logging and mandatory subscription

To enable chat logging and mandatory subscription verification, you need to add the bot to the relevant chat or channel and grant it administrator rights.

Adding a bot to a chat or channel

  1. Open the desired chat or channel in Telegram.
  2. Go to Chat/Channel Management.
  3. Open the Administrators section.
  4. Click Add Administrator.
  5. Select your bot and grant it the necessary rights.

Rights for mandatory subscription verification

In order for the bot to verify whether a user is subscribed to the channel, it must be granted the following rights:

Required permission What it does
Change channel info Verify mandatory subscription
Manage messages Log messages

Important

The bot must be an administrator in the chat or channel.
Without the necessary permissions, the functions may not work correctly or may be completely unavailable.


Additionally, for premium emojis to display correctly, the bot owner must have a Telegram Premium subscription.

About

An automated Telegram bot for monetizing digital products, providing a full order processing cycle - from balance replenishment to product delivery.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages