Передача функции с одного обработчика inline в другой python

Столкнулся с проблемой. Пишу бота в телеграмм. Суть заключается в том, что я создаю корзину.

Использую sqlite3. Там формируется строка (уникальный код, id пользователя, название товара, и добавки, три штуки (реализуются добавки как bool)).
Я делаю последовательно меню (формируются кнопки с названиями товаров), после нажатия на одну из них выходит описание товара, и кнопки "добавить в корзину" и "назад в меню".

После того, как пользователь нажимает "добавить в корзину" - создается запись с уникальным номером, id, названием товара. Дальше ему предлагается выбрать ингредиенты на выбор. Он выбирает.
Вот тут и начинаются проблемы. В первом обработчике (добавить в корзину) сгенерировался рандомный номер.

Как его передать во второй обработчик и далее?

Ладно, я могу сделать запрос в бд и вытащить его номер по id, но вдруг у него это второй товар? Следовательно - второй уникальный номер. Вариант с названием товара и id тоже не особо помогает: дело в том, что он может добавить один и тот же товар, но с разными ингредиентами.

Код приложу ниже, если кто подскажет, буду благодарен. Вот примеры кода. Простите за воду в коде. Глаз замылен уже. Ставил эксперименты.

async def button10_handler(query: types.CallbackQuery):
    coffee_id = 1
    user_id = query.from_user.id
    markup = ReplyKeyboardMarkup(keyboard=keyboard, resize_keyboard=True, one_time_keyboard=True)
    result = await choose_menu(1)
    await get_photo(coffee_id, user_id)
    #result = await choose_menu(coffee_id)
    #await bot.send_message(chat_id=user_id, text=result, reply_markup=inline_keyboard)
    #await bot.send_message(chat_id=user_id, text=message.text, reply_markup=markup)
    markup1 = InlineKeyboardButton('Добавить в корзину', callback_data=f'coffee:{coffee_id}')
    inline_keyboard1 = InlineKeyboardMarkup().row(markup1)
    await bot.send_message(chat_id=user_id, text=result, reply_markup = inline_keyboard1)


async def button10_callback_query(query: CallbackQuery):
    user_id = int(query.from_user.id)
    data = query.data.split(':')
    coffee_id = int(data[1])
    name_coffee = conn.execute('SELECT name FROM menu WHERE id=?', (coffee_id,))
    row_coffee = name_coffee.fetchone()
    conn.execute('INSERT INTO coffee(user_id,coffee) VALUES(?,?)', (user_id, row_coffee[0],))
    conn.commit()
    cursor.execute('SELECT coffee FROM coffee WHERE user_id=?', (user_id,))
    result = cursor.fetchone()
    res_res = result[0]
    res_res = res_res.replace("(", "").replace(")", "").replace(",", "").replace("'", "")
    markup1 = InlineKeyboardMarkup().add(InlineKeyboardButton('Да', callback_data=f'ing_yes:{user_id}:{coffee_id}'))\
        .add(InlineKeyboardButton('Нет', callback_data=f'ing_no:{user_id}:{coffee_id}'))
    await bot.send_message(chat_id=user_id, text="Хотите добавить ингредиенты?", reply_markup=markup1)

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