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“对于购物车中的每一行,请通过 csAdd 向我发送信息”
所需的信息已经显示在 dataLayer 中,因此我认为 javascript“可以”读取此信息:
<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>
但是我该如何继续呢?预先感谢您的时间和帮助。
最佳答案
因此,您有一个 json 对象的数组 dataLayer,其中包含属性“basketProducts”,它是一个数组。 您需要两个 for 循环(每个数组一个)。 在第二个(嵌套)循环中,您调用 myTag.csAdd() 方法,传递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,
''
);
}
}
关于javascript - 如何使用 javascript 从 dataLayer 读取信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22501111/