动态分配GA增强型电子商务跟踪器

时间:2016-05-19 17:22:15

标签: javascript json google-tag-manager

我有以下javascript代码,我想动态分配其中一个值:

dataLayer.push({
    'event': 'checkout',
    'ecommerce': {
        'checkout': {
            'actionField': {'step': 1, 'option': 'Visa'},
            'products': [{
                'name': 'Triblend Android T-Shirt',
                'id': '12345',
                'price': '15.25',
                'brand': 'Google',
                'category': 'Apparel',
                'variant': 'Gray',
                'quantity': 1
            }]
        }
    }
});

我想通过创建一个新变量来动态分配'product'的内容,所以最终的代码是这样的:

dataLayer.push({
    'event': 'checkout',
    'ecommerce': {
        'checkout': {
            'actionField': {'step': 1, 'option': 'Visa'},
            'products': my_new_array
        }
    }
});

我尝试使用smarty这样做,所以它看起来像这样:

{literal}
dataLayer.push({
    'event': 'checkout',
    'ecommerce': {
        'checkout': {
            'actionField': {'step': 1, 'option': 'Visa'},
            'products': [
                {foreach $products as $product}
                {
                'name': 'Triblend Android T-Shirt',
                'id': '12345',
                'price': '15.25',
                'brand': 'Google',
                'category': 'Apparel',
                'variant': 'Gray',
                'quantity': 1
                }
                {/foreach}
            ]
        }
    }
});
{/literal}

但它不起作用。 我怎样才能实现这一目标?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

var jsonObj = [];
    for(var i=0; i<products.length; i++){
        var item = {};
        var position = i + 1;

        item["id"]   = products[i].id_product;
        item["name"] = products[i].name;
        item["price"] = products[i].price;
        item["brand"] = "Brodo";
        item["category"] = category.name;
        item["variant"] = products[i].name;
        item["list"] = category.name + " list";
        item["position"] = position;
        jsonObj.push(item);
    }

    var product_list = JSON.stringify(jsonObj);
    dataLayer.push({
        'ecommerce': {
            'currencyCode': 'IDR',
            'products': product_list
        }
    });