{% import '@SyliusShop/Common/Macro/messages.html.twig' as messages %}
{% import '@SyliusShop/Common/Macro/pagination.html.twig' as pagination %}
{% import "@SyliusShop/Common/Macro/money.html.twig" as money %}
{# Povodny search nad kategoriou
<div class="mb-3">
{{ sylius_template_event('sylius.shop.product.index.search', _context) }}
<div class="clearfix"></div>
</div>
#}
{{ sylius_template_event('sylius.shop.product.index.before_list', {'products': resources.data}) }}
{{ sylius_template_event('app.shop.category_view', _context) }}
{% if resources.data|length > 0 %}
<script>
(function () {
const rawItems = [
{% for product in resources.data %}
{
{# json_encode pridá úvodzovky a ošetrí pomlčky v kóde #}
item_id: {{ product.code|json_encode|raw }},
item_name: {{ product.name|json_encode|raw }},
item_category: {{ product.mainTaxon ? product.mainTaxon.name|json_encode|raw : (taxon.name|json_encode|raw) }},
{# Odstránená čiarka za cenou kvôli čistote objektu #}
price: {{ product.variants.empty ? 0 : (product.variants.first.channelPricings.first.price / 100)|default(0) }},
quantity: 1
}{{ not loop.last ? ',' : '' }}
{% endfor %}
];
// Mapovanie položiek do správneho formátu pre GA4
const formattedItems = rawItems.map((item, i) => {
return {
...item,
item_list_id: {{ taxon.code|json_encode|raw }},
item_list_name: {{ taxon.name|json_encode|raw }},
index: i + 1 // GA4 indexy sa zvyčajne číslujú od 1
};
});
pushEcommerceEvent("view_item_list", {
item_list_id: {{ taxon.code|json_encode|raw }},
item_list_name: {{ taxon.name|json_encode|raw }},
items: formattedItems
});
// Nahraď ten nefunkčný querySelector týmto:
document.addEventListener('click', function (e) {
// Toto nájde najbližšieho rodiča s triedou .js-select-product,
// aj keď klikneš na obrázok alebo názov vnútri
const el = e.target.closest('.js-select-product');
if (el) {
const payload = {
item_list_id: el.dataset.itemListId || '',
item_list_name: el.dataset.itemListName || '',
items: [
{
item_id: el.dataset.itemId || '',
item_name: el.dataset.itemName || '',
item_category: el.dataset.itemCategory || '',
item_variant: el.dataset.itemVariant || '',
price: parseFloat(el.dataset.price || '0'),
quantity: parseInt(el.dataset.quantity || '1', 10),
index: parseInt(el.dataset.index || '0', 10)
}
]
};
window.dataLayer.push({ ecommerce: null }); // Vynulovanie pre GA4
window.dataLayer.push({
event: 'select_item',
ecommerce: payload
});
console.log('🖱️ GA4: select_item (Delegované)', payload);
}
});
})();
</script>
<div class="product-list-wrap" {{ sylius_test_html_attribute('products') }}>
<div class="product-list">
<div class="product-list-content row row-cols-2 row-cols-sm-3 row-cols-md-2 row-cols-lg-3 row-cols-xxl-4 row-cols-xxxxl-6">
{% for product in resources.data %}
{% include '@SyliusShop/Product/_box.html.twig' %}
{% endfor %}
</div>
</div>
</div>
{{ sylius_template_event('sylius.shop.product.index.before_pagination', {'products': resources.data}) }}
<div class="d-flex justify-content-end mt-3">
{{ pagination.simple(resources.data) }}
</div>
{% else %}
{{ messages.info('sylius.ui.no_results_to_display') }}
{% endif %}