예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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='Корзина пуста!')
예제 #4
0
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))
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
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)
예제 #8
0
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)
예제 #9
0
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='Успешно добавлено!')
예제 #10
0
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)
예제 #11
0
파일: app.py 프로젝트: hfilosa/collegecart
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)
예제 #12
0
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, '')
예제 #13
0
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)
예제 #14
0
def item_amount(query):
    print(utils.get_basket(str(query.from_user.id)))
    bot.answer_callback_query(callback_query_id=query.id)
예제 #15
0
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, 'Добавлено в корзину!')