def remove(query): bot.answer_callback_query(callback_query_id=query.id) utils.del_from_basket(str(query.from_user.id), query.data[7:]) bot.delete_message(chat_id=query.from_user.id, message_id=query.message.message_id) print(utils.get_basket(str(query.from_user.id))) if not utils.get_basket(str(query.from_user.id)): bot.send_message(chat_id=query.message.chat.id, text=config.empty_basket)
def pay_newAPI(message): print('Пользователь', message.from_user.id, 'оформляет заказ через Telegram') bot.send_message(message.chat.id, config.view_basket, reply_markup=back_keyboard) msg = '' price = 0 for item in utils.get_basket(str(message.from_user.id)): # НАДЕЮСЬ, ЧТО НУЖНО ДЕЛАТЬ ПОЯСНЕНИЙ НЕ ТРЕБУЕТСЯ, НО ЕСЛИ ЧТО, ЗВОНИ :-* amount = utils.item_amount(str(message.from_user.id), item) msg += ' - ' + item + ': ' + str(amount) + '\n' price += amount * 10000 prices = [telebot.types.LabeledPrice(config.check_num, price)] new_pay = telebot.types.InlineKeyboardMarkup(row_width=1) new_pay.add(telebot.types.InlineKeyboardButton(text=config.pay, pay=True)) bot.send_invoice(chat_id=message.chat.id, title=config.check_num, description=msg, invoice_payload='invoice', provider_token=config.provider_token, start_parameter='invoice', currency='rub', prices=prices, need_name=True, need_phone_number=True, need_shipping_address=True, is_flexible=True, reply_markup=new_pay)
def check_basket(message): user_id = message.from_user.id user_basket = utils.get_basket(user_id) bot.send_message(message.chat.id, 'Подтверждение заказа', reply_markup=menu_keyboard) if user_basket: res = '' keyboard = telebot.types.InlineKeyboardMarkup(row_width=1) pay_button = telebot.types.InlineKeyboardButton(text='Оплатить', pay=True) # back_button = telebot.types.InlineKeyboardButton(text='Назад', callback_data='Корзина') keyboard.add(pay_button) price = 1400 res = '' pay = 0 for item in user_basket: amount = utils.item_amount(user_id, item) if 1 <= amount and amount < 2: res += item + ': ' + str(amount) + ' * ' + str( price) + ' руб.\n' pay += amount * price if 2 <= amount and amount < 4: res += item + ': ' + str(amount) + ' * ' + str( price * 0.99) + ' руб.\n' pay += amount * price * 0.99 if 4 <= amount and amount < 6: res += item + ': ' + str(amount) + ' * ' + str( price * 0.98) + ' руб.\n' pay += amount * price * 0.98 if 6 <= amount and amount < 8: res += item + ': ' + str(amount) + ' * ' + str( price * 0.97) + ' руб.\n' pay += amount * price * 0.97 if 8 <= amount and amount: res += item + ': ' + str(amount) + ' * ' + str( price * 0.96) + ' руб.\n' pay += amount * price * 0.96 # bot.send_message(message.chat.id, res, parse_mode='Markdown', reply_markup=keyboard) bot.send_invoice(chat_id=message.chat.id, title='Ваш заказ', description=res, invoice_payload='invoice', provider_token=config.provider_token, start_parameter='invoice', currency='rub', prices=[ telebot.types.LabeledPrice(label='Ваш заказ', amount=int(pay) * 100) ], need_name=True, need_email=True, need_phone_number=True, need_shipping_address=True, is_flexible=True, reply_markup=keyboard) else: bot.send_message(chat_id=message.chat.id, text='Корзина пуста!')
def basket(user_id, chat_id): _basket = utils.get_basket(user_id) print('Пользователь', user_id, 'открыл "Корзина"') print(utils.get_basket(user_id)) if not _basket: bot.send_message(chat_id, config.basket) bot.send_message(chat_id, config.empty_basket) else: bot.send_message(chat_id, config.basket, reply_markup=pay_keyboard) for item in _basket: bot.send_message(chat_id, item, reply_markup=amount_keyboard(user_id, item, basket=True))
def check_basket(message): user_id = message.from_user.id user_basket = utils.get_basket(user_id) bot.send_message(message.chat.id, config.ordering, reply_markup=back_keyboard) if user_basket: res = '' keyboard = telebot.types.InlineKeyboardMarkup(row_width=1) pay_button = telebot.types.InlineKeyboardButton(text=config.pay_button, pay=True) keyboard.add(pay_button) for item in user_basket: res += item + '\n' # bot.send_message(message.chat.id, res, parse_mode='Markdown', reply_markup=keyboard) bot.send_invoice(chat_id=message.chat.id, title=config.user_basket, description=res, invoice_payload='invoice', provider_token=config.provider_token, start_parameter='invoice', currency='rub', prices=[telebot.types.LabeledPrice(label=config.user_basket, amount=10000)], need_name=True, need_phone_number=True, need_shipping_address=True, is_flexible=True, reply_markup=keyboard) else: bot.send_message(chat_id=message.chat.id, text=config.empty_basket)
def basket(message): user_id = message.from_user.id user_basket = utils.get_basket(user_id) keyboard = telebot.types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True) confirm_button = telebot.types.KeyboardButton(config.confirm_button) clear_button = telebot.types.KeyboardButton(config.clear_button) back_button = telebot.types.KeyboardButton(config.back_button) keyboard.add(confirm_button, clear_button, back_button) bot.send_message(message.chat.id, config.basket, reply_markup=keyboard) if user_basket: for item in user_basket: product = cat.find(item) if (product): bot.send_message(message.chat.id, '*' + product.item + '*', parse_mode='Markdown') bot.send_photo(message.chat.id, caption=product.categories[0], photo=product.categories[1]) else: bot.send_message( message.chat.id, 'База данных товаров обновилась! Похоже, некоторых товаров из вашей корзины больше нет...' ) else: bot.send_message(chat_id=message.chat.id, text=config.empty_basket)
def clear_basket(message): user_id = message.from_user.id user_basket = utils.get_basket(user_id) for item in user_basket: utils.del_from_basket(user_id, item) bot.send_message(message.chat.id, 'Корзина пуста!', menu_keyboard)
def clear_basket(message): user_id = message.from_user.id user_basket = utils.get_basket(user_id) for item in user_basket: utils.del_from_basket(user_id, item) bot.send_message(message.chat.id, config.empty_basket)
def add_to_basket(query): logging.info(str(query.data)) item = cat.find(query.data.split('_')[1]) if not utils.get_basket(query.from_user.id): utils.set_basket(query.from_user.id) utils.add_to_basket(query.from_user.id, str(hash(item.item))) bot.answer_callback_query(callback_query_id=query.id, text='Успешно добавлено!')
def got_payment(message): print('Пользователь', message.from_user.id, 'оформил заказ') for item in utils.get_basket(str(message.from_user.id)): utils.del_from_basket(str(message.from_user.id), item) bot.send_message(chat_id=message.chat.id, text=config.successful_payment.format( message.successful_payment.total_amount / 100, message.successful_payment.currency), parse_mode='Markdown', reply_markup=main_menu_keyboard)
def home(): """ our only route, it loads a page full of stuff """ colleg={} basket={} college=utils.get_random_college() basket=utils.get_basket(college['cost']) s={} c={} return render_template('base.html',c=college,s=basket)
def got_payment(message): bot.send_message(chat_id=message.chat.id, text=config.successful_payment.format(message.successful_payment.total_amount / 100, message.successful_payment.currency), parse_mode='Markdown') order_info = message.successful_payment.order_info user_id = message.from_user.id user_basket = utils.get_basket(user_id) buys_list = '' for item in user_basket: buys_list += item + '\n' append_request(order_info.name, order_info.email, order_info.phone_number, order_info.shipping_address, buys_list, message.successful_payment.total_amount / 100, '')
def basket(message): user_id = message.from_user.id user_basket = utils.get_basket(user_id) keyboard = telebot.types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True) confirm_button = telebot.types.KeyboardButton('Подтвердить заказ') clear_button = telebot.types.KeyboardButton('Очистить') back_button = telebot.types.KeyboardButton('Назад') keyboard.add(confirm_button, clear_button, back_button) bot.send_message(message.chat.id, '------------------\n| Корзина |\n------------------', reply_markup=keyboard) if user_basket: for item in user_basket: keyboard = telebot.types.InlineKeyboardMarkup(row_width=1) keyboard.row( telebot.types.InlineKeyboardButton(text='Меньше', callback_data=item + 'less'), telebot.types.InlineKeyboardButton( text=str(utils.item_amount(user_id, item)), callback_data=item + 'amount'), telebot.types.InlineKeyboardButton(text='Больше', callback_data=item + 'more')) keyboard.add( telebot.types.InlineKeyboardButton(text='Удалить', callback_data=item + 'del')) amount = utils.item_amount(user_id, item) price = 1400 res = '' if 1 <= amount and amount < 2: res = str(price) + ' руб.\n' if 2 <= amount and amount < 4: res = str(price * 0.99) + ' руб.\n' if 4 <= amount and amount < 6: res = str(price * 0.98) + ' руб.\n' if 6 <= amount and amount < 8: res = str(price * 0.97) + ' руб.\n' if 8 <= amount and amount: res = str(price * 0.96) + ' руб.\n' bot.send_photo(message.chat.id, image, item + '\nЦена: ' + res, reply_markup=keyboard) else: bot.send_message(chat_id=message.chat.id, text='Корзина пуста!', reply_markup=menu_keyboard)
def item_amount(query): print(utils.get_basket(str(query.from_user.id))) bot.answer_callback_query(callback_query_id=query.id)
def to_basket(query): product = query.data.split('|')[0] if not utils.get_basket(query.from_user.id): utils.set_basket(query.from_user.id) utils.add_to_basket(query.from_user.id, product) bot.answer_callback_query(query.id, 'Добавлено в корзину!')