def checkout(request): if request.method == 'POST': # listing out the data given by user to place order . itemsJSon = request.POST.get('itemsJson', '') # listing out the data given by user to place order . name = request.POST.get('name', '') # listing out the data given by user to place order . amount = request.POST.get('amount', '') # listing out the data given by user to place order . email = request.POST.get('email', '') # listing out the data given by user to place order . phone = request.POST.get('phone', '') # listing out the data given by user to place order . address = request.POST.get('address1', '') + \ " " + request.POST.get('address2', '') # listing out the data given by user to place order . state = request.POST.get('state', '') # listing out the data given by user to place order . city = request.POST.get('city', '') # listing out the data given by user to place order . zip_code = request.POST.get('zip_code', '') order = Order(itemJSon=itemsJSon, amount=amount, name=name, email=email, phone=phone, address=address, state=state, city=city, zip_code=zip_code) # passig value at order class order.save() # saving the data in table global id_order id_order = order.order_id thanks = True return render(request, "shop/payment.html", {'thanks': thanks, 'id': id_order, }) return render(request, "shop/checkout.html")
def setUp(self): """ """ self.tax = TaxClass(name="20%", rate=Decimal('20.0')) self.tax.save() self.p1 = Product.objects.create(name="Product 1", slug="product-1") self.p2 = Product.objects.create(name="Product 2", slug="product-2") self.p1.save() self.p2.save() price1 = ProductPrice(product=self.p1, _unit_price=Decimal('10.0'), currency='CZK', tax_class=self.tax, tax_included=self.tax_included) price2 = ProductPrice(product=self.p2, _unit_price=Decimal('100.0'), currency='CZK', tax_class=self.tax, tax_included=self.tax_included) price1.save() price2.save() self.cart = Order() self.cart.save() item1 = OrderItem(order=self.cart, product=self.p1, quantity=1) item2 = OrderItem(order=self.cart, product=self.p2, quantity=1) item1.save() item2.save() self.cart.recalculate_totals() self.cart.save()
def post(self, request): if request.POST.get('email'): name = request.POST.get('name') phone = request.POST.get('phone') email = request.POST.get('email') customer = Customer(name=name, phone=phone, email=email) customer.save() qrcode_path = customer.qrcode_create() customer.qrcode = qrcode_path customer.save() order = Order(customer=customer, ) order.save() cart = request.session.get('cart') if cart: for product_id, quantity in cart.items(): cart = Cart(product_id=product_id, quantity=quantity, order=order, complete=True) cart.save() del request.session['cart'] request.session.save() cart = order.cart_set.all() context = {'cart': cart, 'order': order} return render(request, 'shop/order.html', context)
def sale(request): cart = Cart.objects.all() #incart = Cart.objects.raw('SELECT * FROM shop_cart INNER JOIN shop_product WHERE shop_cart.product_id = shop_product.id') if (cart.count() > 0): cart_list = [] price = 0 print(cart) order = Order() order.save() for item in cart: product = Product.objects.filter(pk=item.product_id)[0] price += product.price * item.amount order.products.add(product) op = Order_Product.objects.filter(order_id=order.id).filter( product_id=item.product_id)[0] op.amount = item.amount op.save() order.total_price = price order.save() Cart.objects.raw('DELETE FROM shop_cart') Cart.objects.all().delete() context = { 'product': Product.objects.all(), 'type': ProductType.objects.all(), 'msg': 'Create order id : %s successfully' % order.id, } #return redirect(to='index') return render(request, template_name='shop/index.html', context=context)
def checkout(request): if request.method == "POST": item_json = request.POST.get('itemsJson', '') name = request.POST.get('name', '') amount = request.POST.get('amount', '') email = request.POST.get('email', '') address = request.POST.get('address1', '') + \ " " + request.POST.get('address2', '') city = request.POST.get('city', '') state = request.POST.get('state', '') zip_code = request.POST.get('zip_code', '') phone = request.POST.get('phone', '') order = Order(item_json=item_json, name=name, amount=amount, email=email, address=address, city=city, state=state, zip_code=zip_code, phone=phone) order.save() update = OrderUpdate(order_id=order.order_id, update_desc="The order has been placed.") update.save() id = order.order_id message = 'Your order has been placed successfully. Thank you for ordering with us. Your order id is ' return render(request, 'shop/checkout.html', { 'id': id, 'name': name, 'msg': message }) else: return render(request, 'shop/checkout.html')
def checkout(request): if request.method == "POST": itemJson = request.POST.get('itemJson') name = request.POST.get('name') email = request.POST.get('email') address = request.POST.get('address1') + " " + request.POST.get( 'address2') city = request.POST.get('city') state = request.POST.get('state') zip_code = request.POST.get('zipcode', '') order = Order(itemJson=itemJson, name=name, email=email, address=address, city=city, state=state, zip_code=zip_code) order.save() orderupdate = OrderUpdate(order_id=order.order_id, order_desc="Your order has been received") orderupdate.save() thank = True return render(request, 'shop/checkout.html', { 'thank': thank, 'id': order.order_id }) return render(request, 'shop/checkout.html')
def checkout(request): products1 = product.objects.all() params1 = {'pro': products1} if request.method == "POST": name = request.POST.get('name', '') email = request.POST.get('email', "") amount = request.POST.get('amount', "") address = request.POST.get('address', "") address2 = request.POST.get('address2', "") city = request.POST.get('city', '') state = request.POST.get('state', '') zip_code = request.POST.get('zip', '') order = Order(name=name, email=email, add=address, add2=address2, city=city, state=state, zip_code=zip_code, price=amount) order.save() update = Update(order_id=order.order_id, update_desc="The order has been placed") update.save() return render(request, 'shop/checkout.html', params1) return render(request, 'shop/checkout.html', params1)
def checkout(request): if request.method == 'POST': address = request.POST.get('address') customer = request.session.get('register_user') cart = request.session.get('cart') # list of customer order product with quantity ids = list(request.session.get('cart').keys()) products = Watch.objects.filter(id__in=ids) print(address, customer, products, cart) for product in products: order = Order( product=product, price=product.watch_price, address=address, ) request.session['cart'] = {} order.placeOrder() # request paytm to trasfer user amount param_dict = { # Local variable checksum error 37:43 video # yYzRdS69774940605473 'MID': 'qofSIN69628291597131', 'ORDER_ID': 'order.order_id', 'TXN_AMOUNT': '1', 'CUST_ID': 'email', 'INDUSTRY_TYPE_ID': 'Retail', 'WEBSITE': 'WEBSTAGING', 'CHANNEL_ID': 'WEB', # Change Callback_URl to your ip 'CALLBACK_URL': 'http://127.0.0.1:8000/pages/handlerequest/', } param_dict['CHECKSUMHASH'] = checksum.generate_checksum( param_dict, MERCHANT_KEY) return render(request, 'pages/paytm.html', {'param_dict': param_dict})
def form_valid(self, form, **kwargs): order = Order() try: order.user_order = self.request.user except ValueError: order.user_order = None cart = self.request.session.get('cart') for key, value in form.cleaned_data.items(): setattr(order, key, value) order.save() for id in cart: store_product = Product.objects.get(pk=id) if cart[str(store_product.id)] < store_product.remainder: make_order = OrderProducts() product = store_product make_order.product = product make_order.quantity = cart[str(product.id)] store_product.remainder -= int(make_order.quantity) make_order.order = order make_order.save() store_product.save() else: make_order = OrderProducts() product = store_product make_order.product = product make_order.quantity = store_product.remainder store_product.remainder = 0 make_order.order = order make_order.save() store_product.save() self.request.session['cart'] = {} return self.get_success_url()
def checkout(request): if request.method == 'POST': items_json = name = request.POST.get('itemsJson', '') name = request.POST.get('name', '') email = request.POST.get('email', '') phone = request.POST.get('phone', '') address = request.POST.get('address1', '') + " " + request.POST.get( 'address2', '') city = request.POST.get('city', '') state = request.POST.get('state', '') zip_code = request.POST.get('zip_code', '') order = Order(items_json=items_json, name=name, email=email, phone=phone, address=address, city=city, state=state, zip_code=zip_code) order.save() update = Update(order_id=order.id, update_desc="The order has been placed") update.save() thank = True order_id = order.id context = {'thank': thank, 'order_id': order_id} return render(request, 'shop/checkout.html', context) return render(request, 'shop/checkout.html')
def commitorder(request): token=request.session.get("token") dict={} try: user = User.objects.get(token=token) try: cartlist = Cart.objects.filter(user=user,is_delete=False) # 此处应该添加支付成功接口 # === 先忽略 adsid = request.GET.get("adsid") address = UserAddress.objects.get(id=adsid) paytype = request.GET.get("paytype") total_price = request.GET.get("total_price") ispay = True order = Order(user=user,address=address,pay_type=paytype,is_pay=ispay,order_price=total_price) order.save() cartlist.update(is_delete=True,order=order) for i in order.cart_set.all(): # print(i.product.prod_id,i.product.prod_sales,i.prod_num) p = Product.objects.get(prod_id=i.product.prod_id) p.prod_sales = p.prod_sales + i.prod_num p.prod_num = p.prod_num - i.prod_num p.save() dict["status"] = "success" except Exception as e : print(e) dict["status"] = "error" except User.DoesNotExist: dict["status"] = "nologin" return JsonResponse(dict)
def finalview(request): u = request.user c = User.objects.get(username=u) cc = CartItem.objects.filter(cart=c) ftotal = 0 m = random.randint(14563789, 24356729) for i in cc: ftotal += i.quantity * i.product.price i.transaction_id = m i.ordered = True i.save() for new in cc: new_order = Order(order=new.cart, product=new.product, transaction_id=new.transaction_id, quantity=new.quantity, ordered=new.ordered) if new.total == 0: new_order.total = new.product.price else: new_order.total = new.total new_order.save() cc.delete() return render(request, 'shop/finalpage.html', { 'final': cc, 'ftotal': ftotal })
def checkout(request): if request.method == "POST": items_json = request.POST.get('itemsJson') name2 = request.POST.get('name2', '') email = request.POST.get('email', '') address = request.POST.get('address1', '') + \ " | " + request.POST.get('address2', '') city = request.POST.get('city', '') state = request.POST.get('state', '') zip_code = request.POST.get('zip_code', '') phone2 = request.POST.get('phone2', '') order = Order(items_json=items_json, name2=name2, email=email, address=address, city=city, state=state, zip_code=zip_code, phone2=phone2) #order.save() #update= OrdersUpdate(order_id= order.order_id, update_desc="The order has been placed") #update.save() #thank = True #id = order.order_id"" return render(request, "checkout.html", {'thank': thank, 'id': id}) return render(request, "checkout.html")
def account(): user = db.session.query(User).filter( User.mail == session['username']).scalar() if session.pop('ordered', None): order = Order( date=date.today().strftime('%d.%m.%Y'), sum=session['order_summ'], status=1, mail=session['username'], phone=session['phone'], address=session['address'], user_id=user.id, ) # в cart записаны id блюд # если блюда в заказе повторяются, то в таблицк для M2M будет только одна запись, # напимер Заказ_6 - Блюдо_3, несмотря на то что Блюдо_3 было заказано два раза for id in set(session.get('cart', [])): meal = db.session.query(Meal).filter(Meal.id == id).scalar() a = Association_orders_meals(meal_num=session['cart'].count(id)) a.meal = meal order.meals.append(a) db.session.add(order) db.session.commit() # заказ записан, удаляем из сессии # всё, кроме 'cart' можно удалить при формировании заказа, удаляю здесь, # на ввсякий случай после commit() в БД session.pop('cart') session.pop('order_summ') session.pop('username') session.pop('phone') session.pop('address') orders = db.session.query(Order).filter(Order.user_id == user.id).order_by( Order.date.desc()).all() return render_template('account.html', orders=orders)
def __save_order_to_db(cart, client, address): order = Order() order = add_order_products_to_order(order, cart) order.client = client order.address = address order.order_date = datetime.datetime.now() order.save()
def cart_pay_success(request): '''Logics after a successful payment was made ''' items = [] order = None cart = get_object_or_404(Cart, owner=request.user) cart_items = CartItem.objects.filter(cart=cart) d_result = CartItem.objects.filter(cart_id=cart.cart_id).aggregate( Sum('quantity'), Sum('price')) # This is also to prevent resubmit when user refreshes the payment sucessful page if (not d_result['quantity__sum']) or (not d_result['price__sum']): return HttpResponseRedirect(reverse("shop:shop_home")) #with transaction.Atomic(): # Create a payment record payment = Payment.objects.create( description="Credit payment", amount=d_result['price__sum'] if d_result['price__sum'] else 0, comment="stripe payment") # Create an order order = Order(owner=request.user) order.description = "Online purchase" order.quantity = d_result['quantity__sum'] if d_result[ 'quantity__sum'] else 0 order.total = d_result['price__sum'] if d_result['price__sum'] else 0 order.payment = payment order.comment = "paid by stripe" order.save() # Populate order items to OrderItem table (?? using map()) for item in cart_items: OrderItem.objects.create(order_id=order.order_id, product_id=item.product.id, quantity=item.quantity, price=item.price) # Remove all items from the cart CartItem.objects.filter(cart=cart).delete() # codeset 2 is Product Category categories = CodeValue.objects.filter( code_set_id=2).order_by('display_sequence') items = OrderItem.objects.filter(order=order) o_result = OrderItem.objects.filter(order=order).aggregate(Sum('price')) context = { 'items': items, 'categories': categories, 'page_title': "Payment Successful", 'order_total': o_result['price__sum'] if o_result['price__sum'] else 0, } return render(request, "shop/cart_pay_success.html", context)
def setUp(self) -> None: self.product = Product.objects.get(id=1) self.product2 = Product.objects.get(id=2) self.user = MyUser.objects.get(id=1) self.user2 = MyUser.objects.get(id=2) self.test_order = Order(user=self.user, product=self.product, amount=10) self.test_order.save() self.user_test_zero_money = MyUser.objects.get(id=3) self.product_test_zero_amount = Product.objects.get(id=3) Order.objects.create(user=self.user_test_zero_money, product=self.product_test_zero_amount, amount=100)
def index(request): #if request.user: user = request.user choices = [('all', u'Любой тип')] + Item._meta.get_field('type').choices selected = 'all' if request.method == 'POST': type = request.POST.get('item_type') if type != 'all': selected = type item_list = Item.objects.filter(type=type).order_by() else: item_list = Item.objects.all() else: item_list = Item.objects.all().order_by('type') paginator = Paginator(item_list, 1) # Show 25 contacts per page page = request.GET.get('page') try: items = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. items = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. items = paginator.page(paginator.num_pages) if 'basket' not in request.session: if not user.is_anonymous(): order = Order(user_id=request.user.id, full_sum=0) else: order = Order(user_id=-1, full_sum=0) basket = {'sum': 0, 'count': 0} request.session['basket'] = basket context = { 'items': items, 'user': user, 'choices': choices, 'selected': selected } return render(request, 'shop/index.html', context)
def addorder(): good_id = request.values.get('good_id').strip() good_name = request.values.get('good_name').strip() quantity = request.values.get('quantity').strip() price = request.values.get('price').strip() username = request.values.get('username').strip() address = request.values.get('address').strip() date = datetime.datetime.now().strftime('%Y-%m-%d') remark = request.values.get('remark').strip() db.session.add(Order(good_id, good_name, quantity, price, username, address, date, remark, '待审核',0)) db.session.commit() return redirect('/order/')
def cart_buy(request): cart = Cart(request) if request.user.is_authenticated: ordered_items = Item.objects.filter( id__in=map(int, cart.cart.keys())).all() for i in ordered_items: order = Order(profile=request.user.profile, item=i) order.save() cart.clear() return JsonResponse({"response": "OK"}) else: return JsonResponse({"response": "REDIRECT"})
def order_create(): form = OrderCreateForm() if form.validate_on_submit(): cart = Cart() if len(cart) == 0: return redirect(url_for('index')) order = Order(form.name.data, form.phone.data, form.address.data) order.create(cart) cart.clear() return render_template('shop/cart/created.html', form=form, order=order) return render_template('shop/cart/create.html', form=form)
def make_order_view(request): '''Page order''' try: cart_id = request.session['cart_id'] cart = Cart.objects.get(id=cart_id) request.session['total'] = cart.items.count() except: cart = Cart() cart.save() cart_id = cart.id request.session['cart_id'] = cart_id cart = Cart.objects.get(id=cart_id) form = OrderForm(request.POST or None) images = ThemeFront.objects.all() categories = Category.objects.filter(priority=True) context = { 'cart': cart, 'images': images, 'categories': categories, } context = {**context, **context_1} if form.is_valid(): name = form.cleaned_data['name'] last_name = form.cleaned_data['last_name'] phone = form.cleaned_data['phone'] buying_type = form.cleaned_data['buying_type'] sail = form.cleaned_data['sail'] date_delivery = form.cleaned_data['date_delivery'] address_true = form.cleaned_data['address_true'] comment = form.cleaned_data['comment'] new_order = Order() new_order.user = request.user new_order.save() new_order.items.add(cart) new_order.first_name = name new_order.last_name = last_name new_order.phone = phone new_order.buying_type = buying_type new_order.sail = sail new_order.date_delivery = date_delivery new_order.address = address_true new_order.comment = comment new_order.total = cart.cart_total new_order.save() del request.session['cart_id'] del request.session['total'] return HttpResponseRedirect(reverse('thank_you')) return render(request, 'thank_you.html', context=context)
def checkout(request): items = OrderItem.objects.filter(owner = request.user, is_ordered = False).all() order = Order( owner = request.user, price = get_total(items) ) order.save() for i in items: order.items.add(OrderItem.objects.get(id = i.id)) order.save() for i in items: i.is_ordered = True i.save() return redirect('dash')
def place_order(request): """ Place order with the active cart of the logged user Cart will be inactive after """ logged_user = request.user cart = get_logged_user_cart(logged_user) order = Order(cart=cart, date=datetime.datetime.now()) order.save() cart.active = False cart.save() serializer = OrderSerializer(order) return Response(serializer.data)
def cart_clean(request): template = 'shop/cart_clean.html' if request.user.is_authenticated: number = time.time_ns() name = request.user.email acc = User.objects.get(email=name) cart_objects = Cart.objects.all().filter(user=acc) for obj in cart_objects: order = Order(user=obj.user, product=obj.product, pr_count=obj.pr_count, number=number) order.save() Cart.objects.all().filter(user=acc).delete() return render(request, template, context={})
def add_myorder(gid): quantity = request.values.get('quantity') date = datetime.datetime.now().strftime('%Y-%m-%d') good = Good.query.filter_by(id=gid).all()[0] good_name = good.name username = current_user.username if int(quantity) < 20: price = good.retail_price else: price = good.trade_price address = current_user.address gross_profit = price - good.purchase_price db.session.add(Order(gid, good_name, quantity, price, username, address, date, '暂无', '待审核', gross_profit)) db.session.commit() return redirect('/myorder')
def create_order(req): if req.method != 'POST': return nl_render(req, 'pages/access_denied.html') p = dict(req.POST) cart = Cart(req) order = Order() order.first_name = p['first_name'][0] order.phone = p['phone_number'][0] order.city = p['city'][0] order.street = p['street'][0] order.building = p['building'][0] order.comment = p['comment'][0] last_order = Order.objects.all().order_by('-id')[0] if last_order: order.number = last_order.number + 1 order.save() for item in cart: order.items.add(item.product) cart.check_out() subj = 'Получен заказ #%s на сумму %s' % ( order.number, order.total_price(), ) message = ''' Поступил заказ #{number} на сумму {price}. ФИО: {name} Телефон: {phone} Адрес: {address} Комментарий: {comment} '''.format(number=order.number, price=order.total_price(), name=order.first_name[0], phone=order.phone[0], comment=order.comment, address=order.address()) send_mail(subj, message, settings.DEFAULT_FROM_EMAIL, [settings.ADMIN_EMAIL], fail_silently=True) return nl_render(req, 'pages/order_success.html')
def checkout(request): if request.method == 'POST': item_json = request.POST.get('itemsJson', '') amount = request.POST.get('amount', '') name = request.POST.get('name', '') email = request.POST.get('email', '') address = request.POST.get('address', '') + request.POST.get( 'address2', '') city = request.POST.get('city', '') state = request.POST.get('state', '') zip_code = request.POST.get('zip_code', '') phone = request.POST.get('phone', '') od = request.POST.get('id', '') order = Order(item_json=item_json, amount=amount, name=name, email=email, address=address, city=city, state=state, zip_code=zip_code, phone=phone) order.save() thank = True update = OrderUpdate(order_id=order.order_id, update_desc="The Order has been placed.") update.save() id = order.order_id return render(request, 'shop/checkout.html', { "thank": thank, "id": id }) return render(request, 'shop/checkout.html')
def product_page(request, pk): product = get_object_or_404(Product, pk=pk) user = request.user order = Order() context = { 'product': product, } if request.method == 'POST': order.product = product order.user = user order.total_cost = product.cost order.delivery_date = datetime.datetime.now() + datetime.timedelta( days=5) order.save() return render(request, 'product.html', context)
def submit_order(): if request.method != 'POST': redirect(url_for('cart')) cart_id = request.form.get('cart_id', '') firstname = request.form.get('firstname', '') lastname = request.form.get('lastname', '') address = request.form.get('address', '') order = Order(cart_id=int(cart_id), first_name=firstname, last_name=lastname, shipping_address=address) cart = Cart.query.get(int(cart_id)) cart.ordered = True db.session.add(cart) db.session.add(order) db.session.commit() return render_template('submit_order.html')