def render_cart(request, template_name='product/cart_fragment.html'): cart = shcart.get_cart_from_request(request) cart_items = shcart.get_cart_items(cart) if request.is_ajax(): response = serializers.serialize("json", cart_items) return HttpResponse(response, content_type='application/json') return render_to_response(template_name, {'cart_items': cart_items} )
def show_cart(request): template = 'cart/cart.html' if request.method == 'POST': postdata = request.POST.copy() if 'remove' in postdata: cart.remove_from_cart(request) if 'update' in postdata: cart.update_cart(request) if 'Checkout' in postdata: checkout_url = checkout.get_checkout_url(request) return HttpResponseRedirect(checkout_url) cart_items = cart.get_cart_items(request) page_title = 'Shopping Cart' cart_subtotal = cart.cart_subtotal(request) context = { 'cart_items': cart_items, 'page_title': page_title, 'cart_subtotal': cart_subtotal, } return render(request, template, context)
def show_cart(request): if request.method == 'POST': post_data = request.POST.copy() if 'submit_remove.x' in post_data: cart.remove_from_cart(request) if 'submit_update.x' in post_data: cart.update_cart(request) cart_item_count = cart.cart_distinct_item_count(request) cart_items = cart.get_cart_items(request) # mostrar el panel amarillo con infos muy importantes(1 de solo 2) if request.user.is_authenticated(): try: promo4 = Promo4.objects.get(winner_user=request.user, active=True) small_text = "Ud. ha sido el ganador de una rifa, y ahora puede comprar estos productos<br/>" big_text = "Por un descuento del %d%%" % promo4.discount except Promo4.DoesNotExist: code, discount_ = get_discount_code(request) small_text = u"Puedes usar tu código de descuento aquí. %s%%" % discount_ big_text = code total, discount, promotions, cart_subtotal, shipping_tax, shipping_tax_promotions = promo( request, cart_item_count, cart_items) page_title = 'Shopping Cart' return render_to_response('cart/show_cart.html', locals(), context_instance=RequestContext(request))
def show_cart(request): cart_items = cart.get_cart_items(request) cart_subtotal = cart.cart_subtotal(request) if len(cart_items) == 0: return render(request, 'account/error.html',{'error':'Cart is empty!'}) else: return render(request,'cart/cart.html',{'cart_items':cart_items, 'cart_id':cart_items[0].cart_id, 'cart_subtotal':cart_subtotal, 'user':request.user})
def confirm_selections(request): "Display the selected products and pricing info and identify payment mechanism." account = request.user.get_profile().account cart = shcart.get_cart_from_request(request) cart_items = shcart.get_cart_items(cart) cart_total = sum([i.extended_price for i in cart_items]) return render_to_response( "product/product_selection_review.html", locals(), context_instance=RequestContext(request) )
def confirm_order(request): user = request.user domain_url = ''.join(['http://', get_current_site(request).domain]) cart_items = cart.get_cart_items(request) page_title = u'Подтверждение' cart_item_count = cart.cart_item_count(request) cart_total = cart.cart_total(request) form = CheckoutForm(request.POST or None, request.FILES or None) if request.method == 'POST': if form.is_valid(): # telephone_1 = form.cleaned_data['telephone_1'] # email = form.cleaned_data['email'] recipients = ['*****@*****.**', '*****@*****.**'] # Send email mail_template = 'mail/mail_order.html' # mail_txt = 'cart/mail.txt' # plaintext = get_template(mail_txt) # text_content = plaintext.render(d) context_dict_0 = {'cart_items': cart_items, 'cart_item_count': cart_item_count, 'cart_total': cart_total, 'domain_url': domain_url} context_dict = dict(context_dict_0.items() + form.cleaned_data.items()) mail_theme = u'ЗАКАЗ' push_mail(context_dict, mail_theme, recipients, mail_template, False) # Clear Cart order = cart.create_order(request) if order.payment == u'Банковский перевод': schet = cart.create_schet(order) if order.email: recipients = [order.email, ] mail_template = 'cart/schet.html' context_dict = {'schet': schet} mail_theme = u'Тест - Счет для оплаты от магазина Феникс' push_mail(context_dict, mail_theme, recipients, mail_template, True) return render_to_response("cart/schet.html", {'request': request, 'user': user, 'schet': schet}) else: return render_to_response("cart/thanks.html", {'request': request, 'user': user}) else: if request.user.is_authenticated(): user = request.user data = {'last_name': user.last_name, 'first_name': user.first_name, 'patronymic': user.patronymic, 'email': user.email, 'telephone_1': user.telephone_1, 'country': user.country, 'region': user.region, 'city': user.city, 'adress': user.adress, 'index': user.index, 'skype': user.skype, } form = CheckoutForm(initial=data) return render_to_response("cart/confirm.html", locals(), context_instance=RequestContext(request))
def show_cart(request, template_name='cart/cart.html'): if request.method == "POST": postdata = request.POST.copy() if postdata['submit'] == "Remove": cart.remove_from_cart(request) if postdata['submit'] == "Update": cart.update_cart(request) cart_items = cart.get_cart_items(request) page_title = "Shopping Cart" cart_subtotal = cart.cart_subtotal(request) return render_to_response(template_name, locals(), RequestContext(request))
def show_cart(request, template_name="cart/cart.html"): if request.method == 'POST': postdata = request.POST.copy() if postdata['submit'] == 'Remove': cart.remove_from_cart(request) if postdata['submit'] == 'Update': cart.update_cart(request) cart_items = cart.get_cart_items(request) page_title = 'Shopping Cart' cart_subtotal = cart.cart_subtotal(request) return render_to_response(template_name, locals(),context_instance=RequestContext(request))
def show_cart(request): cart_items = cart.get_cart_items(request) if request.method == 'POST': postdata = request.POST.copy() if 'update' in postdata.keys(): cart.update_cart(request) if 'remove' in postdata.keys(): cart.remove_from_cart(request) cart_subtotal = cart.get_cart_subtotal(request) total = cart_subtotal return render_to_response('irteerak/cart.html',locals(),context_instance=RequestContext(request))
def show_cart(request, template_name = 'cart/cart.html'): if request.method == 'POST': postdata = request.POST.copy() if postdata['submit']=='Remove': cart.remove_from_cart(request) if postdata['submit']=='Update': cart.update_cart(request) cart_item = cart.get_cart_items(request) cart_id = cart._cart_id(request) page_title = 'Корзина' cart_subtotal = cart.cart_subtotal(request) context = {'cart_item': cart_item, 'cart_id': cart_id, 'cart_subtotal': cart_subtotal} return render(request, template_name, context)
def show_cart(request, template_name="cart/cart.html"): if request.method == 'POST': subtotal_class = cart.Subtotal(request) cart_items = cart.get_cart_items(request) # cart_subtotal = subtotal_class.subtotal() discount = subtotal_class.discount postdata = request.POST.copy() form = OrderForm(request.POST) if 'Remove' in postdata: cart.remove_from_cart(request) if 'Update' in postdata: cart.update_cart(request) if form.is_valid(): # Пишу клиента в базу cart.save_client(request, form) # Удаляю сессию у клиента del request.session['cart_id'] is_order = 1 # Отправляем админу смс if SEND_SMS: cart.send_sms(cart_items, form) # Отправляем админу email if SEND_EMAIL: cart.send_admin_email(request, cart_items, form) if form.cleaned_data['email']: # Отправляем email клиенту cart.send_client_email(cart_items, form) else: form = OrderForm() cart_items = cart.get_cart_items(request) # if cart_items: # subtotal_class = cart.Subtotal(request) # cart_subtotal = subtotal_class.subtotal() # discount = subtotal_class.discount page_title = 'Корзина' return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def checkout_done(request): order = Order.objects.get(pk=request.session[ORDER_ID_SESSION_KEY]) cart_items=[] for item in cart.get_cart_items(request): oi = OrderItem(product=item.irteera,quantity=item.quantity, price=item.irteera.irteera.prezio_orokorra, order=order) oi.save() cart_items = OrderItem.objects.filter(order=order) total=order.get_total() cart.end_session(request) return render_to_response('irteerak/checkout_done.html',locals(),context_instance=RequestContext(request))
def show_cart(request): if request.method == 'POST': postdata = request.POST.copy() if postdata['submit'] == 'Remove': cart.remove_from_cart(request) if postdata['submit'] == 'Update': cart.update_cart(request) if postdata['submit'] == 'Checkout': checkout_url = checkout.get_checkout(request) return HttpResponseRedirect(checkout_url) cart_items = cart.get_cart_items(request) page_title = 'Shopping Cart' cart_subtotal = cart.cart_subtotal(request) return render(request, 'cart/cart.html', locals())
def show_cart(request, template_name="cart/cart.html"): if request.method == "POST": postdata = request.POST.copy() if postdata['submit'] == "Remove": cart.remove_from_cart(request) if postdata['submit'] == "Update": cart.update_cart(request) cart_items = cart.get_cart_items(request) page_title = 'Shopping Cart' cart_subtotal = cart.cart_subtotal(request) return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def show_cart(request, template_name="cart/show_cart.html"): page_title = 'Musical Instruments and Sheet Music for Musicians' if request.method == 'POST': post_data = request.POST.copy() if post_data['submit'] == "Update": cart.update_cart(request) if post_data['submit'] == 'Remove': cart.remove_from_cart(request) cart_subtotal = cart.cart_subtotal(request) cart_items = cart.get_cart_items(request) return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def select_products(request, template="product/product_selection.html", extra_context={}): "Provides the template with a product list and the cart item list, combined for users purchase." user = request.user if user is None or not user.is_authenticated(): return HttpResponseRedirect('/') ## FIXME with decorators.. account = request.user.get_profile().account # post means they've selected somethign to purchase. put the items in your 'cart' and go to confirm stage cart = shcart.get_cart_from_request(request) if request.method == 'POST': shcart.destroy_cart(cart) cart_empty = True product_quantities = [ (int(id[6:]), int(count or 0)) for (id, count) in request.POST.items() if id.startswith('count_') and int(count or 0)] logger.debug('product_quantities\n\n\n\n %s, %s, %s', product_quantities, bool(product_quantities), len(product_quantities)) if product_quantities: cart_empty = False for prod_id, qty in product_quantities: shcart.add_item(cart, prod_id, int(qty)) if '_purchase' in request.POST: if cart_empty: errors = ["You cannot checkout until you purchase at least one item!"] else: # go to confirmation page return HttpResponseRedirect(reverse("confirm_purchase_selections")) return HttpResponseRedirect(reverse('select_products')) cart_items = shcart.get_cart_items(cart) cart_total = sum([i.extended_price for i in cart_items]) item_hash = dict() for item in cart_items: item_hash[item.product_id] = item products = Product.objects.all() pricelist = [ (product, item_hash.get(product.id, 0)) for product in products] # the following won't work, since extended_price is not a database field... # cart_total = cart_items.aggregate(Sum('extended_price')).get('extended_price__sum', 0) logger.debug('cart items: %s', cart_items) context = {'pricelist': pricelist, 'cart_items': cart_items, 'cart_total': cart_total} context.update(extra_context) return render_to_response( template, context, context_instance=RequestContext(request) )
def show_cart(request, template_name="cart/cart.html"): if request.method == 'POST': postdata = request.POST.copy() if postdata['submit'] == 'Remove': cart.remove_from_cart(request) if postdata['submit'] == 'Update': cart.update_cart(request) if postdata['submit'] == 'Checkout': checkout_url = checkout.get_checkout_url(request) return HttpResponseRedirect(checkout_url) cart_items = cart.get_cart_items(request) page_title = 'Shopping Cart' cart_subtotal = cart.cart_subtotal(request) # need for Google Checkout button #merchant_id = settings.GOOGLE_CHECKOUT_MERCHANT_ID return render_to_response(template_name, locals(),context_instance=RequestContext(request))
def show_cart(request, template_name="cart/cart.html"): categories = Category.objects.all() if request.method == "POST": postdata = request.POST.copy() if postdata["submit"] == "Remove": cart.remove_from_cart(request) if postdata["submit"] == "Update": cart.update_cart(request) if postdata["submit"] == "Checkout": checkout_url = checkout.get_checkout_url(request) return HttpResponseRedirect(checkout_url) cart_items = cart.get_cart_items(request) page_title = "Shopping Cart" cart_subtotal = cart.cart_subtotal(request) # for Google Checkout button merchant_id = settings.GOOGLE_CHECKOUT_MERCHANT_ID return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def show_cart(request, template_name="cart/cart.html"): """Displays the shopping cart page """ context = set_context(request, Context({ 'page_title': 'Shopping Cart', })) if request.method == 'POST': postdata = request.POST.copy() if postdata['submit'] == 'Remove': cart.remove_from_cart(request) if postdata['submit'] == 'Update': cart.update_cart(request) context['cart_items'] = cart.get_cart_items(request) context['cart_subtotal'] = cart.cart_subtotal(request) return render(request, template_name, context)
def checkout(request): if request.method == "POST": postdata = request.POST.copy() form = OrderdetailsForm(postdata) if form.is_valid(): instance = form.save() cart_items = get_cart_items(request) for cart_item in cart_items: product = Product.objects.get(product_name = cart_item['product']) order = Order(product = product, quantity = cart_item['quantity'], order_details_id = instance) order.save() request.session.clear() return redirect('thanks') else: form = OrderdetailsForm() categories = Product.objects.values_list('category_name', flat = True ).distinct() return render(request, 'frontend/checkout.html', {'categories' : categories, 'form' : form} )
def show_cart(request, template_name="cart/cart.html"): categories = Category.objects.all() if request.method == 'POST': postdata = request.POST.copy() if postdata['submit'] == 'Remove': cart.remove_from_cart(request) if postdata['submit'] == 'Update': cart.update_cart(request) if postdata['submit'] == 'Checkout': checkout_url = checkout.get_checkout_url(request) return HttpResponseRedirect(checkout_url) cart_items = cart.get_cart_items(request) page_title = 'Shopping Cart' cart_subtotal = cart.cart_subtotal(request) # for Google Checkout button merchant_id = settings.GOOGLE_CHECKOUT_MERCHANT_ID return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def show_cart(request, template_name="cart.html"): if request.method == 'POST': postdata = request.POST.copy() s = postdata['submit'] c = u'\uf021' r = u'\uf00d' if postdata['submit'] == r: cart.remove_from_cart(request) if postdata['submit'] == c: cart.update_cart(request) cart_items = cart.get_cart_items(request) page_title = "Ваш Заказ" cart_subtotal = cart.cart_subtotal(request) cart_distinct = cart.cart_distinct_item_count(request) categories = Category.objects.filter(is_active=True) brands = Brand.objects.filter(is_active=True) return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def show_cart(request, template_name="cart/cart.html"): cart_item_count = cart.cart_item_count(request) if request.method == 'POST': postdata = request.POST.copy() print postdata if postdata['submit'] == u'Удалить': cart.remove_from_cart(request) message = u'Товар удален из корзины.' messages.success(request, message) if postdata['submit'] == u'Сохранить': cart.update_cart(request) message = u'Изменения приняты.' messages.success(request, message) return redirect('show_cart') cart_items = cart.get_cart_items(request) page_title = u'Корзина' cart_total = cart.cart_total(request) torgpred = False user = request.user if user.groups.filter(name=u'Торговые представители').exists(): torgpred = True return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def ajax_promo3(request): cart_item_count = cart.cart_distinct_item_count(request) cart_items = cart.get_cart_items(request) # ver si este usuario tiene asignado un codigo de descuento. try: promo3 = Promo3.objects.get(user=request.user) real_code = promo3.code code = request.POST.get('code', '') if real_code == code: promotion_by_code_discount = promo3.discount success = 'True' request.session['promo3_id'] = str(promo3.id) else: promotion_by_code_discount = None success = 'False' except Promo3.DoesNotExist: success = 'False' promotion_by_code_discount = None total, discount, promotions, cart_subtotal, shipping_tax, shipping_tax_promotions = promo( request, cart_item_count, cart_items, promotion_by_code_discount=promotion_by_code_discount) resp_dict = { 'success': success, 'total': '$%.2f' % total, 'discount': '$%.2f' % discount, 'promotions': promotions, 'cart_subtotal': '$%.2f' % cart_subtotal, 'shipping_tax': '$%.2f' % shipping_tax, 'shipping_tax_promotions': shipping_tax_promotions } response = json.dumps(resp_dict) # request.session['total'] = str(total) return HttpResponse(response, content_type='application/javascript; charset=utf-8')
def checkout_index(request): PAYMENT_PROCESS_NAME = getattr(settings, 'CSIRTEERAK_PAYMENT_PROCESS_NAME', 'csirteerak_checkout_done') cart_items = cart.get_cart_items(request) total = cart.get_cart_subtotal(request) irteera_dict={} for item in cart_items: if item.irteera.irteera.id==3: irteera_aukera = item.irteera.irteera irteeran_okupatuta_n = item.irteera.getDisponibilitatea() irteeraren_muga = item.irteera.irteera.bisitari_kopuru_mugatua bisitan_honetan_datoz_n = item.quantity totalean_bisitan = irteeran_okupatuta_n+bisitan_honetan_datoz_n if totalean_bisitan>irteeraren_muga: return render_to_response('irteerak/muga.html',locals(),context_instance=RequestContext(request)) if request.method == 'POST': postdata = request.POST.copy() postdata['user'] = request.user.id form = CheckOutForm(postdata) if form.is_valid(): item=form.save() item.set_order_number() request.session[ORDER_ID_SESSION_KEY]=item.id return HttpResponseRedirect(reverse(PAYMENT_PROCESS_NAME)) else: form = CheckOutForm(postdata) return render_to_response('irteerak/order_index.html',locals(),context_instance=RequestContext(request)) form = CheckOutForm() return render_to_response('irteerak/order_index.html',locals(),context_instance=RequestContext(request))
def create_order(request, postdata): order = Order() # order.user = None # if request.user.is_authenticated(): # order.user = request.user # данные с формы data = { u"Имя": postdata["first-name"], u"Фамилия": postdata["last-name"], u"Email": postdata["email"], u"Телефон": postdata["phone"], u"Время звонка": postdata["call-time"], u"Область": postdata["region"], u"Город": postdata["city"], u"Улица": postdata["street"], u"Дом": postdata["building"], u"Квартира": postdata["flat"], u"Способ доставки": postdata["ship-method"], u"Номер склада (адрес офиса)": postdata["warehouse"], u"Комментарий к заказу": postdata["comment"], u"Дополнительная информация": postdata["additional_info"], } # добавление данных в модель заказа order.first_name = data[u"Имя"] order.last_name = data[u"Фамилия"] order.email = data[u"Email"] order.phone = data[u"Телефон"] order.call_time = data[u"Время звонка"] order.region = data[u"Область"] order.city = data[u"Город"] order.street = data[u"Улица"] order.building = data[u"Дом"] order.flat = data[u"Квартира"] order.ship_method = data[u"Способ доставки"] order.office = data[u"Номер склада (адрес офиса)"] order.additional_info = data[u"Дополнительная информация"] order.comment = data[u"Комментарий к заказу"] order.ip_address = request.META.get("REMOTE_ADDR") order = Order(**data) order.status = order.SUBMITTED order.save() # отправка почты менеджеру send_mail_manager(data, order) # отправка почты заказчкику if data[u"Email"] != "": send_mail_customer(data, order) # 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)
def paypal_checkout(request, collection_template='product/paypal_checkout.html', confirmation_template='product/paypal_checkout.html', success_url=None, form_class=PaymentForm, extra_context=None): """ Checkout the current shopping cart via paypal.. Template context: - phase - account - form - cart_items Checkout consists of three steps: 1) collect credit card info (while reviewing order info) - on submit we do local validation. cycle until this process succeeds or user quits. - user can select paypal checkout from the point which initiates alternate flow (managed by the paypal plugin) 2) display card info and order info for final review - on submit we - create an invoice from the currnent cart - destroy the current cart - send card / order info to payment gateway for processing - if processing succeeds - find the invoice and mark it paid - else if it fails - find the invoice and mark it 'failed'. attach failure info to invoice for tracking 3) display invoice and success/failure message If the user elects paypal checkout, there is an alternate flow. """ def item_from_invoice(inv): item = { "amt": inv.total, "invnum": inv.id, "custom": request.session.session_key, # for debugging "desc": inv.description, "cancelurl": make_site_url(reverse('select_products')), # Express checkout cancel url "returnurl": make_site_url(reverse('dealer-dashboard')) # Express checkout return url } return item phase = request.GET.get('p', 'collect') logger.debug('entered paypal_checkout: phase=%s, GET=%s, POST=%s', phase, request.GET, request.POST) # gather some info we always need account = request.user.get_profile().account cart = shcart.get_cart_from_request(request) cart_items = shcart.get_cart_items(cart) template = collection_template if request.method == 'GET': # dieplay cc form form = form_class() elif request.method == 'POST': # validate the cc form. form = form_class(request.POST, request.FILES) if phase == 'collect': logger.debug(' paypal_checkout: collect phase...') if form.is_valid(): template = confirmation_template phase = 'confirm' elif phase == 'confirm': logger.debug(' paypal_checkout: confirm phase...') if form.is_valid(): logger.debug(' paypal_checkout: confirm phase valid...') invoice = shcart.create_invoice_from_cart(cart, account, request.user) response = form._process(request, item_from_invoice(invoice)) logger.debug(' paypal_checkout: payment response: %s', response) if not response.flag: invoice.status = Invoice.Const.PAID invoice.save() register_purchase(invoice.id, invoice.customer, invoice.total, invoice.total_credit) request.user.message_set.create(message='Payment processed successfully - thanks!') if success_url: return HttpResponseRedirect(success_url) else: invoice.status = Invoice.Const.CANCELLED #invoice.notes = '%s: %s' % (response.flag_code, response.flag_info) notes = '%s: %s' % (response.flag_code, response.flag_info) invoice.save() request.user.message_set.create(message='Payment processing error - %s' % notes) return HttpResponseRedirect(reverse('invoice-detail', kwargs={'object_id': invoice.id})) else: phase = 'collect' # back up... else: return HttpResponseServerError("Internal error - illegal program state: %s" % phase) context = locals() context.pop('request') logger.debug(' paypal_checkout: exiting with context: %s', context) return render_to_response( template, context, context_instance=RequestContext(request))