/Pizza_shop_bot

BOT: Telegram shop-bot for Elastic Path API

Primary LanguagePythonMIT LicenseMIT

Pizza shop bot - Telegram бот магазин на основе API от Elastic Path

1. Общее описание

Телеграм бот, работающий по API CMS от Elastic Path. Это MVP версия продукта для демонстрации заказщику. В боте реализован практически весь функционал, включая список товаров, корзина, доставка, оплата; оптимизировать и причесывать можно практически до бесконечности.

2. Подготовительные работы

Для успешного запуска системы необходимо подготовить следующее:
2.1 Все работает на Python 3.8 или выше
2.2 Скопировать текущий репозиторий

git clone https://github.com/Sam1808/Pizza_shop_bot.git

2.3 Python окружение с установленными зависимостями согласно requirements.txt

pip install -r requirements.txt

2.4 Файл .env со следующим содержимым

# Данные от Elastic Path
CLIENT_ID=ваш клиент id
CLIENT_SECRET=ваш Elastic ключ
# URL API интерфейса от Elastic Path (необязательный параметр)
API_BASE_URL=https://api.moltin.com

# Токен телеграм бота полученный через Отца ботов
TELEGRAM-TOKEN=ваш токен

# Токен от Яндекса для опредлеления геолокации
YANDEX_KEY=ваш токен
# Токен системы платежей
PAYMENT_TOKEN=ваш токен

# Доступ к базе данных Redis
REDIS-BASE=полное имя базы данных
REDIS-PORT=порт базы данных
REDIS-PASSWORD=пароль к базе данных

3. Подготавливаем данные в Elastic Path для работы магазина

Для работы магазина нам нужны данные. Пришлось разработать отдельный файл методов для работы с API от Elastic Path.


Все методы собраны в файле moltin_api.py. Список реализованных методов (примеры и описание) отражен в отдельном файле.

Таким образом, для работы магазина убедитесь, что у вас пройдены следующие шаги:

  1. Получена учетная запись Elastic Path, создан store, если необходимо.
  2. Созданы товары и заполнены все обязательные поля. Включая список пиццерий addresses.json и список товаров menu.json.
  3. Вы почти на финише :)

3. Описание и запуск Telegram бота.

Телеграм бот позволяет:

  • Получить список товаров
  • Сформировать покупку в корзине, согласно опций товара
  • Отредактировать содержимое корзины
  • Создать заказ по API
  • Рассчитать расстояние до клиента
  • Направить сообщение курьеру с деталями заказа
  • Выставить счет и провести платеж за товар

Для запуска бота достаточно запустить команду:

python3 bot_tg.py

Для остановки работы бота используйте сочетание Ctrl+C.
Аргументов нет, логгинг минимальный посредством функционала Telegram.

4. Примеры

Если все шаги выполнены верно, вы получите примерно следующий результат:
fish_shop.gif

И ещё один пример:
Временно прототип бота развернут на HEROKU, можете попробовать его в действии @DialogFlow_helper_bot

5. Известные проблемы

Рекомендация: Будьте внимательны с уровнем прав доступа в Elastic Path, изучите документацию. Часть методов может не работать или работать не корректно при недостаточном уровне доступа.