Esempio n. 1
0
def ajax_add_cart_item_by_sku(request):
    size = Size.objects.get(sku=settings.BIEN_SLUG_MAG_001)
    product = Item.objects.get(available_sizes__id=size.id)

    cart = Cart(request)
    cart.add(product, size.price)

    return JsonResponse({'success': True, 'template': "New size %d" % cart.count()})
Esempio n. 2
0
def ajax_remove_item(request, item_id):
    cart = Cart(request)
    product = Item.objects.get(id=item_id)
    cart.remove(product, request.GET.get('item_size'))
    if cart.count():
        template = render_to_string('cart/cart_item_container.html', {
            'cart': cart,
            'config': config
        })
    else:
        template = render_to_string('cart/empty.html', {
        })

    return JsonResponse({'success': True, 'template': template})
Esempio n. 3
0
def mi_carrito(request):
    header = "mi_carrito"
    try:
        profile = request.user.userprofile
    except:
        """ Logout si no existe userprofile """
        return redirect(reverse('usuarios:user_logout'))

    """ Si existe el profile, obtenemos el cart de ese profile"""
    if profile:
        cart = Cart(request)
        flag_mostrar_productos = False
        cantidad_items = cart.count()
        if cantidad_items > 0:
            flag_mostrar_productos = True
        items = cart.cart.item_set.all()
        items_cursos = [(item, item.get_product()) for item in items]

    # Suma para el precio final
    _subtotal = cart.summary()
    info_general = InformacionGeneral.objects.get(pk=1)
    taxi = info_general.taxi
    if taxi:
        total = _subtotal + taxi
    else:
        total = _subtotal
    """ Bloque para pago """
    # Consultamos al numero de pedido
    if request.method == 'POST':
        print("Soy POST")
        form = PedidoForm(request.POST)
        if form.is_valid():
            pedido = form.save(commit=False)
            pedido.cart = cart.cart
            pedido.usuario = profile
            pedido.numero_pedido = get_next_codigo_pedido()
            pedido.precio_total = total
            del request.session['CART-ID']
            del request.session['numero_pedido']
            profile.cart = None
            profile.save()
            pedido.save()
            return redirect(reverse('pedidos:gracias'))
        else:
            print(form.errors, "<- errores!!!")
    return render(request, 'pedidos/mi_carrito.html', locals())