Code Monkey home page Code Monkey logo

myshopbot's Introduction

Простой телеграм-магазин с админ панелью

Общий функционал

  • Команда /getme для вывода ид, чат-ид, имени и фамилии.
  • Каждый посетитель может просматривать товары на витрине.
  • Товар можно сразу купить, либо сохранить в корзину.
  • В корзине предусмотренна возможность прибавлять, убавлять или удалять товар.
  • Оформление заказа происходит при отправке контакта.
Список товаров Товар в корзине Оформление заказа
shopbot shopbot shopbot

Функционал в админ панели

  • Каждый аттрибут товара возможно отредактировать на свое усмотрение.
  • Любой товар можно убрать с витрины, чтобы клиенты его не видели.
  • Сами клиенты сохраняются в отдельном спике.
  • Когда клиент оплачивает заказ, кнопки для взаимодействия с заказом исчезают.
  • Есть возможность получить ID картинки, чтобы сохранить в БД.
  • Уведомление админов при успешном оформление заказа клиентом.
Товары Клиенты Заказы
shopbot shopbot shopbot

Первоначальные настройки

Настройка БД

# сформировать схему базы
alembic revision --autogenerate
# миграция схемы
alembic upgrade <Номер>

Настройка файла конфигурации

Файл конфигурации находится в корневой директории и называется config.py.

TOKEN = 'Здесь ваш токен'
DB_FILENAME = 'shop.db'
ADMIN = [333333333,] # вместо 333333333 напишите свой ИД, чтобы войти в админку. Чтобы узнать свой ИД, читайте ниже.
CURRENCY = 'руб.' # Валюта по умолчанию, которая будет сохраняться в БД
CALLBACK_CHAT_NOTIFICATION = [333333333,] # вместо 333333333 напишите свой ИД, чтобы получать уведомления от бота о заказах.

Первый запуск

При первом запуске бота необходимо узнать свой ИД, чтобы работать в админке. Для этого есть команда - /getme.

Запуск бота от админа

После всех манипуляций с настройками следует послать команду - /start. Только тогда можно будет увидеть кнопку перехода в админ панель.

myshopbot's People

Contributors

antonglyzin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

myshopbot's Issues

I am facing problems when it comes to requesting data from database.

I ran bot.py and got this error message.

2022-11-01 16:55:20,044 (__init__.py:964 MainThread) ERROR - TeleBot: "Infinity polling exception: (sqlite3.OperationalError) no such table: product
[SQL: SELECT product.id AS product_id, product.title AS product_title, product.photo AS product_photo, product.description AS product_description, product.price AS product_price, product.currency AS product_currency, product.quantity AS product_quantity, product.is_active AS product_is_active 
FROM product 
WHERE product.is_active = 1]
(Background on this error at: https://sqlalche.me/e/14/e3q8)"
2022-11-01 16:55:20,044 (__init__.py:966 MainThread) ERROR - TeleBot: "Exception traceback:
Traceback (most recent call last):
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\engine\base.py", line 1900, in _execute_context
    self.dialect.do_execute(
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\engine\default.py", line 736, in do_execute
    cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: product

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 959, in infinity_polling
    self.polling(non_stop=True, timeout=timeout, long_polling_timeout=long_polling_timeout,
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 1047, in polling
    self.__threaded_polling(non_stop=non_stop, interval=interval, timeout=timeout, long_polling_timeout=long_polling_timeout,
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 1122, in __threaded_polling
    raise e
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 1078, in __threaded_polling
    self.worker_pool.raise_exceptions()
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\util.py", line 154, in raise_exceptions
    raise self.exception_info
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\util.py", line 98, in run
    task(*args, **kwargs)
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\telebot\__init__.py", line 6084, in _run_middlewares_and_handler
    result = handler['function'](message, bot=self)
  File "D:\A new bot\myshopbot-main\handlers.py", line 88, in shop_list_product
    query = session.query(Product).filter(Product.is_active).all()
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\orm\query.py", line 2772, in all
    return self._iter().all()
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\orm\query.py", line 2907, in _iter
    result = self.session.execute(
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\orm\session.py", line 1714, in execute
    result = conn._execute_20(statement, params or {}, execution_options)
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\engine\base.py", line 1705, in _execute_20
    return meth(self, args_10style, kwargs_10style, execution_options)
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\sql\elements.py", line 333, in _execute_on_connection
    return connection._execute_clauseelement(
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\engine\base.py", line 1572, in _execute_clauseelement
    ret = self._execute_context(
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\engine\base.py", line 1943, in _execute_context
    self._handle_dbapi_exception(
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\engine\base.py", line 2124, in _handle_dbapi_exception
    util.raise_(
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\util\compat.py", line 208, in raise_
    raise exception
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\engine\base.py", line 1900, in _execute_context
    self.dialect.do_execute(
  File "C:\Users\Shahriyor (10G)\AppData\Local\Programs\Python\Python310\lib\site-packages\sqlalchemy\engine\default.py", line 736, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: product
[SQL: SELECT product.id AS product_id, product.title AS product_title, product.photo AS product_photo, product.description AS product_description, product.price AS product_price, product.currency AS product_currency, product.quantity AS product_quantity, product.is_active AS product_is_active 
FROM product 
WHERE product.is_active = 1]
(Background on this error at: https://sqlalche.me/e/14/e3q8)

What should I do?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.