def add(request): if request.GET: cart = '' product = '' is_exist = False try: cart = Cart.objects.get(id = request.session.get("cart")) product = Product.objects.get(id = int(request.GET['pid'])) except: raise Http404 item = CartItem() item.product = product item.cart = cart item.quantity = int(request.GET['quantity']) item.color = Color.objects.get(id=int(request.GET['color'])) item.size = Size.objects.get(id=int(request.GET['size'])) for i in CartItem.objects.filter(cart = cart).filter(product = product): if i.is_same_spec(item): i.quantity+=item.quantity i.save() break; else: item.save() return HttpResponseRedirect("/cart/")
def post(self, request): cart_id = request.session.get("cart_id") data = json.loads(request.body) items = data['items'] if not items: print("List empty") else: if cart_id == None: cart = Cart() cart.user = User.objects.get(id=data['user']) cart.save() cart_id = cart.id request.session['cart_id'] = cart_id else: cart = Cart.objects.get(id=cart_id) for item in items: cart_item = CartItem() cart_item.cart = cart cart_item.item = get_object_or_404(Product.objects.all(),pk=item['itemid']) cart_item.quantity = item['quantity'] cart_item.save() cart.items.add(cart_item) cart.save() # data = serializers.serialize('json', [cart,]) # struct = json.loads(data) # data = json.dumps(struct[0]) data = CartSerializer(Cart.objects.get(id=cart.id)).data # data2 = CartItemSerializer(cart.cartitem_set.all()).data # print (d) return Response({'data':data})
def add(request): if request.GET: cart = '' product = '' is_exist = False try: cart = Cart.objects.get(id=request.session.get("cart")) product = Product.objects.get(id=int(request.GET['pid'])) except: raise Http404 item = CartItem() item.product = product item.cart = cart item.quantity = int(request.GET['quantity']) item.color = Color.objects.get(id=int(request.GET['color'])) item.size = Size.objects.get(id=int(request.GET['size'])) for i in CartItem.objects.filter(cart=cart).filter(product=product): if i.is_same_spec(item): i.quantity += item.quantity i.save() break else: item.save() return HttpResponseRedirect("/cart/")
def add(request): if request.method == "POST" and request.user.is_authenticated: profile = Profile.objects.filter(user=request.user)[0] cart = list( filter(lambda x: x.is_active, Cart.objects.filter(profile=profile))) cartItem = CartItem() if len(cart) > 0: cartItem.cart = cart[0] else: cart = Cart() cart.profile = profile cart.total = 0.0 cart.save() cartItem.cart = cart cartItem.quantity = int(request.POST.get('id_quantity')) cartItem.material = request.POST.get('id_material') cartItem.good = Good.objects.get(id=request.POST.get('id_good_id')) cartItem.save() return redirect('/good/{0}'.format(request.POST.get('id_good_id'))) else: return HttpResponseBadRequest()
def add_item(request): product_id = request.POST.get("product_id", None) product = get_object_or_404(Product, id=product_id) if request.method == "POST" and request.is_ajax(): if product.has_options and product.parent == None: return JsonResponse({"message": _("Please choose a size")}) cart = get_cart(request) quantity = request.POST.get("quantity") if not quantity: quantity = 1 quantity = int(quantity) if product.stock >= quantity: try: item = CartItem.objects.get(product=product, cart=cart) except CartItem.DoesNotExist: item = CartItem() item.cart = cart item.product = product discount = 0 if product.discountable: discount = product.get_discount_price() * quantity gross = product.price * quantity item.quantity += int(quantity) item.discount_total += discount item.gross_total += gross item.net_total += gross - discount item.save() cart.discount_total += discount cart.gross_total += gross cart.net_total += gross - discount cart.save() product.stock -= quantity product.save() items = CartItem.objects.filter(cart=cart) return render(request, "cart/index-ajax.html", {"cart": cart, "items": items}) return JsonResponse({"message": _("This item has sold out")})