Система скидок для Drupal 6 + Ubercart 2 с несколькими условиями

Главные вкладки

Аватар пользователя mafia02 mafia02 17 апреля 2012 в 18:39

Что надо мне:
1. Возможность задавать несколько условий для применения скидки
Например, два условия: a. пользователь за все время купил более пяти (это число задается в админке) позиций на сайте (даже одного артикула, главное чтобы общее купленных позиций было равно или больше трех штук); b. общая сумма всех заказов пользователя равна или больше 5000р. (тоже задается в админке). т.е каждый заказ после выставления статуса completed надо проверять на выполнение и первого, и второго условия.

Пример 1.
Покупатель приходит на сайт, покупает одну позицию на сумму 4000 р., заказ отгружается = скидки нет
Этот же покупатель приходит на сайт снова и покупает ещё одну позицию на 1500 р., заказ отгружается = скидки нет, т.к. выполняется только условие по общей сумме всех заказов (6500>5000), в то время как второе условия по кол-ву позиций не выполняется (2<3).
Этот же пользователь приходит на сайт, покупает одну позицию на 500 р., заказ отгружается = теперь выполнены оба условия (3=3, 7000>5000), пользователю задается определенная роль и все следующие заказы идут с процентной скидкой от общей суммы заказа (задается в админке).

главное — решить вопрос по одновременно двум (трем четырем пяти и т.д.) условиями, т.е. считать его общую сумму всех заказов и общее кол-во позиций во всех заказах.

это все можно сделать на основе правил, но нет токенов, которые бы выводили общую сумму заказов и общее кол-во купленных позиций.

НЕУЖЕЛИ нет готового модуля под такую простую задачу? и с помощью токенов не ясно как потом проверять отгружен ли был заказ (вдруг отменили)!?

Что скажете?

смотрел модуль uc_discounts_alt, не обнаружил возможность задать несколько условий. остальные ещё дальше от моих пожеланий(
может я неправильную логику выбрал и надо делать все по другому? казалось, что задача востребованная и такая возможность уже реализована, но похоже нет

Комментарии

Аватар пользователя mafia02 mafia02 18 апреля 2012 в 20:08

<a href="mailto:zlogr@drupal.org">zlogr@drupal.org</a> wrote:
Делал нечто подобное с несколькими условиями путём дописывания под задачу вот этого модуля: uc_discount_total
Пункт "b" там из коробки, остальное нужно дописывать.

готовы сделать? если да, сколько стоит?

Аватар пользователя Andruxa Andruxa 19 апреля 2012 в 1:13

rules - назначение роли,
uc_discounts_alt - скидка определенной роли

несколько небезопасно - админ может наколдовать доступ имени себя после трёх покупок )

Аватар пользователя mafia02 mafia02 19 апреля 2012 в 16:59

Andruxa wrote:
rules - назначение роли,
uc_discounts_alt - скидка определенной роли

несколько небезопасно - админ может наколдовать доступ имени себя после трёх покупок )


uc_discounts_alt проблем не вызывает, а вот правила... из коробки нет такой возможности, как посчитать сумму всех заказов и кол-во позиций во всех заказах

насчет безопасности не понял, что имеется в виду?

Аватар пользователя Andruxa Andruxa 20 апреля 2012 в 9:57

"mafia02" wrote:
из коробки нет такой возможности, как посчитать сумму всех заказов и кол-во позиций во всех заказах

я в конце концов плюнул на рулсы и сделал своим модулем - была похожая задача, система накопительных скидок, без учета кол-ва товаров, но несколько скидок в зависимости от суммы оплаченных заказов.

"mafia02" wrote:
насчет безопасности не понял

uc_discounts_alt предоставляет определенную скидку пользователю с определенной ролью, роль назначается автоматически (рулсами или модулем) - так вот, существует угроза (теоретическая), что криворукий админ магазина может настроить автоматическое назначение роли с какими-нибудь административными привилегиями.
Покупатель оформил несколько заказов на определенную сумму - и стал админом )

Аватар пользователя mafia02 mafia02 6 мая 2012 в 5:13

Andruxa wrote:

я в конце концов плюнул на рулсы и сделал своим модулем - была похожая задача, система накопительных скидок, без учета кол-ва товаров, но несколько скидок в зависимости от суммы оплаченных заказов.

чем тогда твой модуль отличается от uc_discount_total??

Аватар пользователя Andruxa Andruxa 6 мая 2012 в 12:45

сейчас трудно вспомнить, чем меня не устроил uc_discount_total, навскидку - статусы заказов, по которым считается общая сумма покупок, в общую сумму не включается стоимость доставки (только стоимость товаров), и т.п.