Создаю телеграм бота для кафе и на данный момент делаю прототип. Нужно указать в переменной два разных текста после определенного вопроса

Основная проблема в том, что я не могу правильно указать value. Был бы благодарен если бы вы подтолкнули меня на ответ

def menu(message):
    if message.text == 'Чизбургер':
        product = 'Чизбургер'
        costs = '20000'
        markup = types.ReplyKeyboardMarkup(row_width=2, resize_keyboard=True)
        buttons = markup.add(types.KeyboardButton('1'), types.KeyboardButton('2'), types.KeyboardButton('3'))
        **# value = здесь должно быть кол-во но из-за того когда я пишу message.text в БД отображается чизбурегр, а не то, что я выбрал**
        bot.send_message(message.chat.id, 'Выберите кол-во', reply_markup=buttons)
        cursor.execute('INSERT INTO zakazi (product, value, costs) VALUES(?, ?, ?)', (product, value, costs))
        conn.commit()```

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

Автор решения: mazik7512

У вас неправильная структура кода, вам нужно разбить эту функцию на две. Первая будет обрабатывать тип товара и посылать меню с кнопками выбора количества, а вторая будет обрабатывать количество. Используйте для этого функцию bot.register_next_step_handler(message, {следующая_функция})

Получится что-то типо этого:

def quantity_handler(message, product, costs):
   cursor.execute('INSERT INTO zakazi (product, value, costs) VALUES(?, ?, ?)', (product, message.text, costs))
   conn.commit()
   bot.send_message(message.chat.id, "Чизбургер добавлен к заказу")


def product_handler(message):
   if message.text == "Чизбургер":
      costs = 20000
      markup = types.ReplyKeyboardMarkup(row_width=2, resize_keyboard=True)
      markup.add(types.KeyboardButton('1'), types.KeyboardButton('2'), 
                           types.KeyboardButton('3'))
      bot.send_message(message.chat.id, "Выберите количество", reply_markup=markup)
      bot.register_next_step_handler(message, quantity_handler, message.text, costs)
→ Ссылка