电子商务-我如何从一个数据层读取信息,用javascript

e commerce - How can I read information from a dataLayer, with javascript?

本文关键字:数据 一个 读取 信息 javascript 电子商务      更新时间:2023-09-26
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发送给我信息"

所需的信息已经显示在一个数据层,所以我认为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()方法,传递篮产品[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,
                    ''
                    );
    }
}