def create_order(request, transaction_id): order = Order() checkout_form = CheckoutForm(request.POST, instance=order) order = checkout_form.save(commit=False) order.transaction_id = transaction_id order.ip_address = request.META.get('REMOTE_ADDR') order.user = None if request.user.is_authenticated: order.user = request.user order.status = Order.SUBMITTED order.save() # if the order save succeeded if order.pk: cart_items = cart.get_cart_items(request) for ci in cart_items: # create order item for each cart item oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price # now using @property oi.product = ci.product oi.save() # all set, empty cart cart.empty_cart(request) # save profile info for future orders if request.user.is_authenticated: profile.set(request) # return the new order object return order
def create_order(request, transaction_id): order = Order() checkout_form = CheckoutForm(request.POST, instance=order) order = checkout_form.save(commit=False) order.transaction_id = transaction_id order.ip_address = reqest.META.get('REMOTE_ADDR') order.user = None if request.user.is_authenticated(): order.user = request.user order.status = Order.SUBMITTED order.save() # If order save succeeded if order.pk: cart_items = cart_utils.get_cart_items(request) for ci in cart_items: # Create order item for each cart item oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price oi.product = ci.product oi.save() # Now we can emty the cart cart_utils.empty_cart(request) # save profile info for future orders if request.user.is_authenticated(): from accounts import profile profile.set(request) # Return the new order object return order
def create_order(request, transaction_id): order = Order() checkout_form = CheckoutForm(request.POST, instance = order) order = checkout_form.save(commit = False) order.transaction_id = transaction_id order.ip_address = request.META.get('REMOTE_ADDR') order.user = None if request.user.is_authenticated(): order.user = request.user order.status = Order.SUBMITTED order.save() if order.pk: cart_items = cart.get_cart_items(request) for ci in cart_items: oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price oi.product = ci.product oi.save() cart.empty_cart(request) if request.user.is_authenticated(): from accounts import profile profile.set(request) return order
def show_checkout(request): if cart.cart.is_empty(request): cart_url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(cart_url) if request.method == 'POST': postdata = request.POST.copy() form = CheckoutForm(postdata) if form.is_valid(): response = checkout.checkout.process(request) order_number = response.get('order_number',0) error_message = response.get('message','') if order_number: request.session['order_number'] = order_number receipt_url = urlresolvers.reverse('receipt') return HttpResponseRedirect(receipt_url) else: error_message = 'no order no' raise forms.ValidationError(error_message) else: error_message ='Correct the errors below' else: if request.user.is_authenticated(): user_profile = profile.retrieve(request) form = CheckoutForm(instance=user_profile) else: form = CheckoutForm() page_title = 'Checkout' return render_to_response('checkout/checkout.html', locals(),context_instance=RequestContext(request))
def show_checkout(request, template_name="checkout/checkout.html"): if cart.is_empty(request): cart_url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(cart_url) error_message = '' if request.method == 'POST': form = CheckoutForm(request.POST) if form.is_valid(): response = checkout.process(request) order_number = response.get('order_number', 0) error_message = response.get('message', '') if order_number: request.session['order_number'] = order_number receipt_url = urlresolvers.reverse('checkout_receipt') return HttpResponseRedirect(receipt_url) else: error_message = 'Correct the errors below' else: if request.user.is_authenticated(): user_profile = profile.retrieve(request) form = CheckoutForm(instance=user_profile) else: form = CheckoutForm() ctx_dict = { 'error_message': error_message, 'form': form, 'page_title': 'Checkout', } return render_to_response(template_name, ctx_dict, context_instance=RequestContext(request))
def create_order(request,transaction_id): order=Order() checkout_form=CheckoutForm(request.POST,instance=order) order=checkout_form.save(commit=False) order.transaction_id= transaction_id order.ip_address = request.META.get('REMOTE_ADDR') order.user = None order.user = None if request.user.is_authenticated(): order.user=request.user order.status = Order.SUBMITTED order.save() order.status = Order.SUBMITTED order.save() # if the order save succeeded if order.pk: cart_items = cart.cart.get_cart_items(request) for ci in cart_items: # create order item for each cart item oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price # now using @property oi.product = ci.product oi.save() # all set, empty cart cart.cart.empty_cart(request) #associate orders placed with registered users if they are logged in during the checkout process. if request.user.is_authenticated(): from account import profile profile.set(request) # return the new order object return order
def create_order(request): order = Order() checkout_form = CheckoutForm(request.POST, instance=order) order = checkout_form.save(commit=False) order.user = None if request.user.is_authenticated(): order.user = request.user order.status = Order.SUBMITTED print (order.number) order.save() print (order.number) order.number = int(str(order.id) + datetime.today().strftime('%m%d%Y')) order.save() print (order.number) # create order item for each cart item if order.pk: cart_items = carts.get_cart_items(request) for ci in cart_items: oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.product.price oi.product = ci.product oi.save() carts.empty_cart(request) return order
def get(self, request, *args, **kwargs): buyer = Buyer(request) cart = buyer.cart if not cart.items_qty: if request.LANGUAGE_CODE == 'ua': return redirect('/ua/') else: return redirect('/') if request.user.is_authenticated: user = request.user initial = { 'name': user.name, 'phone': user.phone, 'email': user.email, 'lname': user.lname, 'sname': user.sname } form = CheckoutForm(initial=initial) else: form = CheckoutForm() context = { 'cart': cart, 'form': form, 'discount': cart.discount, 'title': _("Оформление заказа"), 'view': 'Checkout', 'cartJson': cart.dict } return render(request, 'checkout/%s/checkout.html' % request.folder, context)
def show_checkout(request, checkout_type, template_name="checkout/checkout.html"): print(request.GET.copy()) # request1 = locals() # print(request1) print('ian') print(request) if cart.is_empty(request): cart_url = reverse('show_cart') return HttpResponseRedirect(cart_url) if request.method == 'POST' and request.POST.copy( )['submit'] == "Mpesa Payment": postdata = request.POST.copy() form = MpesaCheckoutForm(postdata) if form.is_valid(): response = mpesa_processor.process(request) order_number = response.get('order_number', 0) error_message = response.get('message', '') if order_number: request.session['order_number'] = order_number receipt_url = reverse('checkout_receipt') CART_ID_SESSION_KEY = cart.CART_ID_SESSION_KEY pending = PendingMpesa.objects.filter( cart=request.session[CART_ID_SESSION_KEY]) pending.delete() return HttpResponseRedirect(receipt_url) else: error_message = "Correct the errors below" if request.method == 'POST' and request.POST.copy( )['submit'] == "Place Order": postdata = request.POST.copy() form = CheckoutForm(postdata) if form.is_valid(): response = checkout.process(request) order_number = response.get('order_number', 0) error_message = response.get('message', '') if order_number: request.session['order_number'] = order_number receipt_url = reverse('checkout_receipt') return HttpResponseRedirect(receipt_url) else: error_message = 'Correct the errors below' else: if request.user.is_authenticated: user_profile = profile.retrieve(request) form = CheckoutForm(instance=user_profile) else: form = CheckoutForm() page_title = 'Checkout' if request.method == 'POST' and checkout_type == "Lipa": postdata = request.POST.copy() form = MpesaCheckoutForm(postdata) if request.GET and checkout_type == "Lipa": form = MpesaCheckoutForm() checkout_type = checkout_type return render(request, template_name, locals(), RequestContext(request))
def post(self,request,*args,**kwargs): if request.user.is_admin: order = Order.objects.get(id=kwargs['id']) else: order = Order.objects.get(id=kwargs['id'],user=request.user) order = CheckoutForm(request.POST,instance=order) if order.is_valid(): order.save() return JsonResponse({'result':1}) return JsonResponse({'result':order.errors})
def order_complete(request): if request.method == 'POST': print("inside post") form = CheckoutForm(request.POST) if form.is_valid(): print("form is valid") response = requests.post('http://localhost:8000/api/v1/checkout/', request.POST) print('response', response.text) if response.status_code != 200: return HttpResponse("Your order could not be submitted. Please try again.") template = loader.get_template('order_complete.html') return HttpResponse(template.render({"request": request}))
def show_checkout(request, template_name="checkout/checkout.html"): if cart.is_empty(request): cart_url = reverse("cart:show_cart") return HttpResponseRedirect(cart_url) if request.method == "POST": postdata = request.POST.copy() form = CheckoutForm(postdata) if form.is_valid(): response = checkout.process(request) order_number = response.get("order_number", 0) error_message = response.get("message", "") if order_number: request.session["order_number"] = order_number receipt_url = reverse("checkout:checkout_receipt") return HttpResponseRedirect(receipt_url) else: error_message = "Correct the errors below" else: if request.user.is_authenticated: user_profile = profile.retrieve(request) form = CheckoutForm(instance=user_profile) else: form = CheckoutForm() page_title = "Checkout" return render(request, template_name, locals())
def show_checkout(request, template_name='checkout/checkout.djhtml'): if cart.is_empty(request): cart_url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(cart_url) if request.method == 'POST': postdata = request.POST.copy() form = CheckoutForm(postdata) if form.is_valid(): response = checkout.process(request) order_number = response.get('order_number', 0) error_message = response.get('message', '') if order_number: request.session['order_number'] = order_number receipt_url = urlresolvers.reverse('checkout_receipt') return HttpResponseRedirect(receipt_url) else: error_message = 'Correct the errors below' else: if request.user.is_authenticated(): user_profile = profile.retrieve(request) form = CheckoutForm(instance=user_profile) else: form = CheckoutForm() page_title = 'Checkout' return render(request, template_name, locals())
def show_checkout(request, template_name): """ checkout form page to collect user shipping and billing information """ if cart.is_empty(request): cart_url = reverse('cart:show_cart') return HttpResponseRedirect(cart_url) if request.method == 'POST': postdata = request.POST.copy() form = CheckoutForm(postdata) if form.is_valid(): response = checkout.process(request) order_number = response.get('order_number', 0) error_message = response.get('message', '') if order_number: request.session['order_number'] = order_number receipt_url = reverse('checkout:checkout_receipt') return HttpResponseRedirect(receipt_url) else: error_message = 'Please correct the errors below' else: if request.user.is_authenticated(): user_p = profile.retrieve(request) form = CheckoutForm(instance=user_p) else: form = CheckoutForm() page_title = 'Checkout' return render(request, template_name, locals(), RequestContext(request, processors=[context_processors]))
def create_order(request): order = Order() checkout_form = CheckoutForm(request.POST, instance=order) order = checkout_form.save(commit=False) order.ip_address = request.META.get('REMOTE_ADDR') order.user = None if request.user.is_authenticated(): order.user = request.user order.status = Order.SUBMITTED order.save() # if the order save succeeded if order.pk: cart_items = cart.get_cart_items(request) for ci in cart_items: # create order item for each cart item oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.product = ci.product oi.save() # all set, empty cart cart.empty_cart(request) # save profile info for future orders if request.user.is_authenticated(): from accounts import profile profile.fill(request) # mail the managers mail_manager_subject = '{0} has been placed!'.format(order) mail_manager_message = '{0} has been placed by {1}.\n\nClick here: {2}'.format( order, order.user if order.user else 'anonymous', request.build_absolute_uri( reverse('admin:checkout_order_change', args=(order.pk, )))) mail_managers(mail_manager_subject, mail_manager_message) # mail the customer if order.email: # FIXME: someday make templates for these emails mail_customer_subject = 'Thank you for placing {0}!'.format(order.name) mail_customer_message = '{0} was placed by you. Click here for more details: {1}\n\nThank you for your order!\n\n{2}'.format( order.name, request.build_absolute_uri(order.get_absolute_url()), settings.SITE_NAME) send_mail(mail_customer_subject, mail_customer_message, settings.DEFAULT_FROM_EMAIL, [order.email]) # return the new order object return order
def create_order(request): order = Order() checkout_form = CheckoutForm(request.POST, instance=order) order = checkout_form.save(commit=False) order.user = None if request.user.is_authenticated(): order.user = request.user order.status = Order.SUBMITTED order.save() order.number = int(str(order.id) + datetime.today().strftime('%m%d%Y')) order.save() # create order item for each cart item if order.pk: cart_items = carts.get_cart_items(request) for ci in cart_items: oi = OrderItem() oi.order = order oi.quantity = ci.quantity if ci.product.quantity >= ci.quantity: ci.product.quantity = ci.product.quantity - ci.quantity else: ci.product.quantity = 0 ci.product.save() oi.price = ci.product.price oi.product = ci.product oi.save() carts.empty_cart(request) # send_mail('Subject here', 'Here is the message.', '*****@*****.**', # ['*****@*****.**'], fail_silently=False) items = OrderItem.objects.filter(order = order) plaintext = get_template('email.txt') htmly = get_template('email.html') d = Context({ 'order': order, 'items': items}) subject, from_email, to = 'Ваш заказ', '*****@*****.**', [order.email] text_content = plaintext.render(d) html_content = htmly.render(d) msg = EmailMultiAlternatives(subject, text_content, from_email, to) msg.attach_alternative(html_content, "text/html") msg.send() print('sent!') return order
def post(self, request, *args, **kwargs): buyer = Buyer(request) cart = buyer.cart if not cart.items_qty: if request.LANGUAGE_CODE == 'ua': return redirect('/ua/') else: return redirect('/') form = CheckoutForm(request.POST) if form.is_valid(): order = form.save(commit=False) data = form.cleaned_data order.cart = cart order.user, request = self.user(request, data) order.save() buyer.new() try: order.send_mail(language=request.LANGUAGE_CODE) except: pass try: OrderView.send_sms(order.phone, order.id) except Exception as e: print(e) messages.success(request, 'Ваш заказ успешно оформлен.') if request.user.is_authenticated: return redirect('/user/order/%s' % order.id) else: return redirect('/') context = { 'cart': cart, 'form': form, 'title': _("Оформление заказа"), 'view': 'Checkout' } return render(request, 'checkout/%s/checkout.html' % request.folder, context)
def create_order(request, transaction_id): """ if the POST to the payment gateway successfully billed the customer, create a new order containing each CartItem instance, save the order with the transaction ID from the gateway, and empty the shopping cart """ order = Order() checkout_form = CheckoutForm(request.POST, instance=order) order = checkout_form.save(commit=False) order.transaction_id = transaction_id order.ip_address = request.META.get('REMOTE_ADDR') order.user = None if request.user.is_authenticated(): order.user = request.user order.status = Order.SUBMITTED order.save() if order.pk: """ if the order save succeeded """ cart_items = carts.get_cart_items(request) for ci in cart_items: """ create order item for each cart item """ oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price # now using @property oi.product = ci.product oi.save() # all set, clear the cart carts.empty_cart(request) # save profile info for future orders if request.user.is_authenticated(): from accounts import profile profile.set(request) return order
def checkout(request): carts = Cart.objects.all() price_details = get_price_details(carts) csrfContext = RequestContext(request) checkout_form = CheckoutForm() return render( request, 'checkout.html', { 'form': checkout_form, "carts": carts, "request": request, "price_details": price_details }, csrfContext)
def create_order(request, transaction_id): """ if the POST to the payment gateway successfully billed the customer, create a new order containing each CartItem instance, save the order with the transaction ID from the gateway, and empty the shopping cart """ order = Order() checkout_form = CheckoutForm(request.POST, instance=order) order = checkout_form.save(commit=False) order.transaction_id = transaction_id order.ip_address = request.META.get('REMOTE_ADDR') order.user = None if request.user.is_authenticated(): order.user = request.user order.status = Order.SUBMITTED order.save() if order.pk: """ if the order save succeeded """ cart_items = cart.get_cart_items(request) for ci in cart_items: """ create order item for each cart item """ oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price # now using @property oi.product = ci.product oi.save() # all set, clear the cart cart.empty_cart(request) # save profile info for future orders if request.user.is_authenticated(): from ecomstore.accounts import profile profile.set(request) return order
def create_order(request): order = Order() checkout_form = CheckoutForm(request.POST, instance=order) order = checkout_form.save(commit=False) order.ip_address = request.META.get('REMOTE_ADDR') order.user = None if request.user.is_authenticated(): order.user = request.user order.status = Order.SUBMITTED order.save() # if the order save succeeded if order.pk: cart_items = cart.get_cart_items(request) for ci in cart_items: # create order item for each cart item oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.product = ci.product oi.save() # all set, empty cart cart.empty_cart(request) # save profile info for future orders if request.user.is_authenticated(): from accounts import profile profile.fill(request) # mail the managers mail_manager_subject = '{0} has been placed!'.format(order) mail_manager_message = '{0} has been placed by {1}.\n\nClick here: {2}'.format(order, order.user if order.user else 'anonymous', request.build_absolute_uri(reverse('admin:checkout_order_change', args=(order.pk,)))) mail_managers(mail_manager_subject, mail_manager_message) # mail the customer if order.email: # FIXME: someday make templates for these emails mail_customer_subject = 'Thank you for placing {0}!'.format(order.name) mail_customer_message = '{0} was placed by you. Click here for more details: {1}\n\nThank you for your order!\n\n{2}'.format(order.name, request.build_absolute_uri(order.get_absolute_url()), settings.SITE_NAME) send_mail(mail_customer_subject, mail_customer_message, settings.DEFAULT_FROM_EMAIL, [order.email]) # return the new order object return order
def checkout(request): carts = Cart.objects.all() price_details = get_cart_price_details(carts) if len(carts) < 1: return redirect('/cart') quantity=get_total_quantity_in_cart() csrfContext = RequestContext(request) checkout_form = CheckoutForm() return render(request,'checkout.html', { "quantity":quantity, 'form': checkout_form, "active_tab":"checkout", "request":request, "carts": carts, "price_details": price_details }, csrfContext)
def checkoutpage(request): form = CheckoutForm() if request.method == 'POST': form = CheckoutForm(data=request.POST) if form.is_valid(): order = form.save(commit=False) order.author = request.user order.completed = True order.save() OrderItem.objects.filter(author=request.user).update( order=order.id, completed=True) send_form(instance=order) return redirect('/az/') context = {'form': form} return render(request, 'checkout.html', context)
def get(self,request,*args,**kwargs): context = { 'view':'Profile' } try: if request.user.is_admin: order = Order.objects.get(id=kwargs['id']) else: order = Order.objects.get(id=kwargs['id'],user=request.user) if order.status == 1 and order.payment_type == 2: if CHECKOUT_TYPE == 'wfp': context['data'],context['signature'] = self.wfp(order) else: context['data'],context['signature'] = self.liqpay(order) context['title'] = 'Заказ №%s' % order.id context['form'] = CheckoutForm(initial=order.__dict__) context['order'] = order context['CHECKOUT_TYPE'] = CHECKOUT_TYPE except Order.DoesNotExist: if 'order' in context: del context['order'] context['title'] = _('Информации нет') return render(request, 'user/%s/order.html' % request.folder, context)
def show_checkout(request, checkout_type, template_name="checkout/checkout.html"): # print(request.POST.copy()) # request1 = locals() # print(request1) print('ian') print(request.method) error_message = '' if cart.is_empty(request): cart_url = reverse('show_cart') return HttpResponseRedirect(cart_url) if request.method == 'POST' and request.POST.copy()['payment'] == "Mpesa Payment" or request.method == 'POST' and\ request.POST.copy()['phone2'] != '' and request.POST.copy()['credit_card_number'] == '' and\ request.POST.copy()['credit_card_cvv'] == '': postdata = request.POST.copy() postdata['billing_name'] = postdata['shipping_name'] postdata['billing_address_1'] = postdata['shipping_address_1'] postdata['billing_address_2'] = postdata['shipping_address_2'] postdata['billing_city'] = postdata['shipping_city'] postdata['billing_zip'] = postdata['shipping_zip'] postdata['billing_country'] = postdata['shipping_country'] postdata['payment'] = postdata['payment'] form = CheckoutForm(postdata) if form.is_valid(): response = mpesa_processor.process(request) order_number = response.get('order_number', 0) error_message = response.get('message', '') if order_number: request.session['order_number'] = order_number receipt_url = reverse('checkout_receipt') CART_ID_SESSION_KEY = cart.CART_ID_SESSION_KEY pending = PendingMpesa.objects.filter( cart=request.session[CART_ID_SESSION_KEY]) if pending.count() == 1: pending.delete() return HttpResponseRedirect(receipt_url) else: error_message = "Correct the errors below" if request.method == 'POST' and request.POST.copy()['payment'] == "Place Order" or request.method == 'POST' and\ request.POST.copy()['credit_card_number'] != '' and request.POST.copy()['credit_card_cvv'] != '' and\ request.POST.copy()['phone2'] == '': postdata = request.POST.copy() if 'billing' in request.POST.copy(): if postdata['billing_name'] == '': error_message = 'Input billing name' if postdata['billing_address_1'] == '': error_message = 'Input billing address' if postdata['billing_city'] == '': error_message = 'Input billing city' if postdata['billing_zip'] == '': error_message = 'Input billing zip/postal code' if postdata['billing_country'] == '': error_message = 'Input billing country' if not 'billing' in request.POST.copy(): postdata['billing_name'] = postdata['shipping_name'] postdata['billing_address_1'] = postdata['shipping_address_1'] postdata['billing_address_2'] = postdata['shipping_address_2'] postdata['billing_city'] = postdata['shipping_city'] postdata['billing_zip'] = postdata['shipping_zip'] postdata['billing_country'] = postdata['shipping_country'] form = CheckoutForm(postdata) # print(postdata) # print(form) # print("frm") if form.is_valid(): response = checkout.process(request) order_number = response.get('order_number', 0) error_message = response.get('message', '') if order_number: request.session['order_number'] = order_number receipt_url = reverse('checkout_receipt') return HttpResponseRedirect(receipt_url) else: error_message = 'Correct the errors below' else: if request.user.is_authenticated: user_profile = profile.retrieve(request) form = CheckoutForm(instance=user_profile) else: form = CheckoutForm() """if request.method == 'GET' and checkout_type != 'Lipa' and checkout_type != 'PendingLipa': form = CheckoutForm(instance=user_profile) if request.method == 'POST' and checkout_type == "Lipa": postdata = request.POST.copy() form = MpesaCheckoutForm(postdata) if request.GET and checkout_type == "Lipa": form = MpesaCheckoutForm(instance=user_profile) if request.GET and checkout_type == "PendingLipa": form = MpesaCheckoutForm(instance=user_profile)""" if request.method == 'POST' and checkout_type == "Lipa": postdata = request.POST.copy() # print(postdata) form = CheckoutForm(postdata) # print(request.POST.copy()['payment']) if request.POST.copy()['payment'] == 'on' and postdata['phone2'] == '' and postdata['credit_card_number']\ == '' and postdata['credit_card_cvv'] == '': empty1 = 'Please select payment method' error_message = 'Correct the errors below' if request.POST.copy()['payment'] == 'on' and postdata['phone2'] != '' and postdata['credit_card_number']\ != '' or postdata['credit_card_cvv'] != '': empty1 = 'Please select payment method' error_message = 'Correct the errors below' if request.GET and checkout_type == "Lipa": form = CheckoutForm() """if request.method == 'POST' and checkout_type == "Lipa": postdata = request.POST.copy() form = MpesaCheckoutForm(postdata) if request.GET and checkout_type == "Lipa": form = MpesaCheckoutForm() if request.GET and checkout_type == "PendingLipa": form = MpesaCheckoutForm()""" page_title = 'Checkout' cart_items = cart.get_cart_items(request) cart_subtotal = cart.cart_subtotal(request) checkout_type = checkout_type return render(request, template_name, locals(), RequestContext(request))