def product(request, category_slug, product_slug): cart = Cart(request) product = get_object_or_404(Product, category__slug=category_slug, slug=product_slug) if request.method == 'POST': form = AddToCartForm(request.POST) if form.is_valid(): quantity = form.cleaned_data['quantity'] cart.add(product_id=product.id, quantity=quantity, update_quantity=False) messages.success(request, 'The product was added to the cart') return redirect('product', category_slug=category_slug, product_slug=product_slug) else: form = AddToCartForm() similar_products = list(product.category.products.exclude(id=product.id)) if len(similar_products) >= 4: similar_products = random.sample(similar_products, 4) return render(request, 'product/product.html', { 'form': form, 'product': product, 'similar_products': similar_products })
def api_add_to_cart(request): #'json.loads()' converts JSON object into python dictionary #'json.dumps()' converts python dictionary into JSON object #'request.body' contains JSON object passed through request data = json.loads(request.body) jsonresponse = {'success': True} product_id = data['product_id'] update = data['update'] quantity = data['quantity'] print(request.body) print(data) print(data['product_id']) #Make an instance of cart class and pass 'request' cart = Cart(request) product = get_object_or_404(Product, pk=product_id) if not update: cart.add(product=product, quantity=1, update_quantity=False) else: cart.add(product=product, quantity=quantity, update_quantity=True) return JsonResponse(jsonresponse)
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 cart_add(request, product_id): cart = Cart(request) product = get_object_or_404(Product, id=product_id) form = CartAddProductForm(request.POST) if form.is_valid(): cd = form.cleaned_data cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update']) return redirect('cart:cart_detail')
def ajax_validation_magazine_order_form(request, product_id): product = get_object_or_404(Product, id=product_id) order_form = ProductOrderingForm(data=request.POST, instance=product) if order_form.is_valid(): cart = Cart(request) cart.add(product, product.available_sizes().first().price, order_form.cleaned_data['amount']) return JsonResponse({'success': True}) return JsonResponse(order_form.errors.as_json(), status=400, safe=False)
def ajax_validation_order_form(request, product_id): item = get_object_or_404(Item, id=product_id) order_form = ProductOrderingForm(data=request.POST, instance=item) if order_form.is_valid(): cart = Cart(request) size = order_form.cleaned_data.get('available_sizes', None) cart.add(item, size.price, order_form.cleaned_data['amount'], size) success_url = reverse('products:get_cart') return JsonResponse({'success': True, 'success_url': success_url}) return JsonResponse(order_form.errors.as_json(), status=400, safe=False)
def cart_api(request): jsonresponse = {'success', True} product_id = request.POST.get('product_id') update = request.POST.get('update') qty = request.POST.get('quantity', 1) cart = Cart(request) product = get_object_or_404(Product, pk=product_id) if not update: cart.add(product=product, quantity=1, update_qty=False) else: cart.add(product=product, quantity=qty, update_qty=True) return JsonResponse(jsonresponse)
def mk_cart_magazine(request): size = Size.objects.get(sku=request.GET.get('sku')) mag = Item.objects.get(available_sizes__id=size.id, id=request.GET.get('id')) # print(mag.available_sizes.first()) cart = Cart(request) try: cart.remove(mag) except ItemDoesNotExist: pass cart.add(product=mag, unit_price=size.price, size=size) return redirect(reverse('products:get_cart'))
def api_add_to_cart(request): data = json.loads(request.body) jsonresponse = {'success': True} product_id = data['product_id'] update = data['update'] quantity = data['quantity'] cart = Cart(request) product = get_object_or_404(Product, pk=product_id) if not update: cart.add(product=product, quantity=1, update_quantity=False) else: cart.add(product=product, quantity=quantity, update_quantity=True) return JsonResponse(jsonresponse)
def add_to_cart(request): product_id = request.POST.get('product_id') quantity = 1 curso = get_object_or_404(Curso, id=product_id) cart = Cart(request) cart.add(curso, curso.precio, quantity) try: profile = UserProfile.objects.get(user__id=request.user.id) print(profile, "<- profile") if not profile.cart: profile.cart = cart.cart profile.save() except: return redirect(reverse('usuarios:login')) return redirect(reverse('pedidos:mi_carrito'))
def product(request, category_slug, product_slug): cart = Cart(request) product = get_object_or_404(Product, category__slug=category_slug, slug=product_slug) if request.method == 'POST': form = AddToCartForm(request.POST) if form.is_valid(): quantity = form.cleaned_data['quantity'] if request.user.is_authenticated: queryy = CartProducts.objects.filter(cartUser=request.user, cartProduct=product) print(len(queryy)) if len(queryy) == 0: cartpro = CartProducts(cartUser=request.user, cartProduct=product, quantity=quantity) cartpro.save() else: queryy[0].quantity += 1 queryy[0].save() cart.add(product_id=product.id, quantity=quantity, update_quantity=False) else: cart.add(product_id=product.id, quantity=quantity, update_quantity=False) messages.success(request, 'The product was added to the cart') return redirect('product', category_slug=category_slug, product_slug=product_slug) else: form = AddToCartForm() similar_products = list(product.category.products.exclude(id=product.id)) return render(request, 'products/product.html', { 'form': form, 'product': product, 'similar_products': similar_products })
def api_add_to_cart(request): data = json.loads(request.body) jsonresponse = {'success': True} product_id = data['product_id'] cart = Cart(request) product = get_object_or_404(Product, pk=product_id) if (product.num_available <= 0): return HttpResponseBadRequest('Product is not available in stock!') cart.add(product=product) product.num_available -= 1 product.save() return JsonResponse(jsonresponse)
def cart_detail(request): cart = Cart(request) in_cart = CartProducts remove_from_cart = request.GET.get('remove_from_cart', '') change_quantity = request.GET.get('change_quantity', '') quantity = request.GET.get('quantity', 0) if remove_from_cart: cart.remove(remove_from_cart) return redirect('cart') if change_quantity: cart.add(change_quantity, quantity, True) return redirect('cart') return render(request, 'cart.html')
def api_add_to_cart(request): data = json.loads(request.body) json_response = {'success': True} product_id = data['product_id'] update = data['update'] quantity = data['quantity'] # Default quantity is 1 cart = Cart(request) # Update cart to above values product = get_object_or_404( Product, pk=product_id ) # Public key is product_id if it can't be found throw 404 if not update: cart.add( product=product, quantity=1, update_quantity=False) # If not updating the cart, add 1 quantity else: cart.add( product=product, quantity=quantity, update_quantity=True) # Else update with user's chosen quantity return JsonResponse(json_response)