Добрый вечер.
Столкнулся с такой проблемой. Компонент
bitrix:sale.basket.basket.line, который выводит небольшой блок с корзиной(кол-во товаров в корзине и их общая стоимость), некорректно работает.
Если пользователь не авторизован, то все верно, при нажатии кнопки "В корзину" блок обновляется без перезагрузки всей страницы. Но вот если пользователь залогинен, блок с корзиной совсем не обновляется и там по-прежнему висит 0.
Первое на что подумал - не правильно кастомизировал шаблон, но переключаясь на
.default проблема сохраняется.
С помощью отладки в браузере искал проблему в ответе от сервера. Ответ отдает файл
ajax.php. Для неавторизованных пользователей он отдает обновленный шаблон, в котором больше чем 0 товаров, для авторизованных шаблон с нулем.
Сбрасывал кэш, отключал композит, но ничего не помогло. Подскажите, может какую-то настройку пропустил?
UPD:
Обнаружил еще одну особенность. Ссылка с корзиной, когда пользователь авторизован, обварачивается такими вот комментариями
<!--'start_frame_cache_bx_basketFKauiI'-->
<!--'end_frame_cache_bx_basketFKauiI'-->
Когда пользователь не авторизован, этих комментариев нет.
В коде шаблона генерируется какой-то фрейм. Однако, выводы результатов выполнения его методов и для залогиненых, и для не залогиненых пользователей одинаковые.
/** @var \Bitrix\Main\Page\FrameBuffered $frame */
$frame = $this->createFrame($cartId, false)->begin();
require(realpath(dirname(__FILE__)).'/ajax_template.php');
$frame->beginStub();
$arResult['COMPOSITE_STUB'] = 'Y';
require(realpath(dirname(__FILE__)).'/top_template.php');
unset($arResult['COMPOSITE_STUB']);
$frame->end();