@nikegk

Почему компонент bitrix:sale.basket.basket.line не работает у залогиненых пользователей?

Добрый вечер.

Столкнулся с такой проблемой. Компонент bitrix:sale.basket.basket.line, который выводит небольшой блок с корзиной(кол-во товаров в корзине и их общая стоимость), некорректно работает.
Если пользователь не авторизован, то все верно, при нажатии кнопки "В корзину" блок обновляется без перезагрузки всей страницы. Но вот если пользователь залогинен, блок с корзиной совсем не обновляется и там по-прежнему висит 0.

Первое на что подумал - не правильно кастомизировал шаблон, но переключаясь на .default проблема сохраняется.
С помощью отладки в браузере искал проблему в ответе от сервера. Ответ отдает файл ajax.php. Для неавторизованных пользователей он отдает обновленный шаблон, в котором больше чем 0 товаров, для авторизованных шаблон с нулем.

Сбрасывал кэш, отключал композит, но ничего не помогло. Подскажите, может какую-то настройку пропустил?

UPD:

Обнаружил еще одну особенность. Ссылка с корзиной, когда пользователь авторизован, обварачивается такими вот комментариями
<!--'start_frame_cache_bx_basketFKauiI'-->
<!--'end_frame_cache_bx_basketFKauiI'-->

Когда пользователь не авторизован, этих комментариев нет.
Скриншот
5a1ff251c813b987973703.jpeg


В коде шаблона генерируется какой-то фрейм. Однако, выводы результатов выполнения его методов и для залогиненых, и для не залогиненых пользователей одинаковые.
/** @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();
  • Вопрос задан
  • 3722 просмотра
Решения вопроса 1
@nikegk Автор вопроса
Проблема оказалась в использовании LocalRedirect'а в событии после авторизации в init.php.

После изменения механизма редиректа все заработало. Такой редирект приводил к проблеме и в другом вопросе.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы