Anonymous checkout without email (user model without email), 1-click purchase

56 views
Skip to first unread message

Артем Ивасюк

unread,
May 24, 2019, 8:19:44 AM5/24/19
to django-oscar
Hello everyone.

I'm trying to implement eshop using django ecommerce. Everything seems to go nice and smooth after reading documentation and going through code in repo :)
But one thing is big stopper for using Oscar on my current project - it's required email field for User model. Is there any way to make it optional?
I'm not using Oscar's views for catalogue. Instead only API with some Vue and Nuxt on frontend, but this particular case is something I can't solve.

Use case:
User comes to site, finds product he likes. Instead of adding it to basket he clicks "Buy in 1-click". Popup appears asking his phone number. That's the only thing required to make purchase.

I see two solutions here:
1. 
Create separate model for such purchases which won't go through the full funnel and won't be stored as actual purchase. Add view for it in Dashboard so admins could work with such unquiries.

Pros: it's separate process I have full control of, not messing with actual Oscar models.
Cons: Some magic should be written to transfer such order from inquiry to actual Order model with corresponding Basket and line items models when customer will be contacted and confirms his order. In this case I still need to provide user email.

2.
Add one item to basket, do checkout with only phone number. Generate email randomly on backend with specific domain name. Add checks for this domain name in all business logic so no emails sent.

Pros: keeping everything inside Oscar from the beginning. All data is in dashboard from the very beginning and is part of all sales.
Cons: email address constructing. Smells bad :)

As you can see even with first approach some magic with email should be done because there is no way to create User in oscar without email.

Can you please suggest the best approach here or maybe there is not-so-obvious but good approach to skip email for User model?

Артем Ивасюк

unread,
Jul 4, 2019, 4:19:44 AM7/4/19
to django-oscar
Hello. Any suggestions here?

Алексей Халявин

unread,
Sep 5, 2019, 6:14:22 AM9/5/19
to django-oscar
Добрый день, Артем! У меня стоит такая же задача, нашел какое нибудь решение? 

пятница, 24 мая 2019 г., 17:19:44 UTC + 5 пользователь Артем Ивасюк написал:
Здравствуйте все.

Я пытаюсь реализовать Интернет-магазин с использованием электронной коммерции Django. Кажется, все идет хорошо и гладко после прочтения документации и прохождения кода в репозитории :)
Но одна вещь - большая задержка для использования Оскара в моем текущем проекте - это обязательное поле электронной почты для модели User. Есть ли способ сделать его необязательным?
Я не использую представления Оскара для каталога. Вместо этого только API с некоторыми Vue и Nuxt на внешнем интерфейсе, но этот конкретный случай я не могу решить.

Случай использования:
Пользователь заходит на сайт, находит понравившийся ему товар. Вместо того, чтобы добавить его в корзину, он нажимает кнопку «Купить в 1 клик». Всплывающее окно спрашивает его номер телефона. Это единственное, что требуется для совершения покупки.

Я вижу два решения здесь:
1. 
Создайте отдельную модель для таких покупок, которая не будет проходить через всю воронку и не будет сохранена как фактическая покупка. Добавьте представление для этого в Dashboard, чтобы администраторы могли работать с такими запросами.

Плюсы: это отдельный процесс, который я полностью контролирую, не вмешиваясь в реальные модели Оскара.
Минусы: Должна быть написана некоторая магия для переноса такого заказа из запроса в фактическую модель заказа с соответствующими моделями корзины и позиций, когда с клиентом свяжутся и подтвердят его заказ. В этом случае мне все еще нужно предоставить электронную почту пользователя.

2.
Добавить один товар в корзину, оформить заказ только по номеру телефона. Генерация электронной почты случайным образом на сервере с конкретным доменным именем. Добавьте проверки для этого доменного имени во всей бизнес-логике, чтобы письма не отправлялись.

Плюсы: держать все внутри Оскара с самого начала. Все данные находятся на приборной панели с самого начала и являются частью всех продаж.
Минусы: построение адреса электронной почты. Плохо пахнет :)

Как вы можете видеть, даже при первом подходе нужно поработать над электронной почтой, потому что нет способа создать пользователя в Оскаре без электронной почты.

Можете ли вы предложить лучший подход здесь, или, может быть, есть не очень очевидный, но хороший способ пропустить электронную почту для модели User?

Артем Ивасюк

unread,
Sep 6, 2019, 5:21:59 AM9/6/19
to django-oscar
No. And didn't try to.
For me two points against using Oscar:
1. Mandatory email field without normal way to override such requirement.
2. Solr for faceted search (and the way facets are set up).

Artem Ivasyuk

unread,
May 18, 2020, 11:46:38 AM5/18/20
to django-oscar
Hello! Maybe somebody found a solution?
Reply all
Reply to author
Forward
0 new messages