Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!
Лучше способа для сортировки по цене - не слышал..
Методом CIBlockPriceTools::GetOffersArray(IBLOCK_ID, ELEMENT_ID) обходить все товары - достаточно тяжёлый обработчик будет. Возможно есть смысл только по товарам, у которых цена поменялась, проходить (то есть сначала по CPrice::GetList выборку с TIMESTAMP_X делать чтобы найти товары, поменявшие цены за последний, например, день).
Поясню, почему не на обработчике события - потому что при выгрузке из 1С (напримр) будет очень много событий по изменению цены - и пересчет сортировки по нескольку раз на один товар - легко могут завалить всю выгрузку -- сделать её в разы и часы дольше.
Как раз таким настроен обмен с 1с как номенклатурой так и заказами.
Ваш комментарий к ответу:
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.