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>
但我该怎么办?提前感谢您的时间和帮助。
答案 0 :(得分:0)
所以你有一个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,
''
);
}
}