Не так давно я задался целью (но мысли были всегда) получить близкий к настоящим реалиям магазин, где все было бы реально быстро. Быстрый вывод, быстрый фильтр, быстрый список. Если фильтр еще в процессе рождения, то подход к скидкам я готов представить на суд [spoiler] Здесь хочу предупредить, что этот модуль не подходит под стандартные компоненты каталога, а только под компоненты собственного производства, в которых можно отключить вывод скидок.
Вообще, скидки Битрикс мне не нравились никогда. Они сносили коту под хвост любую архитектуру, ибо требовали расчет скидки на каждой итерации в выводе списка товаров. Это ужас, но это дань универсальности. Я понимаю вендора, и не говорю, что это плохо.
Я уже давно пытался предпринять нечто такое, что позволило бы считать скидки разом перед выводом списка товаров. В принципе, оное получилось, работало, пока... не появился Битрикс 12.0, который дал очень мощный конструктор скидок, вместе с ним давший еще больший геморрой в производительности. К сожалению (или к счастью), я не сторонник товарищей "это выпустил Битрикс, мы просто переодели", и было решено положить этому конец.
Так родился до ужаса простой, но действенный подход к организации скидок: А давайте их загоним в свойства?! А апдейтить будем на агенте. Что получим? Мы получим настолько быстрый каталог товаров (список) насколько вы сами его сделаете таким. А скидки не убьют вашу производительность, и будут применяться к товарам мгновенно.
Как видите, часть товаров получила скидку 12%, а некоторые - 16%. Дело за малым - далее надо эти свойства вывести в списке товаров и обработать их соответствующе (а вот теперь понимаете, почему стандартные компоненты не подходят? потому что они потянут за собой все равно весь шквал скидок и расчетов).
Да, и знаете какой тут побочный плюс? Вы можете теперь все ваши товары разгруппировать по скидкам и вывести это в разделе - раздел 20%, раздел 50%, раздел "все по 100 рублей!". И эти разделы формируются автоматически и быстро. Чувствуете мощь?
Да, решение далеко не для конечного клиента, но становится мощным орудием в руках грамотных интеграторов (как минимум). Первая цель для меня - чтобы магазины моих клиентов работали быстро.
Ну а теперь вкратце о технической реализации. Агент бегает по измененным товарам (за определенный период), и высчитывает для них скидки. Так, как они высчитываются при обычном выводе. Если скидка есть - проставляет. Скидка пропадает - убирает. Если произошли изменения скидок - сбрасывает управляемый кеш каталога. Если изменяем скидки или добавляем новый - пересчитываются все товары. Тонкости еще в процессе отладки (хотя модуль себя уже зарекомендовал), открыт к пожеланиям и комментариям.
Некоторые ограничения:
Модуль работает только для инфоблоков, которые привязаны к одному сайту.
Величина скидки высчитывается для групп пользователей "все". То есть, данный подход не считает персональные скидки и скидки на группы пользователей. Но поддержка групп стоит в планах (например, "оптовые покупатели").
Пока не реализована скидка по периоду активности самих товаров (активность скидки учитывается).
Но все готово быть допиленным для поиска оптимальной золотой середины. Пишите!
Решение платное, 1000 руб., без помощи в интеграции, "как есть". Присутствует демо-период 10 дней, в течение которого вы сможете понять, устраивает ли вас такой подход.
Антон, а если есть торговые предложения, и скидка именно для предложения, то как все будет? я так понимаю надо тогда сделать (свойств в инфоблоке sku и свойства там же?)
разобрался, единственное наверное в настройках модуля было бы интерестно такой функционал (в настройках галочка) - если у всех предложений одинаковый процент скидки то этот процент скидки выставлять в свойство основного товара!
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».