Итак, для добавления товара в список просмотренных, в файле component_epilog.php добавляем всего 2 строки:
use \Bitrix\Catalog\CatalogViewedProductTable as CatalogViewedProductTable; CatalogViewedProductTable::refresh($arResult['ID'], CSaleBasket::GetBasketUserID());
Все! Теперь или с помощью компонента bitrix:catalog.viewed.products можно вывести пользователю список товаров, которые он просматривал.
Либо можно воспользоваться API:
$basketUserId = (int)CSaleBasket::GetBasketUserID(false);
if ($basketUserId > 0){
$viewedIterator = Catalog\CatalogViewedProductTable::getList(array(
'select' => array('PRODUCT_ID', 'ELEMENT_ID'),
'filter' => array('=FUSER_ID' => $basketUserId, '=SITE_ID' => SITE_ID),
'order' => array('DATE_VISIT' => 'DESC'),
'limit' => 10
));
while ($arFields = $viewedIterator->fetch()){
$arViewed[] = $arFields['ELEMENT_ID'];
}
}
Результатом будет массив из идентификаторов со списком товаров, который можно уже передавать дальше - или в компонент catalog.section, или еще куда.
