Shop bot

πŸ›’ Telegram shop bot template

368
111
Python

ShopBot

This is an example Telegram shop bot. It’s a simple and, most importantly, efficient way to place an order without leaving your favorite messenger.

What can it do?

  1. /start - needed to start the bot and choose the mode (user/admin).

  2. /menu - go to the menu.

  3. /sos - ask the administrator a question.

Menu

The user menu looks like this:

User Menu

Catalog

The catalog consists of products sorted by categories. Users can add items to their cart, and the admin has full control over catalog management (addition/removal).

Cart

The ordering process looks like this: the user goes to the πŸ›οΈ Catalog, selects the desired category, chooses products, and clicks the πŸ›’ Cart button.

cart


Then, after making sure everything is in place, proceed to checkout by clicking πŸ“¦ Place Order.

checkout

Add a Product

To add a product, select a category and click the βž• Add Product button. Then, fill out the β€œname-description-image-price” form and confirm.

add_product

Contacting Administration

To ask the admin a question, simply select the /sos command. There is a limit on the number of questions.

sos

Get started

  1. Clone this repository.

  2. Create and activate virtual enviroment:

Windows:

python -m venv venv
& venv/scripts/activate.ps1

UNIX:

python3 -m venv venv
source venv/scripts/activate
  1. Install the requirements:
pip install -r requirements.txt
  1. Create and populate .env file in the root directory. Here are the required keys (* - always required; ** - required only in production):
Key Value
BOTTOKEN (*_) To get bot token, you need create a bot via BotFather.
PROJECTNAME (**_) Name of your project on Heroku (required if you want to deploy bot on Heroku).
WEBHOOKHOST, WEBHOOK_PATH (**_) Webhook host and path.
ADMINS (**) A comma-separated string of admins IDs (e.g., 000000000,123456789). To get your Telegram ID, use Get My ID bot.

Example:

BOT_TOKEN=YOUR_BOT_TOKEN
ADMINS=123456789,000000000
  1. Run app.py:
python3 app.py