Сообщения

Сообщения за январь, 2025

Битрикс: объединение корзины после авторизации

Изображение
В битриксе есть встроенное поведение, когда корзина одного пользователя (неавторизованного) объединяется с корзиной другого пользователя - в момент авторизации пользователя на сайте. По традиции официальная документация про этот функционал умалчивает. Порядок вызовов функций в ядре битрикса тут такой: 1) срабатывает событие главного модуля (main) OnUserLogin . На это событие подписан обработчик события авторизации из модуля интернет магазина (sale) - \CSaleUser::OnUserLogin() . Этот обработчик модуля интернет-магазина внутри только вызывает одну функцию - см. следующий пункт. 2) вызывается обработчик \Bitrix\Sale\Fuser::handlerOnUserLogin() - внутри него происходит определение старого и нового FUSER_ID . Это пользователь интернет-магазина до авторизации и пользователь после авторизации. 3) далее если звёзды сошлись, запускается метод \CSaleBasket::TransferBasket() , который выполняет объединение корзин для найденных FUSER_ID. И всё бы нечего, если бы не возникала иногда необходи...