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 = 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, 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 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 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 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 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 checkout(request): if request.method == 'GET': # request.session['braintree_client_token'] = braintree.ClientToken.generate() stripe_customer = stripe.Customer.retrieve( request.user.user.stripe_customer_id) payment_info = stripe_customer.sources.retrieve( stripe_customer.default_source) cart = request.session.get('cart', {}) new_cart = cart.copy() item_list = [] sold_item_list = [] total_price = 0 total_shipping = 0 for id in cart: try: item = Item.objects.get(pk=id) if item.sold == True: sold_item_list.append(item) del new_cart[id] else: item_list.append(item) total_price = total_price + item.price total_shipping = total_shipping + item.shipping_price except: pass final_total = total_shipping + total_price if sold_item_list: request.session['cart'] = new_cart return render( request, 'checkout/checkout.html', { 'sold_item_list': sold_item_list, 'items': item_list, 'total': final_total, 'sub_total': total_price, 'total_shipping': total_shipping, 'payment_information': payment_info }) else: print request.POST cart = request.session.get('cart', {}) new_cart = cart.copy() item_list = [] sold_item_list = [] total_price = 0 total_shipping = 0 final_total = 0 print cart print new_cart for id in cart: try: item = Item.objects.get(pk=id) if item.sold == True: sold_item_list.append(item) base_sold_email_template = open( os.path.join(PROJECT_ROOT, 'emails/reminder_email.html')).read() message = sendgrid.Mail( to=item.seller.email, subject='CampusThrift Buyer Reminder', html=base_sold_email_template, text='Body', from_email='*****@*****.**') sg.send(message) del new_cart[id] else: item_list.append(item) total_price = total_price + item.price total_shipping = total_shipping + item.shipping_price except: pass final_total = total_shipping + total_price if sold_item_list: request.session['cart'] = new_cart return render( request, 'checkout/checkout.html', { 'sold_item_list': sold_item_list, 'items': item_list, 'total': final_total, 'sub_total': total_price, 'total_shipping': total_shipping }) else: new_order = Order() new_order.buyer = request.user sub_total = 0 shipping_total = 0 final_total = 0 # for item in item_list: new_order_item = OrderItem() new_order_item.order = new_order new_order_item.item = item new_order_item.seller = item.user new_order_item.shipping_method = request.POST[str(item.pk) + '_ship_method'] new_order_item.price = item.price if int(request.POST[str(item.pk) + '_ship_method']) == 1: new_order_item.shipping_price = 0.00 new_order_item.order_item_total_price = new_order_item.price else: new_order_item.shipping_price = item.shipping_price shipping_total = shipping_total + item.shipping_price new_order_item.order_item_total_price = new_order_item.price + new_order_item.shipping_price sub_total = sub_total + item.price new_order_item.save() new_order.shipping_address = request.POST['address'] new_order.city = request.POST['city'] new_order.state = request.POST['state'] new_order.zip = request.POST['zip'] new_order.final_total = sub_total + shipping_total new_order.shipping_total = shipping_total new_order.sub_total = sub_total new_order.save() request.session['order'] = new_order.primary_key return redirect('confirm')