def checkout(request): if request.method == 'POST': cart = Cart(request) form = CheckoutForm(request.POST) if form.is_valid(): try: if 'email' in request.POST: update_email(request.user, request.POST.get('email')) customer = get_customer(request.user) customer.update_card(request.POST.get("stripeToken")) product = cart.items()[0].product customer.subscribe(product.plan) cart.clear() return redirect("order_confirmation") except stripe.StripeError as e: try: error = e.args[0] except IndexError: error = "unknown error" return render_to_response('godjango_cart/checkout.html', { 'cart': Cart(request), 'publishable_key': settings.STRIPE_PUBLIC_KEY, 'error': error }, context_instance=RequestContext(request)) else: return render_to_response('godjango_cart/checkout.html', { 'cart': Cart(request), 'publishable_key': settings.STRIPE_PUBLIC_KEY, 'error': "Problem with your card please try again" }, context_instance=RequestContext(request)) else: return render_to_response('godjango_cart/checkout.html', { 'cart': Cart(request), 'publishable_key': settings.STRIPE_PUBLIC_KEY }, context_instance=RequestContext(request))
def remove_item_from_cart(request): if request.method == "POST" and request.is_ajax: print request.POST ##todo 404 if cant find cart = Cart(request) item = cart.get_item_by_id(request.POST["id"]) cart.remove(item.product) data = {"cartcount": len(cart.items()), "id": request.POST["id"] } json = simplejson.dumps(data) return HttpResponse(json, mimetype='application/json') else: return HttpResponseServerError("GET petitions are not allowed for this view.")
def add_item_to_cart(request): if request.method == "POST" and request.is_ajax: print request.POST ##todo 404 if cant find img = GalleryImage.objects.get(name=request.POST['name']) #print str(img) printsize = PrintSize.objects.get(print_size=request.POST['size']) #print printsize cart = Cart(request) cart.add(product=img, unit_price=printsize.price, description= printsize.print_size + " Print", quantity=1) data = {"cartcount": len(cart.items()) } json = simplejson.dumps(data) return HttpResponse(json, mimetype='application/json') else: return HttpResponseServerError("GET petitions are not allowed for this view.")