Сегодня понадобилось вывести товары просмотренные пользователем через модуль bitrix:catalog.viewed.products, и к моему удивлению модуль ничего не вывел, оказалось что Монитор производительности: b_catalog_viewed_product пустой, соответственно данные о просмотре не собираются, эти же данные используются для новой фишки битрикса catalog.bigdata.products. В тех поддержке сказали для теста подключить стандартный шаблон catalog.element, после подключения данные начали появляться, но проблема в том что у меня свой шаблон (кастомизированный), как же обойти данное неудобство. В стандартном компоненте данные собираются файлом script.js и передаются на запись в файл ajax.php (находится в папке компонента) и уже он записывает данные в базу. Решением данного вопроса является добавление скрипта в наш файл шаблона кастомизированного компонента.
<script type="text/javascript"> var viewedCounter = { path: '/bitrix/components/bitrix/catalog.element/ajax.php', params: { AJAX: 'Y', SITE_ID: "<?= SITE_ID ?>", PRODUCT_ID: "<?= $arResult['ID'] ?>", PARENT_ID: "<?= $arResult['ID'] ?>" } }; BX.ready( BX.defer(function(){ BX.ajax.post( viewedCounter.path, viewedCounter.params ); }) ); </script>
После добавления данного кода данные записываются и мы можем спокойно выводить просмотренные товары и данные bigdata.