def create_order(request, transaction_id): """ Если POST запрос к платежной системе успешен, создаем новый заказ содержащий товары из корзины Сохраняем заказ с идентификатором транзации который вернет шлюз платежной системы В конце делаем очистку корзины """ order = Order() checkout_form = ContactForm(request.POST, instance=order) checkout_form.shipping_address_1 = u'%s' % request.POST[ 'shipping_address_1'] order = checkout_form.save(commit=False) # присваиваем купон заказу по купону корзины cart_items = cart.get_cart_items(request) cupon = Cupon() for c in cart_items: cupon = c.cupon order.cupon = cupon 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 delivery = get_current_delivery(request) order.delivery = delivery 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.feel = ci.feel oi.atributes = ci.atributes oi.save() # Очищаем корзину после оформления заказа cart.empty_cart(request) # Очищаем сессию cart_id request.session[CART_ID_SESSION_KEY] = '' # Сохраняем введенные данные для будующих заказов if request.user.is_authenticated(): profile.set(request) # Сохраняем информацию о профиле пользователя if request.user.is_authenticated(): profile.set(request) # Возвращаем объект - новый заказа return order
def create_order(request, transaction_id): """ Если POST запрос к платежной системе успешен, создаем новый заказ содержащий товары из корзины Сохраняем заказ с идентификатором транзации который вернет шлюз платежной системы В конце делаем очистку корзины """ order = Order() checkout_form = ContactForm(request.POST, instance=order) checkout_form.shipping_address_1 = u'%s' % request.POST['shipping_address_1'] order = checkout_form.save(commit=False) # присваиваем купон заказу по купону корзины cart_items = cart.get_cart_items(request) cupon = Cupon() for c in cart_items: cupon = c.cupon order.cupon = cupon 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 delivery = get_current_delivery(request) order.delivery = delivery 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.feel = ci.feel oi.atributes = ci.atributes oi.save() # Очищаем корзину после оформления заказа cart.empty_cart(request) # Очищаем сессию cart_id request.session[CART_ID_SESSION_KEY] = '' # Сохраняем введенные данные для будующих заказов if request.user.is_authenticated(): profile.set(request) # Сохраняем информацию о профиле пользователя if request.user.is_authenticated(): profile.set(request) # Возвращаем объект - новый заказа return order
def order_info_view(request, template_name="registration/order_info.html"): """Представление данных профиля""" if request.method == 'POST': postdata = request.POST.copy() form = UserProfileForm(postdata) if form.is_valid(): profile.set(request) url = urlresolvers.reverse('my_account') return HttpResponseRedirect(url) else: user_profile = profile.retrieve(request) form = UserProfileForm(instance=user_profile) page_title = _(u'Edit Order Information') return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def order_info_view(request, template_name="registration/order_info.html"): """Представление данных профиля""" if request.method == 'POST': postdata = request.POST.copy() form = UserProfileForm(postdata) if form.is_valid(): profile.set(request) url = urlresolvers.reverse('my_account') return HttpResponseRedirect(url) else: user_profile = profile.retrieve(request) form = UserProfileForm(instance=user_profile) page_title = _(u'Edit Order Information') request.breadcrumbs(page_title, request.path_info) return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def create_order(request, transaction_id): """ Если POST запрос к платежной системе успешен, создаем новый заказ содержащий товары из корзины Сохраняем заказ с идентификатором транзации который вернет шлюз платежной системы В конце делаем очистку корзины """ order = Order() checkout_form = ContactForm(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.cupon = cart.get_cupon(request) 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 - (ci.price * int(ci.cupon.percent) / 100)) oi.product = ci.product oi.save() # Очищаем корзину после оформления заказа cart.empty_cart(request) # Сохраняем введенные данные для будующих заказов if request.user.is_authenticated(): profile.set(request) # Сохраняем информацию о профиле пользователя if request.user.is_authenticated(): profile.set(request) # Возвращаем объект - новый заказа return order
def create_order(request, transaction_id): """ Если POST запрос к платежной системе успешен, создаем новый заказ содержащий товары из корзины Сохраняем заказ с идентификатором транзации который вернет шлюз платежной системы В конце делаем очистку корзины """ 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(): profile.set(request) # Сохраняем информацию о профиле пользователя if request.user.is_authenticated(): profile.set(request) # Возвращаем объект - новый заказа return order
def contact(request, template_name='checkout/checkout.html'): device = change_template_for_device(request, template_name)['device'] request.breadcrumbs(u'Данные получателя', request.path_info) if cart.is_empty(request): cart_url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(cart_url) if request.method == 'POST': form = ContactForm(request.POST) phone = request.POST['phone'] if form.is_valid(): form.clean_phone() """создание пользователя при оформлении заказа если не зарегистрирован""" #1 создать user #2 отправить письмо #3 создать User_profile if not request.user.is_authenticated(): name , nu = request.POST['email'].split('@')[:2] try: login_exist = User.objects.filter(username__icontains=name) if login_exist: name = '%s%s' % (name, login_exist.count()) except Exception: name = name new_user = User(username=name, email=request.POST['email']) password = User.objects.make_random_password() new_user.set_password(password) new_user.save() context_dict = { 'name': request.POST['shipping_name'], 'username': new_user.username, 'password': password, } subject = u'Регистрация на сайте www.polythai.ru' message = render_to_string('checkout/reg_email.html', context_dict) from_email = '*****@*****.**' to = new_user.email msg = EmailMultiAlternatives(subject, message, from_email, [to]) msg.content_subtype = "html" msg.send() user = authenticate(username=name, password=password) if user is not None: if user.is_active: login(request, user) profile.set(request) """процесс создания заказа на основе того что было в корзине и на основе введенных данных""" response = checkout.process(request) order = response.get('order', 0) order_id = order.id if order_id: request.session['order_id'] = order_id receipt_url = urlresolvers.reverse('checkout_receipt') return HttpResponseRedirect(receipt_url) else: form = ContactForm(request.POST) return render(request, 'checkout/checkout.html', { 'form': form, 'error': form.errors, }) else: #заполняем форму получателя если пользователь авторизирован if request.user.is_authenticated(): user_profile = profile.retrieve(request) form = ContactForm(instance=user_profile) else: form = ContactForm() return render_to_response(template_name, locals(), context_instance=RequestContext(request))
def contact(request, template_name='checkout/checkout.html'): request.breadcrumbs(u'Данные получателя', request.path_info) if cart.is_empty(request): cart_url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(cart_url) if request.method == 'POST': form = ContactForm(request.POST) phone = request.POST['phone'] if form.is_valid(): form.clean_phone() """создание пользователя при оформлении заказа если не зарегистрирован""" #1 создать user #2 отправить письмо #3 создать User_profile if not request.user.is_authenticated(): name, nu = request.POST['email'].split('@')[:2] try: login_exist = User.objects.filter(username__icontains=name) if login_exist: name = '%s%s' % (name, login_exist.count()) except Exception: name = name new_user = User(username=name, email=request.POST['email']) password = User.objects.make_random_password() new_user.set_password(password) new_user.save() context_dict = { 'name': request.POST['shipping_name'], 'username': new_user.username, 'password': password, } subject = u'Регистрация на сайте www.polythai.ru' message = render_to_string('checkout/reg_email.html', context_dict) from_email = '*****@*****.**' to = new_user.email msg = EmailMultiAlternatives(subject, message, from_email, [to]) msg.content_subtype = "html" msg.send() user = authenticate(username=name, password=password) if user is not None: if user.is_active: login(request, user) profile.set(request) """процесс создания заказа на основе того что было в корзине и на основе введенных данных""" response = checkout.process(request) order = response.get('order', 0) order_id = order.id if order_id: request.session['order_id'] = order_id receipt_url = urlresolvers.reverse('checkout_receipt') return HttpResponseRedirect(receipt_url) else: form = ContactForm(request.POST) return render(request, 'checkout/checkout.html', { 'form': form, 'error': form.errors, }) else: # заполняем форму получателя если пользователь авторизирован if request.user.is_authenticated(): user_profile = profile.retrieve(request) form = ContactForm(instance=user_profile) else: form = ContactForm() return render_to_response(template_name, locals(), context_instance=RequestContext(request))