Могу ли я иметь двух разных типов пользователей в веселье?
Мне нужно построить интернет-магазин. Я думаю о том, чтобы использовать самоцвет spree вместо того, чтобы строить все с нуля, но раньше я не использовал spree. Одним из моих требований является наличие двух типов пользователей, и приложение должно иметь возможность отображать и применять цены на основе этого пользователя. Например, если пользователь - оптовый покупатель, приложение должно показывать более низкую цену, а если пользователь - обычный пользователь, оно должно показывать другую цену. Это может быть легко сделано в веселье?
1 ответ
Я работал над проектом, который использовал Spree и требовал обширной настройки. Spree позволяет настраивать практически все, хотя некоторые настройки сложнее, чем другие.
Spree действительно позволяет вам легко иметь несколько типов пользователей. На самом деле, это ничего не значит о вашей пользовательской модели. Вы можете использовать самоцвет Devise или создать свою собственную модель пользователя. В любом случае, допустим, вы добавили логическое значение is_wholesale в свою модель пользователя. В качестве альтернативы вы можете использовать встроенные функции Spree (см. Эту ссылку для получения дополнительной информации).
Более сложная часть вашего вопроса заключается в том, как именно работает оптовое ценообразование. Если оптовые покупатели получают фиксированную процентную скидку от розничных цен (например, 20% на каждый товар), то реализовать эту функцию с помощью Spree довольно легко. Просто создайте специальное продвижение (см. Это руководство) с фиксированным процентом скидки и сделайте его доступным только для пользователей с логической или правильной ролью Spree is_wholesale. Вы также можете настроить вид товаров и категорий Spree, чтобы показать скидку для оптовых покупателей.
Тем не менее, если вы хотите, чтобы каждый продукт действительно имел две цены (а не только фиксированный процент скидки), все становится намного сложнее. Мой опыт (хотя, конечно, я этого не пробовал) заключается в том, что это потребует много работы с различными внутренними элементами Spree (например, модель продукта Spree, элементы корзины, интерфейс администратора) и приведет к большим вытягивать.