Индивидуальные скидки, нештатные скидки или свой алгоритм расчета цены товара

Рейтинг: 2.0000  
На голосовании
Предложил Арсен 05.02.2018 09:20:56

Индивидуальные скидки, нештатные скидки или свой алгоритм расчета цены товара

Господа, очень часто сталкиваемся с такой задачей, как "нештатные скидки", или "нештатный алгоритм расчета цены товара".

На форуме уже не первый год поднимались похожие вопросы, но к сожалению ни в одном из них не пришли к решению задачи.

Пример задачи: например у нас есть инфоблок со скидками, с привязками к пользователям, нужно автоматически в зависимости от пользователя, применить эту скидку.
Или цена товара рассчитывается по следующему алгоритму "Базовая цена + коэффициент", где коэффициент меняется в зависимости от разных признаков, например группы пользователя.

Трудности в следующем: не получается "малой кровью" пересчитывать цены или скидки, чтобы пересчитанная цена отображалась как в каталоге товаров, так и в корзине и других компонентах, где идет вывод товара с ценой.

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

Искали разные события в ядре, которые помогли бы только в одном месте внести изменения по алгоритму расчета цены, и никакие шаблоны не кастомизировать. К сожалению ничего еще не нашли.

Может у вас есть какие-то мысли или решения проблемы?




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