Массив Данных Блока "аналогичные (Похожие) Товары"


#1

Доброго времени суток!

Кто нибудь знает, как просмотреть массив данных блока слайдера "Аналогичные/Похожие товары" в карточке товара, по такому же принципу, как вывести данные о товаре ($product|fn_print_r})???


#2

В блок обычно приходит $items

{$items|fn_print_r}

потом, по одному товару можно распечатать, как вы написали

{$product|fn_print_r}

#3

В блок обычно приходит $items

{$items|fn_print_r}

потом, по одному товару можно распечатать, как вы написали

{$product|fn_print_r}

Спасибо!

Но в моём случае, я наверное немного не правильно описал проблему,

{$items|fn_print_r}

так данные не выводятся.

Мне необходимо этот массив вывести в dataLayer, т.е. между тегами head. А эта конструкция так не выводит ничего при добавлении в meta.post.tpl.

Данная конструкция срабатывает если её добавить в product_scroller.tpl

Есть ли возможность вывести массив скроллера между тегами head?


#4

Есть ли возможность вывести массив скроллера между тегами head?

К сожалению, простого пути нет, т.к. рендеринг блоков происходит независимо от основного контента


#5

К сожалению, простого пути нет, т.к. рендеринг блоков происходит независимо от основного контента

А не подскажите, в какую сторону копать???


#6

А не подскажите, в какую сторону копать???

Пожалуйста, опишите целиком, что вы хотите сделать


#7

Пожалуйста, опишите целиком, что вы хотите сделать

Добрый день!

Задача в следующем, хочу передать в GTM (Google tag manager) данные о просмотре карточки товара вместе со списком Аналогичных/Сопутствующих товаров. Т.е. необходимо передать dataLayer следующего содержания:

dataLayer.push({
        'ecommerce': {
            'currencyCode': 'RUB',
            'detail': {
                'actionField': document.referrer,
                'products': [{
                    'id': 'ID1',
                    'name': 'Product1',
                    'price': '{20.0}',
                    'brand': 'Brand1',
                    'category': 'Category1',
                }]
            },
        'impressions': [
			{
                'name': 'Product 2',
                'id': 'ID3',
                'price': '17.75',
                'brand': 'Brand 2',
                'category': 'Category 1/Subcategory 12',
                'variant': 'Variant 1',
                'list': 'List 2',
                'position': 1
            },
            {
                'name': 'Product 3',
                'id': 'ID4',
                'price': '12.5',
                'brand': 'Brand 3',
                'category': 'Category 1/Subcategory 13',
                'variant': 'Variant 1',
                'list': 'List 2',
                'position': 2
            }
        ]
    }
});

Данные самого товара передаю в файле meta.post.tpl так:

{if $product.product_id}
    
{/if}

Проблема добавить в impressions данные из блока Аналогичные/Сопутствующие товары, ибо массив $item и $products не выводится(пустой) в файле meta.post.tpl. А получить данные необходимо в только в нём, до загрузки кода счётчика GTM.


#8

Можно использовать хук в конце функции fn_get_products (app/functions/fn.catalog.php). Если заполнение идет Похожие товары, то передать в Smarty новую переменную (например, related_products). И ее уже в вашем коде использовать


#9

Можно использовать хук в конце функции fn_get_products (app/functions/fn.catalog.php). Если заполнение идет Похожие товары, то передать в Smarty новую переменную (например, related_products). И ее уже в вашем коде использовать

Спасибо, только не совсем всё понятно, особенно по определению заполнения.

Может есть какой нибудь пример?


#10

Что-то типа

if (!empty($params['similar'])) {
    Tygh::$app['view']->assign('related_products', $products);
}