Example #1
0
def create_order(request, transaction_id):
    """
    Если POST запрос к платежной системе успешен, создаем новый заказ содержащий товары из корзины
    Сохраняем заказ с идентификатором транзации который вернет шлюз платежной системы
    В конце делаем очистку корзины
    """
    order = Order()
    checkout_form = ContactForm(request.POST, instance=order)
    checkout_form.shipping_address_1 = u'%s' % request.POST[
        'shipping_address_1']
    order = checkout_form.save(commit=False)

    # присваиваем купон заказу по купону корзины
    cart_items = cart.get_cart_items(request)
    cupon = Cupon()
    for c in cart_items:
        cupon = c.cupon
    order.cupon = cupon

    order.transaction_id = transaction_id
    order.ip_address = request.META.get('REMOTE_ADDR')
    order.user = None
    if request.user.is_authenticated():
        order.user = request.user
    order.status = Order.SUBMITTED

    delivery = get_current_delivery(request)
    order.delivery = delivery

    order.save()

    if order.pk:
        # Если заказ сохранен
        cart_items = cart.get_cart_items(request)
        for ci in cart_items:
            # Создаем товар в заказе для каждого товара в корзине
            oi = OrderItem()
            oi.order = order
            oi.quantity = ci.quantity
            oi.price = ci.price
            oi.product = ci.product
            oi.feel = ci.feel
            oi.atributes = ci.atributes
            oi.save()
        # Очищаем корзину после оформления заказа
        cart.empty_cart(request)

        # Очищаем сессию cart_id
        request.session[CART_ID_SESSION_KEY] = ''

        # Сохраняем введенные данные для будующих заказов
        if request.user.is_authenticated():
            profile.set(request)

        # Сохраняем информацию о профиле пользователя
        if request.user.is_authenticated():
            profile.set(request)
    # Возвращаем объект - новый заказа
    return order
Example #2
0
def create_order(request, transaction_id):
    """
    Если POST запрос к платежной системе успешен, создаем новый заказ содержащий товары из корзины
    Сохраняем заказ с идентификатором транзации который вернет шлюз платежной системы
    В конце делаем очистку корзины
    """
    order = Order()
    checkout_form = ContactForm(request.POST, instance=order)
    checkout_form.shipping_address_1 = u'%s' % request.POST['shipping_address_1']
    order = checkout_form.save(commit=False)

    # присваиваем купон заказу по купону корзины
    cart_items = cart.get_cart_items(request)
    cupon = Cupon()
    for c in cart_items:
        cupon = c.cupon
    order.cupon = cupon

    order.transaction_id = transaction_id
    order.ip_address = request.META.get('REMOTE_ADDR')
    order.user = None
    if request.user.is_authenticated():
        order.user = request.user
    order.status = Order.SUBMITTED

    delivery = get_current_delivery(request)
    order.delivery = delivery

    order.save()

    if order.pk:
        # Если заказ сохранен
        cart_items = cart.get_cart_items(request)
        for ci in cart_items:
            # Создаем товар в заказе для каждого товара в корзине
            oi = OrderItem()
            oi.order = order
            oi.quantity = ci.quantity
            oi.price = ci.price
            oi.product = ci.product
            oi.feel = ci.feel
            oi.atributes = ci.atributes
            oi.save()
        # Очищаем корзину после оформления заказа
        cart.empty_cart(request)

        # Очищаем сессию cart_id
        request.session[CART_ID_SESSION_KEY] = ''

        # Сохраняем введенные данные для будующих заказов
        if request.user.is_authenticated():
            profile.set(request)

        # Сохраняем информацию о профиле пользователя
        if request.user.is_authenticated():
            profile.set(request)
    # Возвращаем объект - новый заказа
    return order
Example #3
0
def cart_view(request, template_name="cart/cart.html"):
    """Представление для отображения корзины"""
    page_title = _(u'Shopping cart')
    if request.method == 'POST':
        postdata = request.POST.copy()

        """удаление товара"""
        if postdata.has_key('remove'):
            cart.remove_from_cart(request)

        """пересчет товара по количеству"""
        if postdata.has_key('update'):
            cart.update_cart(request)

        """отправляем request на пересчет корзины по купону"""
        if postdata.has_key('update_cupon'):
            cart.update_cupon_cart(request)

        """оформление заказа"""
        if postdata.has_key('checkout'):
            checkout_url = checkout.get_checkout_url(request)
            return HttpResponseRedirect(checkout_url)

    # Получаем список всех товаров в корзине из cookies
    #cart_item_count = cart.cart_item_count(request)
    cart_items = cart.get_cart_items(request)
    # cupon = cart.get_cupon(request)
    cart_subtotal = cart.cart_subtotal(request)
    return render_to_response(template_name, locals(),
                              context_instance=RequestContext(request))
Example #4
0
def product_cart_box(context, request):
    cart_i = cart.get_cart_items(request)
    quantity = cart.cart_distinct_item_count(request)
    device = checkDevice(request)
    return {
        'cart_i': cart_i,
        'device': device,
        'quantity': quantity
    }
Example #5
0
def ajaxCart(request):
    postdata = request.POST.copy()
    form = ProductAddToCartForm(request, postdata)
    data = {}
    if form.is_valid() and request.POST[
            'quantity']:  # тут происходит проверка на cookie в forms.py
        # Добавляем в корзину и делаем перенаправление на страницу с корзиной
        cart.add_to_cart(request)
        # product_item = Product.objects.get(slug=request.POST['product_slug'])
        # cart_item = CartItem.objects.get(product=product_item, cart_id=cart._cart_id(request))
        cart_products = cart.get_cart_items(request)
        global_quantity = cart.cart_distinct_item_count(request)
        """просто каждый раз строим карзину заново (это просто :-))"""
        add_item_html = u""
        for cart_item in cart_products:
            name = cart_item.name
            price = cart_item.price
            add_item_html = add_item_html + u"<div class='cart_items_prod'><img src='/media/%s' width='88' height='88'><div class='text_item'><p class='name_item'>%s</p><p>Цена: <i class='fa fa-rub'></i>%s</p><p id='quantity'>Колличество: %s</p></div></div>" % (
                cart_item.get_default_image(), name, price, cart_item.quantity)

        data = simplejson.dumps({
            "add_item_html": add_item_html,
            "global_quantity": global_quantity
        })
    else:
        form = ProductAddToCartForm(request, postdata)
    """
    Проверка ключей post ajax запроса и дальнейшая логика связаная с этим
    либо смена объема(веса) товара либо отправка письма на почту через форму в конце главной страницы
    проверка работает только через цыкл (почему-то).. возможно из-за QueryDict либо , из-за декоратора.
    """
    for key in postdata.keys():  # TODO: поработать над безопасностью
        if key == 'atr_value_new':
            volume = ProductVolume.objects.get(
                id=request.POST['atr_value_new'])
            if volume.new_price > 0:
                price = "Цена: %s руб." % volume.new_price
            else:
                price = "Цена: %s руб." % volume.price
            data = simplejson.dumps({"price": price})
        elif key == 'phone_user':
            subject = u'WayMy форма'
            message = u'телефон: %s \n Имя: %s' % (request.POST['phone_user'],
                                                   request.POST['name_user'])
            send_mail(subject,
                      message,
                      '*****@*****.**', ['*****@*****.**'],
                      fail_silently=False)

    return HttpResponse(data, content_type="application/json")
Example #6
0
def cart_view(request, template_name="cart/cart.html"):
    """Представление для отображения корзины"""
    page_title = _(u'Shopping cart')
    if request.method == 'POST':
        postdata = request.POST.copy()
        if postdata.has_key('remove'):
            cart.remove_from_cart(request)
        if postdata.has_key('update'):
            cart.update_cart(request)
        if postdata.has_key('checkout'):
            checkout_url = checkout.get_checkout_url(request)
            return HttpResponseRedirect(checkout_url)
    # Получаем список всех товаров в корзине из cookies
    #cart_item_count = cart.cart_item_count(request)
    cart_items = cart.get_cart_items(request)
    cart_subtotal = cart.cart_subtotal(request)
    return render_to_response(template_name, locals(),
                              context_instance=RequestContext(request))
Example #7
0
def create_order(request, transaction_id):
    """
    Если POST запрос к платежной системе успешен, создаем новый заказ содержащий товары из корзины
    Сохраняем заказ с идентификатором транзации который вернет шлюз платежной системы
    В конце делаем очистку корзины
    """
    order = Order()
    checkout_form = ContactForm(request.POST, instance=order)
    order = checkout_form.save(commit=False)



    order.transaction_id = transaction_id
    order.ip_address = request.META.get('REMOTE_ADDR')
    order.user = None
    if request.user.is_authenticated():
        order.user = request.user
    order.status = Order.SUBMITTED
    order.cupon = cart.get_cupon(request)
    order.save()

    if order.pk:
        # Если заказ сохранен
        cart_items = cart.get_cart_items(request)
        for ci in cart_items:
            # Создаем товар в заказе для каждого товара в корзине
            oi = OrderItem()
            oi.order = order
            oi.quantity = ci.quantity
            oi.price = (ci.price - (ci.price * int(ci.cupon.percent) / 100))
            oi.product = ci.product
            oi.save()
        # Очищаем корзину после оформления заказа
        cart.empty_cart(request)
        # Сохраняем введенные данные для будующих заказов
        if request.user.is_authenticated():
            profile.set(request)

        # Сохраняем информацию о профиле пользователя
        if request.user.is_authenticated():
            profile.set(request)
    # Возвращаем объект - новый заказа
    return order
Example #8
0
def ajaxCart(request):
    postdata = request.POST.copy()
    form = ProductAddToCartForm(request, postdata)
    data = {}
    if form.is_valid() and request.POST['quantity']:  # тут происходит проверка на cookie в forms.py
        # Добавляем в корзину и делаем перенаправление на страницу с корзиной
        cart.add_to_cart(request)
        # product_item = Product.objects.get(slug=request.POST['product_slug'])
        # cart_item = CartItem.objects.get(product=product_item, cart_id=cart._cart_id(request))
        cart_products = cart.get_cart_items(request)
        global_quantity = cart.cart_distinct_item_count(request)

        """просто каждый раз строим карзину заново (это просто :-))"""
        add_item_html = u""
        for cart_item in cart_products:
            name = cart_item.name
            price = cart_item.price
            add_item_html = add_item_html + u"<div class='cart_items_prod'><img src='/media/%s' width='88' height='88'><div class='text_item'><p class='name_item'>%s</p><p>Цена: <i class='fa fa-rub'></i>%s</p><p id='quantity'>Колличество: %s</p></div></div>" %  (cart_item.get_default_image(), name, price, cart_item.quantity)

        data = simplejson.dumps({"add_item_html": add_item_html, "global_quantity": global_quantity})
    else:
        form = ProductAddToCartForm(request, postdata)

    """
    Проверка ключей post ajax запроса и дальнейшая логика связаная с этим
    либо смена объема(веса) товара либо отправка письма на почту через форму в конце главной страницы
    проверка работает только через цыкл (почему-то).. возможно из-за QueryDict либо , из-за декоратора.
    """
    for key in postdata.keys():  # TODO: поработать над безопасностью
        if key == 'atr_value_new':
            volume = ProductVolume.objects.get(id=request.POST['atr_value_new'])
            if volume.new_price > 0:
                price = "Цена: %s руб." % volume.new_price
            else:
                price = "Цена: %s руб." % volume.price
            data = simplejson.dumps({"price": price})
        elif key == 'phone_user':
            subject = u'WayMy форма'
            message = u'телефон: %s \n Имя: %s' % (request.POST['phone_user'], request.POST['name_user'])
            send_mail(subject, message, '*****@*****.**', ['*****@*****.**'], fail_silently=False)

    return HttpResponse(data, mimetype="application/json")
Example #9
0
def cart_view(request, template_name="cart/cart.html"):
    """Представление для отображения корзины"""
    page_title = _(u'Shopping cart')
    if request.method == 'POST':
        postdata = request.POST.copy()

        if postdata.has_key('remove'):
            cart.remove_from_cart(request)

        if postdata.has_key('update'):
            cart.update_cart(request)

        """отправляем request на пересчет корзины по купону"""
        if postdata.has_key('update_cupon'):
            cart.update_cupon_cart(request)


        if postdata.has_key('checkout'):
            checkout_url = checkout.get_checkout_url(request)
            return HttpResponseRedirect(checkout_url)

    deliveryForm = DeliveryForm()

    request.breadcrumbs(u'Корзина', request.path_info)

    # Получаем список всех товаров в корзине из cookies
    #cart_item_count = cart.cart_item_count(request)
    cart_items = cart.get_cart_items(request)
    cart_subtotal = cart.cart_subtotal(request)
    cart_gift = cart.cart_gift_add(request)

    # доставка
    try: 
        delivery = cart.get_delivery(request)
        delivery.save()
        cart_total = cart.cart_total(request)
    except Exception:
        return redirect("/")

    return render_to_response(template_name, locals(),
                              context_instance=RequestContext(request))
Example #10
0
def create_order(request, transaction_id):
    """
    Если POST запрос к платежной системе успешен, создаем новый заказ содержащий товары из корзины
    Сохраняем заказ с идентификатором транзации который вернет шлюз платежной системы
    В конце делаем очистку корзины
    """
    order = Order()
    checkout_form = CheckoutForm(request.POST, instance=order)
    order = checkout_form.save(commit=False)

    order.transaction_id = transaction_id
    order.ip_address = request.META.get('REMOTE_ADDR')
    order.user = None
    if request.user.is_authenticated():
        order.user = request.user
    order.status = Order.SUBMITTED
    order.save()

    if order.pk:
        # Если заказ сохранен
        cart_items = cart.get_cart_items(request)
        for ci in cart_items:
            # Создаем товар в заказе для каждого товара в корзине
            oi = OrderItem()
            oi.order = order
            oi.quantity = ci.quantity
            oi.price = ci.price
            oi.product = ci.product
            oi.save()
        # Очищаем корзину после оформления заказа
        cart.empty_cart(request)
        # Сохраняем введенные данные для будующих заказов
        if request.user.is_authenticated():
            profile.set(request)

        # Сохраняем информацию о профиле пользователя
        if request.user.is_authenticated():
            profile.set(request)
    # Возвращаем объект - новый заказа
    return order
Example #11
0
def cart_view(request, template_name="cart/cart.html"):
    """Представление для отображения корзины"""
    page_title = _(u'Shopping cart')
    if request.method == 'POST':
        postdata = request.POST.copy()

        if postdata.has_key('remove'):
            cart.remove_from_cart(request)

        if postdata.has_key('update'):
            cart.update_cart(request)
        """отправляем request на пересчет корзины по купону"""
        if postdata.has_key('update_cupon'):
            cart.update_cupon_cart(request)

        if postdata.has_key('checkout'):
            checkout_url = checkout.get_checkout_url(request)
            return HttpResponseRedirect(checkout_url)

    deliveryForm = DeliveryForm()

    request.breadcrumbs(u'Корзина', request.path_info)

    # Получаем список всех товаров в корзине из cookies
    #cart_item_count = cart.cart_item_count(request)
    cart_items = cart.get_cart_items(request)
    cart_subtotal = cart.cart_subtotal(request)
    cart_gift = cart.cart_gift_add(request)

    # доставка
    try:
        delivery = cart.get_delivery(request)
        delivery.save()
        cart_total = cart.cart_total(request)
    except Exception:
        return redirect("/")

    return render_to_response(template_name,
                              locals(),
                              context_instance=RequestContext(request))
Example #12
0
def cart_box(context, request):
    cart_i = cart.get_cart_items(request)
    return {
        # 'products': products,
        'cart_i': cart_i,
    }
Example #13
0
def cart_box(context, request):
    cart_i = cart.get_cart_items(request)
    return {
        # 'products': products,
        'cart_i': cart_i,
    }