Добрый день. Попробуйте сессии Битрикс, вместо куки. Делал у себя на проекте, работает
/////Можно сохранить в Битрикс сессии
$session = \Bitrix\Main\Application::getInstance()->getSession();
//$arElements = unserialize($APPLICATION->get_cookie('favorites'));
$arElements = unserialize($session->get('favorites')/*$APPLICATION->get_cookie('favorites')*/);
if(!in_array($_GET['id'], $arElements))
{
$arElements[] = $_GET['id'];
$result = 1; // Датчик. Добавляем
}
else {
$key = array_search($_GET['id'], $arElements); // Находим элемент, который нужно удалить из избранного
unset($arElements[$key]);
$result = 2; // Датчик. Удаляем
}
$session->set('favorites', serialize($arElements));
/*
$cookie = new Cookie("favorites", serialize($arElements), time() + 60*60*24*60);
$cookie->setDomain($context->getServer()->getHttpHost());
$cookie->setHttpOnly(false);
$context->getResponse()->addCookie($cookie);
$context->getResponse()->flush("");*/
в файле component_epolog.php
if(!$USER->IsAuthorized())
{
$session = \Bitrix\Main\Application::getInstance()->getSession();
$arFavorites = unserialize($session->get('favorites'));
//$arElements = unserialize($APPLICATION->get_cookie('favorites'));
//$arFavorites = unserialize($APPLICATION->get_cookie("favorites"));
//print_r($arFavorites);
}
и аналогично в index.php
if(!$USER->IsAuthorized()) // Для неавторизованного
{
global $APPLICATION;
$session = \Bitrix\Main\Application::getInstance()->getSession();
$favorites = unserialize($session->get('favorites'));