def remove_total_cart(request): if request.is_ajax(): if request.method == 'POST': cart = Cart(request.session) producto = Product.objects.get(id=request.POST.get('id')) cart.remove(producto) return HttpResponse('Eliminado')
def pago(request): if request.method == "POST": cart = Cart(request.session) if not cart.is_empty: # # Guardo el pedido # =========================== # creo un pedido con los datos del cliente y el restaurante restaurante =cart.items[0].product.restaurante cliente = Cliente.objects.get(user=request.user) #falta el cliente pedido = Pedido (restaurante=restaurante, cliente=cliente) pedido.save() #aado platos al pedido for item in cart.items: plato = item.product Detalle_pedido(plato=plato, pedido=pedido, cantidad=item.quantity).save() if request.POST.get('pago') == "Paypal": return paypal_create(request) elif request.POST.get('pago') == "Efectivo": cart.clear() #Se vacia el carrito return HttpResponseRedirect(reverse('pago_exitoso'))
def setUp(self): engine = import_module(settings.SESSION_ENGINE) self.session = engine.SessionStore() self.session.save() self.client.cookies[ settings.SESSION_COOKIE_NAME] = self.session.session_key self.factory = RequestFactory() self.cart = Cart(self.session) self.deer = Product.objects.create( name='deer', price=10.0, custom_id=1, ) self.moose = Product.objects.create( name='moose', price=20.0, custom_id=2, ) self.ticket = Ticket.objects.create( name='Clint Mansell', price=25.0, custom_id=6, )
def add(request): cart = Cart(request.session) selitem_id = request.GET.get('id') selitem_qty = request.GET.get('quantity') selitem = Item.objects.get(id=selitem_id) cart.add(selitem, selitem_qty, price=selitem.price) return redirect(reverse('store') + "#No{}Card".format(selitem.product.id))
def add(request, product_id): cart = Cart(request.session) product = Product.objects.get(pk=product_id) cart.add(product, price=product.price) products = Product.objects.order_by('-updated_at') context = {'products': products} return render(request, 'shop/index.html', context)
def minus_quantity(request): cart = Cart(request.session) product = Submenu.objects.get(id=request.GET.get('dish_id')) quantity = request.GET.get('quantity') quantity = int(quantity) cart.set_quantity(product, quantity - 1) return HttpResponse("Quantity decreased")
def get(self, request, *args, **kwargs): # get status from querystring status = request.GET['status'] cart = Cart(request.session) virtual_deals = [] # check for virtual deals and create download links for each for item in cart.items: if item.product.type == 2: generated_ticket_url = request.build_absolute_uri( reverse( 'download_ticket', kwargs={'deal_id': item.product.id}, )) generated_ticket_url += "?qty=" + str(item.quantity) virtual_deals.append({ 'deal': item, 'href': generated_ticket_url }) # clear cart cart.clear() context = { 'status': status, 'virtual_deals': virtual_deals, } return render(request, self.template_name, context)
def pago(request): if request.method == "POST": cart = Cart(request.session) if not cart.is_empty: # # Guardo el pedido # =========================== # creo un pedido con los datos del cliente y el restaurante restaurante = cart.items[0].product.restaurante cliente = Cliente.objects.get(user=request.user) #falta el cliente pedido = Pedido(restaurante=restaurante, cliente=cliente) pedido.save() #aado platos al pedido for item in cart.items: plato = item.product Detalle_pedido(plato=plato, pedido=pedido, cantidad=item.quantity).save() if request.POST.get('pago') == "Paypal": return paypal_create(request) elif request.POST.get('pago') == "Efectivo": cart.clear() #Se vacia el carrito return HttpResponseRedirect(reverse('pago_exitoso'))
def remove_cart(request): if request.method == 'POST': if request.is_ajax(): cart = Cart(request.session) goods = Goods.objects.get(pk=request.POST.get('good')) cart.remove(goods) return JsonResponse({'message': "Removed"})
def empty_cart(request): cart = Cart(request.session) cart.clear() html = new_cart_html(request,1) cart_contents_qty = cart_contents_empty(request) payload = update_cart_status_and_prepare_payload(request, html, cart_contents_qty) return HttpResponse(json.dumps(payload), content_type="application/json")
def order_create(request): cart = Cart(request.session) if request.method == 'POST': form = OrderCreateForm(request.POST) if form.is_valid(): order = form.save(commit=False) order.placed_by_user = request.user order.save() for item in cart.items: OrderItem.objects.create(order=order, product=item.product, price=item.price, quantity=item.quantity) old_quantity = soap_client.service.findByIsbn( item.product.isbn).quantity new_quantity = old_quantity - item.quantity soap_client.service.updateQuantity(item.product.isbn, new_quantity) cart.clear() context = {'order': order} return render(request, 'orders/created.html', context) else: form = OrderCreateForm() return render(request, 'orders/create.html', { 'cart': cart, 'form': form })
def charge(request): cart = Cart(request.session) if cart.unique_count > 0: if request.method == "POST": form = SalePaymentForm(request.POST or None) if form.is_valid(): # charges the card template = get_template('tinbox/order-response-email.html') context = Context({'cart': cart, 'total': cart.total, 'shipping_cost': form.cleaned_data.get("shipping"), 'name' : form.cleaned_data.get("name") }) content = template.render(context) cart.clear() form_email = form.cleaned_data.get("email") form_name = form.cleaned_data.get("name") subject = 'Tinbox Solutions - Order Successfully Processed' from_email = settings.EMAIL_HOST_USER to_email = [form_email] msg = EmailMultiAlternatives(subject, "", from_email, to=to_email) msg.attach_alternative(content, "text/html") msg.send() return HttpResponseRedirect('/shopping/thank-you') else: t = form.determineShippingFormField(1, cart.total) return render_to_response("tinbox/charge.html", RequestContext( request, {'form': form, 'turnaround_cost' : t.turnaround_cost, 'turnaround' : t.turnaround} ) ) else: form = SalePaymentForm() t = form.determineShippingFormField(1, cart.total) return render_to_response("tinbox/charge.html", RequestContext( request, {'form': form, 'turnaround_cost' : t.turnaround_cost, 'turnaround' : t.turnaround} ) ) else: return render(request, 'tinbox/show-cart.html', {"empty": True})
def add_cart(request): if request.is_ajax(): if request.method == 'POST': cart = Cart(request.session) producto = Product.objects.get(id=request.POST.get('id')) cart.add(producto,price=producto.price) return HttpResponse('Agregado')
def waiter(): while True: from fridge.models import ShoppingCart, UserLimit, Product from carton.cart import Cart from django.contrib.sessions.backends.db import SessionStore with open('session_key.csv', 'r') as f: data = csv.reader(f) for line in data: k = line k = k[0] s = SessionStore(session_key=k) cart = Cart(s) product = Product.objects.get(name='Avocado') print(product) with open('object_counting_report.csv', 'r') as reading: read = csv.reader(reading) for line in read: for l in line: name = [] number = [] for item in l: if item.isalpha(): name.append(item) elif item.isdigit(): number.append(int(item)) else: pass name = (''.join(c for c in name)) number = (number[0]) prodset = UserLimit.objects.all() # session = requests.Session() for num in prodset: if number < num.set_limit: qty = num.set_limit - number + 1 print( 'dddddddddddddddddddddddddddddddddddddddddddd') print(num.set_limit) try: # tobeupdated = ShoppingCart.objects.get(product=item.product) product = Product.objects.get(name='Avocado') # cart.add( product ) cart.add(product, price=product.selling_price) s.save() print('paint') print(cart.items) print('adding') except: # cart = ShoppingCart(product=item.product, quantity=qty) print('excepted') # pass break
def checkout_page(request): errors = [] cart = Cart(request.session) freight_only = any( [item.product.product.freight_only for item in cart.items]) cost_total = cart.total if cart.is_empty: return redirect(reverse('store')) else: if request.POST: cart_list = [v for k, v in cart.cart_serializable.items()] cal_price = reduce( lambda x, y: x + y, [i['quantity'] * int(i['price']) for i in cart_list]) delivery = request.POST.get('delivery') try: shopper = PersonalInfo.objects.get( id=request.user.personalinfo.id) if cart.total == cal_price and delivery is not None: order = PurchaseOrder.objects.create( number=0, buyer=shopper, order_time=datetime.now(), freight=0 if cart.total > 1500 else 60 if delivery.isdigit() else 90, ship_method='FML' if delivery.isdigit() else 'KTJ', address=delivery, total=cart.total, buyer_notes=request.POST.get('shopper_notes'), order_notes=cart_list) order.number = float( datetime.now().strftime('%y%m%d%H%M%S')) + float( order.id) order.total = order.total + order.freight # 更改為預購模式! for d in cart_list: item = get_object_or_404(Item, id=d['product_pk']) order.sold_goods.add(item) item.pre_order += d['quantity'] # print ('id={} / 存貨={} / 售貨={} / 總售貨={}'.format( # item.id, item.stock, # item.sold, item.total_sold # )) item.save() order.save() cart.clear() return HttpResponseRedirect(reverse('checkout:orderinfo')) else: errors.append('資料有誤 或 尚未填寫,請重新整理再次一次') except Exception as e: print('%s (%s)' % (e, type(e))) context = { 'title': '結帳清單', 'errors': errors, 'cost_total': cost_total, 'freight_only': freight_only, } return render(request, 'checkout/checkout-page.html', context)
def setUp(self): self.client = Client() self.ticket = set_dependent_classes() self.client.login(username="******", password="******") session = self.client.session cart = Cart(session) cart.add(self.ticket['item'], price=self.ticket['item'].price) session.save()
def add(request): cart = Cart(request.session) product = Product.objects.get(pk=request.POST.get('product_id')) quantity = request.POST.get('quantity', 1) discount = request.POST.get('discount', 0) price = product.price - float(discount) cart.add(product, price, quantity) return HttpResponse()
def add(request): cart = Cart(request.session) event = Event.objects.get(id=request.GET.get('id')) cart.add(event, price=event.price) messages.success(request, "Event added to basket") return render(request, 'ticket/cart/basket.html')
def remove_single(request): cart = Cart(request.session) initial_count = cart.count product = products[int(request.POST.get('product_id'))] cart.remove_single(product) after_rmv_count = cart.count assert initial_count == after_rmv_count + 1 return HttpResponse()
def add_to_cart(request, restaurant_id, food_item_id): cart = Cart(request.session) food_item = FoodItem.objects.get(id=food_item_id) food_item.times_ordered += 1 food_item.save() cart.add(food_item, price=food_item.price) messages.success(request, '{0} added to Cart'.format(food_item.name)) return redirect('customer:restaurant_view', restaurant_id=restaurant_id)
def checkout(request): cart = Cart(request.session) messages.success( request, 'You have paid AED {0} for {1} item(s)'.format(cart.total, cart.count)) messages.success(request, 'Thank you for shopping with us') cart.clear() return redirect('customer:index')
def remove(request): cart = Cart(request.session) event = Event.objects.get(id=request.GET.get('id')) cart.remove_single(event) messages.success(request, "Event removed from basket") return render(request, 'ticket/cart/basket.html')
def remove(request): """ 删除一个商品 """ cart = Cart(request.session) product = Product.objects.get(id=request.GET['id']) cart.remove(product) return HttpResponseRedirect('/cart/')
def update(request): if request.is_ajax(): if request.method == 'POST': cart = Cart(request.session) producto = Product.objects.get(id=request.POST.get('id')) new_cantidad = request.POST.get('valor') cart.set_quantity(producto,quantity=new_cantidad) return HttpResponse('Actualizado')
def add_cart(request): if request.method == 'POST': if request.is_ajax(): cart = Cart(request.session) goods = Goods.objects.get(id=request.POST.get('good')) cart.add(goods, price=goods.price) return JsonResponse({'message': "Added {}".format(goods.name)}) return JsonResponse({'message': "Please Access with AJAX/POST"})
def carrito_count(request): from carton.cart import Cart cart = Cart(request.session) if request.user.is_authenticated(): cartw = request.user.wishlist.all() else: cartw = Cart(session=request.session, session_key='CART-wish') return { "cart":cart, "cartw":cartw }
def cart_remove(request): if request.is_ajax() and request.POST and 'part' in request.POST: cart = Cart(request.session) product = models.Part.objects.get(slug=request.POST.get('part')) cart.remove(product) return HttpResponse(content=product.name + " successfully removed from cart") else: return HttpResponse(status=400, content="Error removing from cart")
def cart_add(request): if request.is_ajax() and request.POST and 'part' in request.POST: cart = Cart(request.session) product = models.Part.objects.get(slug=request.POST.get('part')) cart.add(product, price=product.price) return HttpResponse(content=product.name + " successfully added to cart") else: return HttpResponse(status=400, content="Error adding to cart")
def get(self, request, *args, **kwargs): cart = Cart(request.session) try: cart_item = OrderItemCart.objects.get(pk=kwargs['cart_item_id'], cart__session_key=request.session.session_key) except OrderItemCart.DoesNotExist: return HttpResponseRedirect(reverse('show-cart')) cart.remove(cart_item) cart_item.delete() return HttpResponseRedirect(reverse('show-cart'))
def carrinho_adicionar(request): if request.method == 'POST': carrinho = Cart(request.session) produto = Produto.objects.get(pk=request.POST.get('id')) carrinho.add(produto, price=produto.preco, quantity=request.POST.get('quantidade')) data = json.dumps({'itens': str(len(carrinho.items)), 'total': str(carrinho.total)}) return HttpResponse(data, content_type='application/json') else: return HttpResponse('404')
def decrementar_quantidade(request): produto_id = request.POST['produto'] quantidade = request.POST['quantidade'] carrinho = Cart(request.session) produto = Produto.objects.get(pk=produto_id) carrinho.set_quantity(produto, quantity=quantidade) template = loader.get_template('loja/carrinho.html') context = RequestContext(request) return HttpResponse(template.render(context))
def update_cart(request): cart = Cart(request.session) for product in cart.products: print product.name qty = int(request.POST.get("product_" + str(product.id))) if qty > 0 and qty < 100: cart.remove(product) cart.add(product, price=product.price, quantity=qty) return redirect("pos:cart")
def update_cart(request): if request.method == 'POST': if request.is_ajax(): cart = Cart(request.session) quantity = request.POST.get('quantity') goods = Goods.objects.get(id=request.POST.get('good')) cart.set_quantity(goods, quantity) return JsonResponse( {'message': 'update {} for {}'.format(goods.name, quantity)})
def show(request): cart = Cart(request.session) if request.method == 'POST': quantitylist = request.POST.getlist('quantity[]') for idx, item in enumerate(cart.products): item = Item.objects.get(id=item.id) cart.set_quantity(item, quantitylist[idx]) return redirect(reverse('checkout:page')) return render(request, 'shopping/show-cart.html')
def remove(request, item_id): ''' Controller function for removing an item from the cart. ''' cart = Cart(request.session) product = Product.objects.get(id=item_id) # cart.remove(product, price=product.selling_price) cart.remove(product) return render(request, 'cart.html', locals())
def remove(request): cart = Cart(request.session) # Get cart session # Get product, raise error if doesn't exist try: product = Product.objects.get(id=request.GET.get('id')) except Product.DoesNotExist: raise Http404("Product does not exist") cart.remove(product) # Remove item from cart return redirect('shopping-cart-show') # Refresh page so item is no longer shown
def add_single(request): cart = Cart(request.session) plato = Plato.objects.get(id=request.GET.get('product_id')) if cart.products: if plato.restaurante.id != cart.products[0].restaurante.id: cart.clear() cart.add(plato, price=plato.precio) return platilla_cesta(request);
def show(request): cart = Cart(request.session) if request.method == 'POST': print 'mpike mesa sto post' isbn = request.POST.get("book_isbn",'') quant = request.POST.get("book_new_quant",'') product = Book.objects.get(isbn=isbn) cart.set_quantity(product, quantity=quant) return render(request, 'shopping/show-cart.html')
def carrinho_remover(request): if request.method == 'POST': carrinho = Cart(request.session) produto = Produto.objects.get(pk=request.POST.get('id')) carrinho.remove(produto) template = loader.get_template('loja/carrinho.html') context = RequestContext(request) return HttpResponse(template.render(context)) else: return HttpResponse('404')
def add(request): cart = Cart(request.session) product = Product.objects.get(id=request.POST.get('id')) cart.add(product, price=product.price, quantity=request.POST.get('qty')) recent_product = dict(name=product.productName, image=product.image.url, price=product.price, total=cart.total, items=cart.count) return HttpResponse( json.dumps(recent_product, use_decimal=True), content_type="application/json" )
def add_product(request, product_id): cart = Cart(request.session) product = Product.objects.get(pk=product_id) cart.add(product, price=product.price_ukr()) result = {'products_in_cart': len(cart.items), 'cart_total_sum': int(cart.total)} json_response = json.dumps(result) return HttpResponse(json_response, content_type="application/json")
def remove_single(request, product_id): cart = Cart(request.session) if Item2.objects.filter(product_id=product_id): product = Item2.objects.get(product_id=product_id) elif Item3.objects.filter(product_id=product_id): product = Item3.objects.get(product_id=product_id) else: product = Item4.objects.get(product_id=product_id) cart.remove_single(product) return HttpResponseRedirect('/tohfa/show')
def remove(request): cart = Cart(request.session) product_id = request.GET.get('id') product = Product.objects.get(id=product_id) is_unique = is_product_qty_unique(request, product_id) cart.remove_single(product) html = new_cart_html(request,0) cart_contents_qty = cart_contents_payload_unique(request, is_unique, product_id) payload = update_cart_status_and_prepare_payload(request, html, cart_contents_qty, True) return HttpResponse(json.dumps(payload), content_type="application/json")
def add(request, product_id): cart = Cart(request.session) if Item2.objects.filter(product_id=product_id): product = Item2.objects.get(product_id=product_id) elif Item3.objects.filter(product_id=product_id): product = Item3.objects.get(product_id=product_id) else: product = Item4.objects.get(product_id=product_id) cart.add(product, price=product.price) return HttpResponseRedirect('/tohfa/show')
def checkout_page(request): errors = [] cart = Cart(request.session) freight_only = any([item.product.product.freight_only for item in cart.items]) cost_total = cart.total if cart.is_empty: return redirect(reverse('store')) else: if request.POST: cart_list = [v for k, v in cart.cart_serializable.items()] cal_price = reduce(lambda x, y: x + y, [i['quantity'] * int(i['price']) for i in cart_list]) delivery = request.POST.get('delivery') try: shopper = PersonalInfo.objects.get(id=request.user.personalinfo.id) if cart.total == cal_price and delivery is not None: order = PurchaseOrder.objects.create( number=0, buyer=shopper, order_time=datetime.now(), freight=0 if cart.total > 1500 else 60 if delivery.isdigit() else 90, ship_method='FML' if delivery.isdigit() else 'KTJ', address=delivery, total=cart.total, buyer_notes=request.POST.get('shopper_notes'), order_notes=cart_list ) order.number = float(datetime.now().strftime('%y%m%d%H%M%S')) + float(order.id) order.total = order.total + order.freight # 更改為預購模式! for d in cart_list: item = get_object_or_404(Item, id=d['product_pk']) order.sold_goods.add(item) item.pre_order += d['quantity'] # print ('id={} / 存貨={} / 售貨={} / 總售貨={}'.format( # item.id, item.stock, # item.sold, item.total_sold # )) item.save() order.save() cart.clear() return HttpResponseRedirect(reverse('checkout:orderinfo')) else: errors.append('資料有誤 或 尚未填寫,請重新整理再次一次') except Exception as e: print ('%s (%s)' % (e, type(e))) context = { 'title': '結帳清單', 'errors': errors, 'cost_total': cost_total, 'freight_only': freight_only, } return render(request, 'checkout/checkout-page.html', context)
def add(request): """ 向购物车内增加商品 """ print request.GET print request.POST cart = Cart(request.session) product = Product.objects.get(id=request.GET['id']) quantity = request.POST['quantity'] cart.add(product, price=product.price, quantity=quantity) return HttpResponseRedirect('/cart/')
def clear_cart(request): if request.is_ajax(): cart = Cart(request.session) cart.clear() return render_to_response('mcat_order/cart.html', context_instance=RequestContext(request), content_type="application/xhtml+xml" ) else: if settings.DEBUG: print("Not ajax request") raise Http404
def remove_from_cart(request, slug): if request.is_ajax(): cart = Cart(request.session) product = get_object_or_404(Product, slug=slug) cart.remove_single(product) return render_to_response('mcat_order/cart.html', context_instance=RequestContext(request), content_type="application/xhtml+xml" ) else: if settings.DEBUG: print("Not ajax request") raise Http404
def dispatch(self, request, *args, **kwargs): self.customer = get_object_or_404(Customer, user=self.request.user) #~ create the order cart = Cart(request.session) if cart.count == 0: messages.warning(self.request, _(u'The cart is empty: order cancelled')) return super(PostOrderView, self).dispatch(request, *args, **kwargs) order = Order.objects.create(customer=self.customer, total=cart.total) for item in cart.items: #~ get the product OrderedProduct.objects.create(product=item.product, order=order, quantity=item.quantity, price_per_unit=item.product.price) cart.clear() return super(PostOrderView, self).dispatch(request, *args, **kwargs)
def post(self, request): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) cart = Cart(request.session) product = get_object_or_404(Product, id=serializer.data['product_id']) cart.remove(product) response_data = { 'detail': 'Product was removed from cart.' } response_status = status.HTTP_200_OK return Response(response_data, status=response_status)
def post(self, request): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) cart = Cart(request.session) product = get_object_or_404(Product, id=serializer.data['product_id']) cart.set_quantity(product, quantity=serializer.data['product_quantity']) response_data = { 'detail': 'Product was updated.' } response_status = status.HTTP_201_CREATED return Response(response_data, status=response_status)
def add(request): cart = Cart(request.session) product = Product.objects.get(id=request.GET.get('id')) try: product_stock = ProductStock.objects.get(product=product) except ObjectDoesNotExist: product_stock = None ####ir buscar preco correcto cart.add(product, price=2) html = new_cart_html(request,0) cart_contents_qty = cart_contents_payload(request) payload = update_cart_status_and_prepare_payload(request, html, cart_contents_qty, True) return HttpResponse(json.dumps(payload), content_type="application/json")
def setUp(self): engine = import_module(settings.SESSION_ENGINE) self.session = engine.SessionStore() self.session.save() self.client.cookies[settings.SESSION_COOKIE_NAME] = self.session.session_key self.factory = RequestFactory() self.cart = Cart(self.session) self.deer = Product.objects.create( name='deer', price=10.0, custom_id=1, ) self.moose = Product.objects.create( name='moose', price=20.0, custom_id=2, ) self.ticket = Ticket.objects.create( name='Clint Mansell', price=25.0, custom_id=6, )