def add(request): basket = Basket(request) if request.POST.get("action") == "post": order_key = request.POST.get("order_key") user_id = request.user.id baskettotal = basket.get_total_price() # Check if order exists if Order.objects.filter(order_key=order_key).exists(): pass else: order = Order.objects.create( user_id=user_id, full_name="name", address1="add1", address2="add2", total_paid=baskettotal, order_key=order_key, ) order_id = order.pk for item in basket: OrderItem.objects.create(order_id=order_id, product=item["product"], price=item["price"], quantity=item["qty"]) response = JsonResponse({"success": "Return something"}) return response
def payment_selection(request): if 'address' not in request.session: messages.success(request, 'Please select address option') return HttpResponseRedirect(request.META['HTTP_REFERER']) basket = Basket(request) total = basket.get_total_price() price = int(total) print(total) stripe.api_key = settings.STRIPE_SECRET_KEY intent = stripe.PaymentIntent.create( description='Software development services', shipping={ 'name': 'Jenny Rosen', 'address': { 'line1': '510 Townsend St', 'postal_code': '98140', 'city': 'San Francisco', 'state': 'CA', 'country': 'US', }, }, amount=price, currency='gbp', metadata={'userid': request.user.id}) return render( request, 'checkout/payment_selection.html', { 'client_secret': intent.client_secret, 'STRIPE_PUBLISHABLE_KEY': os.environ.get('STRIPE_PUBLISHABLE_KEY') })
def add(request): basket = Basket(request) if request.method == "POST": user_id = request.user.id order_key = request.POST['order_key'] obj = basket.get_total_price() baskettotal = obj # check order is exist # print(baskettotal) if Order.objects.filter(order_key=order_key).exists(): pass else: order = Order.objects.create(user_id=user_id, full_name='name', address1='add1', address2='add2', total_paid=baskettotal, order_key=order_key) order_id = order.pk for item in basket: OrderItem.objects.create(order_id=order_id, product=item['product'], price=item['price'], quantity=item['quantity']) response = JsonResponse({'success': 'success'}) return response
def basket_update_delivery(request): basket = Basket(request) if request.POST.get('action') == 'post': delivery_option = int(request.POST.get("deliveryoption")) delivery_type = DeliveryOptions.objects.get(id=delivery_option) update_total_price = basket.basket_update_delivery( delivery_type.delivery_price) session = request.session if "purchase" not in request.session: session['purchase'] = {"delivery_id": delivery_type.id} else: session['purchase']['delivery_id'] = delivery_type.id session.modified = True response = JsonResponse({ "total": update_total_price, "delivery_price": delivery_type.delivery_price }) return response return render(request, 'checkout/delivery_choices.html')
def basket_update_delivery(request): basket = Basket(request) if request.POST.get('action') == 'post': delivery_option = int(request.POST.get('deliveryoption')) delivery_type = DeliveryOptions.objects.get(id=delivery_option) updated_total_price = basket.basket_update_delivery( delivery_type.delivery_price) session = request.session if 'purchase' not in request.session: session['purchase'] = {'delivery_id': delivery_type.id} else: session['purchase']['delivery_id'] = delivery_type.id session.modified = True response = JsonResponse({ 'total': updated_total_price, 'delivery_price': delivery_type.delivery_price }) return response
def basket_update_delivery(request): basket = Basket(request) if request.POST.get("action") == "post": delivery_option = int(request.POST.get("deliveryoption")) delivery_type = DeliveryOptions.objects.get(id=delivery_option) updated_total_price = basket.basket_update_delivery( delivery_type.delivery_price) session = request.session if "purchase" not in request.session: session["purchase"] = { "delivery_id": delivery_type.id, } else: session["purchase"]["delivery_id"] = delivery_type.id session.modified = True response = JsonResponse({ "total": updated_total_price, "delivery_price": delivery_type.delivery_price }) return response
def payment_complete(request): PPClient = PayPalClient() body = json.loads(request.body) data = body["orderID"] user_id = request.user.id requestorder = OrdersGetRequest(data) response = PPClient.client.execute(requestorder) total_paid = response.result.purchase_units[0].amount.value basket = Basket(request) order = Order.objects.create( user_id=user_id, full_name=response.result.purchase_units[0].shipping.name.full_name, email=response.result.payer.email_address, address1=response.result.purchase_units[0].shipping.address. address_line_1, address2=response.result.purchase_units[0].shipping.address. admin_area_2, postal_code=response.result.purchase_units[0].shipping.address. postal_code, country_code=response.result.purchase_units[0].shipping.address. country_code, total_paid=response.result.purchase_units[0].amount.value, order_key=response.result.id, payment_option="paypal", billing_status=True, ) order_id = order.pk for item in basket: OrderItem.objects.create(order_id=order_id, product=item["product"], price=item["price"], quantity=item["qty"]) return JsonResponse("Payment completed!", safe=False)
def order_place(request): basket = Basket(request) basket.clear() return render(request, 'checkout/orderplaced.html')
def payment_successful(request): basket = Basket(request) basket.clear() return render(request, "checkout/payment_successful.html", {})
def payment_successful(request): basket = Basket(request) basket.clear() # address is missing from the session?! return render(request, "checkout/payment_successful.html", {})