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()})
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})
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())