Добрый день.
Делаем аналитику ГА4 полноценную и она не цепляет вкладки в которых выводятся блоки этого модуля.
А они важные. На виду.
Добавте плиз хук или может тот экзит лишний и случайно там оказался.
Все как обычно проверено кучей изысканий и поиском иных вариантов. но этот самый надежный и феншуйный.
Дальше письмо со смыслом.
---
Мы используем ваш модуль ab__intelligent_accessories (блоки «Сумісні / Схожі / Похожие товары» на карточке товара) вместе с модулем GA4-аналитики.
Зачем пишем. Нам нужно снимать по этим блокам стандартную e-commerce-аналитику Google Analytics 4:
view_item_list — показы товаров в блоке (какие сопутствующие товары реально увидел покупатель),
select_item — клики по товару из блока.
Это наполняет встроенные отчёты GA4 «Список товаров» (Item list), и мы видим, какой из блоков подбора приносит просмотры, клики и в итоге продажи — то есть насколько эффективен ваш модуль в деньгах. Сейчас эти блоки в аналитику не попадают, и мы буквально «слепы» по ним, хотя по категориям/поиску/каруселям всё уже трекается.
Техническая причина. Товары вкладки наливаются AJAX-контроллером ab__ia_joins.get_join_products (app/addons/ab__intelligent_accessories/controllers/frontend/ab__ia_joins.php), который завершается через exit; (строка ~89). Из-за exit; обходится штатный механизм пост-контроллеров CS-Cart, и никакой сторонний аддон не может пост-обработать отрендеренный products_scroller (добавить в него разметку для аналитики).
Просьба. Добавьте, пожалуйста, точку расширения — хук перед exit;:
/**
* Fires after the join products scroller is rendered, before the AJAX response is sent.
*
* @param array $block Block data
* @param array $products Products shown in the join tab
*/
fn_set_hook('ab__ia_joins_get_join_products', $block, $products);
exit;
(при желании — с guard if (isset($block, $products)) { ... }). Изменение минимальное, логику модуля не меняет — просто даёт штатную точку расширения. Это позволит нам (и другим клиентам) корректно интегрировать аналитику без правок вашего кода.
Спасибо!