Всем привет, хотел бы узнать, как можно сделать добавление товара в корзину. В боте есть карусель товаров и кнопка -«Добавить в корзину». Вот вопрос — как давать понять боту на каком товаре находиться пользователь в этой карусели, чтобы по нажатию на эту кнопку данные о товаре уходили в БД? Библиотека 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
Telegram магазин на Python с корзиной, блэкджеком и плюшками #1
Добавляйте какой нибудь идентификатор товара в callback_data . Допустим, товары у вас имеют ID
# допустим, текущий товар имеет id 1058 add = InlineKeyboardButton(text= ‘Добавить в корзину’,callback_data= ‘add_1058’)
Далее уже в функции с обработкой нажатий на callback кнопки парсите этот id
Ответ написан более года назад
Комментировать
Нравится 1 Комментировать
Ну, можно использовать 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
Источник: ru.stackoverflow.com