У платформы 1С-Битрикс: Управление сайтом есть одна интересная особенность. Неавторизованный пользователь накидывает корзину, потом решает авторизоваться и... теряет все то, что накидал в корзину. Это происходит потому, что у неавторизованного и авторизованного пользователей разный FUSER и при авторизации происходит переключение с одного на другого. Просто в файл bitrix/php_interface/init.php добавляем следующий код use Bitrix\Sale\Basket;
use Bitrix\Sale\Fuser;
use Bitrix\Main\Context;
Loader::includeModule('sale');
Loader::includeModule('catalog');
{
$siteId = Context::getCurrent()->getSite();
$fuserId = Fuser::getId();
$basket = Basket::loadItemsForFUser($fuserId, $siteId);
} В данном случае мы просто подставляем корзину неавторизованного пользователя авторизованному. Но, теряем корзину авторизованного. Все работы ведем там же или делаем подключаемый файл, тут как вам удобнее. И подключаем все необходимые классы. use Bitrix\Main\Loader;
use Bitrix\Main\Context;
use Bitrix\Sale