def api_checkout(request): cart = Cart(request) data = json.loads(request.body) jsonresponse = {"success": True} first_name = data["first_name"] last_name = data["last_name"] email = data["email"] address = data["address"] zipcode = data["zipcode"] place = data["place"] orderid = checkout(request, first_name, last_name, email, address, zipcode, place) paid = True if paid == True: order = Order.objects.get(pk=orderid) order.paid = True order.paid_amount = cart.get_total_cost() order.save() cart.clear() return JsonResponse(jsonresponse)
def order_create(request): cart = Cart(request) if request.method == 'POST': form = OrderCreateForm(request.POST) if form.is_valid(): order = form.save() for item in cart: OrderItem.objects.create(order=order, product=item['product'], price=item['price'], quantity=item['quantity']) # очистка корзины cart.clear() order_created(order.id) request.session['order_id'] = order.id # redirect to the payment return redirect('payment:process') # return render(request, 'orders/order/created.html', # {'order': order}) else: form = OrderCreateForm return render(request, 'orders/order/create.html', { 'cart': cart, 'form': form })
def api_checkout(request): cart = Cart(request) data = json.loads(request.body) jsonresponse = {'success': True} first_name = data['first_name'] last_name = data['last_name'] email = data['email'] address = data['address'] zipcode = data['zipcode'] place = data['place'] orderid = checkout(request, first_name, last_name, email, address, zipcode, place) paid = True if paid == True: order = Order.objects.get(pk=orderid) order.paid = True order.paid_amount = cart.get_total_cost() order.save() cart.clear() return JsonResponse(jsonresponse)
def api_checkout(request): cart = Cart(request) data = json.loads(request.body) jsonresponse = {'success': True} first_name = data['first_name'] last_name = data['last_name'] email = data['email'] city = data['city'] address = data['address'] phone = data['phone'] orderid = checkout(request, first_name, last_name, email, city, address, phone) cod = True if cod: order = Order.objects.get(pk=orderid) order.cod = True order.amount_to_be_paid = cart.get_total_cost() order.save() html = render_to_string('core/email_confirmation.html') send_mail('Order Confirmation', 'Your order has been sent', '*****@*****.**', ['*****@*****.**', order.email], fail_silently=True, html_message=html) cart.clear() return JsonResponse(jsonresponse)
def order_create(request): cart = Cart(request) if request.method == 'POST': form = OrderCreateForm(request.POST) if form.is_valid(): order = form.save(commit=False) if cart.coupon: order.coupon = cart.coupon order.discount = cart.coupon.discount order.paid = True order.save() for item in cart: OrderItem.objects.create(order=order, product=item['product'], price=item['price'], quantity=item['quantity']) #clear the cart cart.clear() template = 'orders/order/created.html' context = { 'order': order, } # Lauch asynchronous task # order_created.delay(order.id) return render(request, template, context) else: form = OrderCreateForm() template = 'orders/order/create.html' context = { 'cart': cart, 'form': form, } return render(request, template, context)
def api_checkout(request): cart = Cart(request) data = json.loads(request.body) json_response = {'success': True} first_name = data['first_name'] last_name = data['last_name'] email = data['email'] address = data['address'] zipcode = data['zipcode'] city = data['city'] country = data['country'] orderid = checkout(request, first_name, last_name, email, address, zipcode, city, country) paid = True # Update payment if Stripe gets a response back if paid: order = Order.objects.get(pk=orderid) order.paid = True order.paid_amount = cart.get_total_cost() order.save() cart.clear() # When order is complete and paid clear the cart return JsonResponse(json_response)
def order_create(request): cart = Cart(request) if request.method == 'POST': form = OrderCreateForm(request.POST) if form.is_valid(): order = form.save(commit=False) if cart.coupon: order.coupon = cart.coupon order.discount = cart.coupon.discount order.save() for item in cart: OrderItem.objects.create(order=order, product=item['product'], price=item['price'], quantity=item['quantity']) # clear the cart cart.clear() # launch asynchronous task order_created.delay(order.id) # set the order in the session request.session['order_id'] = order.id # redirect for payment return redirect(reverse('payment:process')) else: form = OrderCreateForm() return render(request, 'orders/order/create.html', { 'cart': cart, 'form': form })
def order_create(request): cart = Cart(request) if not request.user.is_authenticated: return redirect('cuenta:dashboard') if request.method == 'POST': form = OrderCreateForm(request.POST) if form.is_valid(): order = form.save(commit=False) order.usuario = request.user order.pagado = False order.creado = datetime.datetime.now() order.actualizado = datetime.datetime.now() order.save() productos_comp = [] for item in cart: OrderItem.objects.create(orden=order,producto=item['product'],precio=item['price'], cantidad=item['quantity']) productos_comp.append(item['product']) if settings.USE_REDIS: r = Recommender() r.producto_comprados(productos_comp) # clear the cart send_mail( 'Se ha producido una venta', 'Un cliente ha comprado algo en la web podes modificarla aca {0}orders/admin/order/{1}/pdf/'.format( settings.BASE_URL, order.id ), '*****@*****.**', settings.VENTAS, fail_silently=False, ) cart.clear() return render(request,'orders/order/creado.html',{'order': order}) else: messages.warning(request, 'Debe corregir los datos para poder finalizar la compra.') else: ultimacompra = None try: ultimacompra = Order.objects.filter(usuario=request.user).order_by('-creado') except: pass if ultimacompra: print("Ultima compra: {}".format(ultimacompra[0])) form = OrderCreateForm(initial={'nombre':ultimacompra[0].nombre if ultimacompra[0].nombre else '', 'apellido':ultimacompra[0].apellido if ultimacompra[0].apellido else '', 'email':ultimacompra[0].email if ultimacompra[0].email else '', 'direccion':ultimacompra[0].direccion, 'telefono':ultimacompra[0].telefono, 'codigopostal':ultimacompra[0].codigopostal, 'ciudad':ultimacompra[0].ciudad}) else: print("No hay compra registrada") form = OrderCreateForm(initial={ 'nombre':'', 'apellido':'', 'email':'' }) return render(request,'orders/order/crear.html',{'cart': cart, 'form': form})
def api_checkout(request): cart = Cart(request) data = json.loads(request.body) jsonresponse = {'success': True} first_name = data['first_name'] last_name = data['last_name'] email = data['email'] address = data['address'] zipcode = data['zipcode'] place = data['place'] phone = data['phone'] orderid = checkout(request, first_name, last_name, email, address, zipcode, place, phone) paid = True order = Order.objects.get(pk=orderid) for item in order.items.all(): product = item.product product.num_available = product.num_available - item.quantity product.save() #mail # html = render_to_string('order_confirmation.html', {'order': order}) # send_mail('Order confirmation', 'Your order is successful!', '*****@*****.**', ['*****@*****.**', order.email], fail_silently=False, html_message=html) if paid == True: order = Order.objects.get(pk=orderid) order.paid = True order.paid_amount = cart.get_total_cost() order.save() cart.clear() send_order_confirmation(order) return JsonResponse(jsonresponse)
def order_create(request): cart = Cart(request) if request.method == 'POST': form = OrderCreateForm(request.POST) if form.is_valid(): order = form.save() for item in cart: OrderItem.objects.create(order=order, product=item['product'], price=item['price'], quantity=item['quantity']) # очистка корзины cart.clear() # запуск ассинхронной операции order_created.delay(order.id) # установить заказ в сессии request.session['order_id'] = order.id # перенаправить на оплату return redirect(reverse('payment:process')) else: form = OrderCreateForm() return render(request, 'order_create.html', {'cart': cart, 'form': form})
def order_create(request): cart = Cart(request) if request.method == 'POST': form = OrderCreateForm(request.POST) if form.is_valid(): order = form.save() for item in cart: OrderItem.objects.create(order=order, product=item['product'], price=item['price'], quantity=item['quantity']) # clear the cart cart.clear() # launch asynchronous task #order_created.delay(order.id) #resolver return render(request, 'orders/order/created.html', {'order': order}) else: form = OrderCreateForm() return render(request, 'orders/order/create.html', {'cart': cart, 'form': form})
def purchase_success(request): # Sample URL: # http://127.0.0.1:8000/success/?checkoutId=CBASEDGudSOD2DXxMx1KwaQWwbI&referenceId=api-order-002&transactionId=12tDMXN2yonV07EUiJT2gQfzTG7YY passed_transaction_id = request.GET.get('transactionId', None) if not passed_transaction_id: return render(request, 'purchase_failed.html', {'error_info': { 'message': 'No transactionId' }}) # Get the customer's id try: transaction_api = squareconnect.apis.transactions_api.TransactionsApi() transaction_api.api_client.configuration.access_token = settings.BIEN_SQR_ACCESS_TOKEN transaction_result = transaction_api.retrieve_transaction( settings.BIEN_SQR_LOCATION_ID, passed_transaction_id) customer_id = transaction_result.transaction.tenders.pop().customer_id except: return render( request, 'purchase_failed.html', { 'error_info': { 'message': 'Failed to load transaction: ' + passed_transaction_id } }) # There are replication delays which can cause the customer to not be available here. # try to get the value, try several times before failing. keep_retrying = 8 while True: try: # And now the customer email customers_api = squareconnect.apis.customers_api.CustomersApi() customers_api.api_client.configuration.access_token = settings.BIEN_SQR_ACCESS_TOKEN customer_result = customers_api.retrieve_customer(customer_id) customer_email = customer_result.customer.email_address except: if keep_retrying == 0: return render( request, 'purchase_failed.html', {'error_info': { 'message': 'Failed to load customer.' }}) else: keep_retrying = keep_retrying - 1 time.sleep(1.5) continue break # Build the results order_info = { 'customer_id': customer_id, 'transaction_id': passed_transaction_id, 'customer_email': customer_email } cart = Cart(request) cart.clear() return render(request, 'success.html', order_info)