+7 495 008 8452 пн.-пт. 10:00 – 17:00
Загрузка...

Вы выбрали один тип цены, а выгружается другой?

Во всех случаях, с которыми нам приходилось сталкиваться, проблема заключается в методе OnGetOptimalPrice, который существует где-то на Вашем сайте (в init.php или каком-либо модуле). Это метод Битрикса, который получает оптимальную цену товара. Проблема относительно частая, т.к. в большинстве случаев программисты используют этот обработчик криво, т.е. частично. В норме он может либо не принимать цен для пересчёта (тогда он сам находит в базе все цены и потом применяет скидки) либо принимать их в аргументе $arPrices (тогда он в базе ничего не ищет, а применяет скидки только к переданным ценам).

Программисты в большинстве случаев учитывают только первый вариант, т.к. второй - используется на сайтах нечасто. Наш модуль, как и любой подобный функционал на любом другом сайте, использует штатный метод Битрикса для получения оптимальной цены, и передаёт для пересчёта только выбранный тип цены. А в этот метод вклинивается обработчик с некорректным функционалом, который, грубо выражаясь, "плевать хотел" на то, что мы ему передаём на пересчёт только одну заданную цену, и он считает всё равно по своей логике, по всем ценам сайта. Поэтому в итоговом файле выгружается не та цена.

Остаётся только найти этот обработчик, и в качестве проверки в его начале добавить "return true;" (без кавычек, конечно), так Битрикс будет считать что обработчика нет, и всё должно начать работать корректно.

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



Возврат к списку