1
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>

但是我该如何进行呢?提前感谢您的时间和帮助。

4

1 回答 1

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,
                    ''
                    );
    }
}
于 2014-03-19T11:18:52.023 回答