хочу сделать корзину с выбранными пользователем продуктами, корзина представляет собой клавиатурные кнопки, а товар добавляется инлайновыми кнопками. После нажатия на инлайновую кнопку товар исправно отображается в корзине, но после нажатия на кнопку "оформить заказ", сообщение из следующей функции отправляется столько же раз, сколько товаров было в корзине. Я понимаю, почему так происходит, я несколько раз запускаю функцию Basket нажатием на кнопку, а значит и переходов к следующей функции тоже несколько, но не понимаю как зафиксить...
Вот код:
def checkout(message):
if message.text == "Оформить заказ ":
bot.send_message(message.chat.id, "Заказ оформлен! Оставьте контактную информацию.")
else:
markup = types.ReplyKeyboardMarkup()
product = types.KeyboardButton("Оформить заказ ")
for i in basket:
markup.add(i)
markup.add(product)
bot.send_message(message.chat.id, "Товар добавлен в корзину", reply_markup=markup)
bot.register_next_step_handler(message, checkout)
@bot.callback_query_handler(func=lambda call: True)
def Basket(call):
if call.data == "AddInBasket_0":
basket.append("«Обоняние», 12000 р.")
elif call.data == "AddInBasket_1":
basket.append("«Золотой горизонт», 15000 р.")
elif call.data == "AddInBasket_2":
basket.append("«Тянуться к свету», 8000 р.")
elif call.data == "AddInBasket_3":
basket.append("«Акварельная ботаника», 7500 р.")
checkout(call.message)