Как реализовать корзину в Телеграм боте на python

Всем привет, хотел бы узнать, как можно сделать добавление товара в корзину. В боте есть карусель товаров и кнопка -«Добавить в корзину». Вот вопрос — как давать понять боту на каком товаре находиться пользователь в этой карусели, чтобы по нажатию на эту кнопку данные о товаре уходили в БД? Библиотека Aiogram.

async def ecuador(call:types.CallbackQuery): kb = InlineKeyboardMarkup(row_width=2) next = InlineKeyboardButton(text= ‘Следующий’,callback_data= ‘next_1’) previous = InlineKeyboardButton(text= ‘Предыдущий’,callback_data= ‘previous_1’) add = InlineKeyboardButton(text= ‘Добавить в корзину’,callback_data= ‘add’) kb.add(previous,next,add) back = InlineKeyboardButton(text= ‘Назад’,callback_data= ‘back’) kb.add(back) await bot.send_photo( chatId, photo = current_photo, caption=’Название: ‘+ current_item +’nnЦена: ‘+ current_price, reply_markup=kb)

  • Вопрос задан более года назад
  • 147 просмотров

Комментировать
Решения вопроса 2

SoreMix

Telegram магазин на Python с корзиной, блэкджеком и плюшками #1

Добавляйте какой нибудь идентификатор товара в callback_data . Допустим, товары у вас имеют ID

# допустим, текущий товар имеет id 1058 add = InlineKeyboardButton(text= ‘Добавить в корзину’,callback_data= ‘add_1058’)

Далее уже в функции с обработкой нажатий на callback кнопки парсите этот id

Ответ написан более года назад
Комментировать
Нравится 1 Комментировать

MinTnt

Ну, можно использовать call.message.text, и парсить нужную информацию оттуда, или же можно напрямую указывать всё нужное в callback

Источник: qna.habr.com

Как реализовать корзину в телеграм боте на python

Скажу сразу , в программировании — новичок , пишу где-то 2 месяца.

введите сюда описание изображения

Где-то месяц назад начал писать бота в телеграм на языке Python, пишу на библиотеке телебот. Практически все сделал, осталось доделать корзину, но не понимаю как осуществить затеянное, снизу приложу примерную схему работы корзины(заранее извиняюсь за свой корявый почерк)

Ответы (1 шт):

Я вам советую прикрутить базу данных, точнее вам без нее не обойтись. Так как вы новичок в программировании, и если не хотите сильно заморачиваться — советую копнуть в сторону sqlite3. Просто отличный способ для реализации корзины в телеграм-боте. А чтоб было проще работать с этой базой, скачайте бесплатный софт — SQLiteStudio. И плюс ко всему гайдов/видео в интернете на эту тему очень много.

Еще по теме:  Чат недоступен в Телеграмме

У каждого пользователя в телеграмме есть уникальный id , и по этому идентификатору сможете записывать товары в базу данных, которые добавил пользователь в корзину. А там уже зависит только от вас:)

Как сделать меню для Телеграм Бота на Python

Наверняка в своем коде вы используете словари, списки, кортежи. которые находятся глобально (то есть не локально в функциях). К чему это я — если ботом будут пользоваться несколько клиентов, то данные одного пользователя смогут передаться другому, учтите это! Решением этого будет — либо использовать передачу аргументов в функцию либо же база данных.

Источник: husl.ru

Реализация корзины в Telegram bot Python (aiogram)

Схема того, как должна работать корзина

Подскажите, как и с помощью чего можно реализовать корзину на Aiogram’e?Знаю,что 100% нужна база данных( в боте используется sqlite3) , но я не могу придумать как это всё написать.

Отслеживать
задан 24 сен 2022 в 8:43
13 4 4 бронзовых знака

Вы идете в верном направление, попробуйте полностью прописать все команды Вашего бота, и продумать функционал, затем уже продумайте структуру БД. А после в запросах, Вы просто как-то взаимодействуете с БД.

24 сен 2022 в 9:23

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Можно сделать примерно так:

Есть список товаров (скажем, в переменной)

items=>

Есть база данных — ‘корзина’

CREATE TABLE IF NOT EXISTS `korzina` ( `user_id` VARCHAR(99999) NULL, `item` TEXT DEFAULT NULL)

Человек добавляет предмет в корзину:

cursor.execute(‘INSERT INTO `korzina` (. )’, (user_id, item)) cursor.commit()

Как удаляем из корзины:

cursor.execute(‘DELETE FROM `korzina` WHERE `user_id`=?’, (user_id,)) cursor.commit()

Берем список предметов:

SELECT * FROM `korzina` WHERE `user_id` = .

Все! Мы получили список предметов! Список будет в формате: ((1234, ‘tort1’), (1234, ‘tort2’)) Второе значение — название товара из списка товаров ранее — по нему можем из списка достать всю информацию. Если что-то непонятно — пиши — буду рад помочь) P.S. Тут все под sqlite3

Еще по теме:  В Телеграмм не записываются голосовые сообщения в Airpods

Источник: ru.stackoverflow.com

Рейтинг
( Пока оценок нет )
Загрузка ...