Данный проект позволяет с помощью бота покупать пиццу в телеграме.
Ознакомиться с работой бота можете по ссылке.
Для данного проекта необходим Python3.6 (или выше).
Создадим виртуальное окружение в корневой директории проекта:
python3 -m venv env
После активации виртуального окружения установим необходимые зависимости:
pip install -r requirements.txt
Также заранее создадим файл .env в директории проекта.
Создаем магазин на сайте Elasticpath
Зарегистрируйтесь как разработчик на сайте Elasticpath и создайте магазин.
Для телеграм бота потребуются Client ID и Client Secret, запишите их в .env:
ELASTICPATH_CLIENT_SECRET=
ELASTICPATH_CLIENT_ID=
Вам также необходимо задать время жизни токена доступа к магазину, который автоматически будет получать бот в процессе своей работы, на текущий момент в документации указано, что время жизни токена равно 1 часу. Поэтому укажите время в секундах равное 1 часу или менее:
TOKEN_LIFETIME=
Для загрузки товаров предусмотрен специальный файл add_data_to_store.py. Загружать товары и создавать модели (в магазине они называются flow) будем поэтапно. Для каждого действия необходимо указывать свой аргумент:
- Создание
flowи егоfields. Для первого передаём название, для второго названиеjson-файлав папкеFields for flow:
python add_data_to_store.py --flow='pizzeria --fields='pizzeria_fields.json'
python add_data_to_store.py --flow='customer address' --fields='cusmomer_address_fields.json'
- Создадим
Price bookи валютуRUBдля нашей пиццерии (Важно!!! запишите полученныйIDв.envфайлPRICE_BOOK_ID=):
python add_data_to_store.py --price_book
- Добавим данные о товарах в магазин (Важно!!! после добавления не забудьте связать их с каталогом в личном кабинете магазина):
python add_data_to_store.py --menu
- Добавим адреса магазинов в нашу созданную модель
Pizzeria:
python add_data_to_store.py --address
Напишите отцу ботов для создания телеграм бота.
Запишите его токен в .env:
PIZZERIA_BOT_TG_TOKEN=
Также для работы бота необходимо получить токен оплаты. У BotFather командой /mybots выбрать вашего бота, а затем выбрать Payments и получить токен у отдельного банка. Запишите его в .env:
PAYMENT_TOKEN=
Регистрируемся на Redis и заводим себе удаленную базу данных. Для подключения к ней вам понадобятся host, port и password. Запишите их в файле .env:
REDIS_HOST=
REDIS_PORT=
REDIS_PASSWORD=
Для функционирования проекта вам потребуется получить ключ API Яндекс-геокодера, перейдите по ссылке и получите API-ключ, выбрав JavaScript API и HTTP Геокодер. После получения ключа, запишите его в .env:
YANDEX_GEOCODER_APIKEY=
Вы можете ограничить или же увеличить количество отображаемых товаров в меню:
PRODUCTS_PER_PAGE=
Бот запускается командой
python bot.py