如何使用javascript从dataLayer读取信息?

时间:2014-03-19 09:19:35

标签: javascript e-commerce cart data-layers

Good morning people of stackoverflow :)

我正在开发一个电子商务网站。我们的跟踪合作伙伴之一需要设置一个 函数名为" csAdd"。此功能读取客户购物车,然后上传信息。

我希望为购物车中的每一行显示 是此模板后面的信息:

myTag.csAdd('Sku1', 
  'Sku1Quantity',
  '', 
  'Sku1Quantity*ItemSinglePrice', 
  'ItemSinglePrice', 
'');

Sku2,Sku3等相同

结果* 如下:

<script>
  myTag.csAdd('136340026', 
  '2',
  '', 
  '90', 
  '45', 
'');

  myTag.csAdd('774595138', 
  '1',
  '', 
  '49.99', 
  '49.99', 
'');

</script>

请注意,有些单引号为空,这不是错误,我们的跟踪脚本需要空的引号,其中不存在信息(例如没有增值税的商品费用)。

* 我的问题是:我不知道如何告诉购物车中每行的javascript&#34; ,请通过csAdd &#34;

所需的信息已经显示在dataLayer中,所以我认为javascript&#34;可以&#34;读这个:

<script>
dataLayer = [{
  'pageTitle': 'BasketPage',
  'basketId': '2241121',
  'admincosts': '5,5',
  'basketTotal': '145.49',
   'basketProducts': [{
    'sku': '136340026',
    'name': 'Jean',
    'price': '90.00',
    'quantity': '2'
},{
    'sku': '774595138',
    'name': 'Jacket',
    'price': '49.99',
    'quantity': '1'
    }]
}];
</script>

但我该怎么办?提前感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:0)

所以你有一个json对象的数组dataLayer,它包含属性'basketProducts'这是一个数组。 你需要两个for循环(每个数组一个)。 在第二个(嵌套)循环中,调用myTag.cs​​Add()方法,在basketProducts [bProd]数组中传递每个产​​品的必需属性值。

for (var i = 0; i < dataLayer.length; i++) {
    var bProd = dataLayer[i].basketProducts;
    for (var j = 0; j < bProd.length; j++) {
        myTag.csAdd(
                    bProd[j].sku,
                    bProd[j].quantity,
                    '',
                    bProd[j].quantity * bProd[j].price,
                    bProd[j].price,
                    ''
                    );
    }
}