You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GTM中处理电商dataLayer数组:从商品名称提取正确产品ID

解决方案

1. 从商品名称数组提取正确ID数组

使用ES5兼容的循环逻辑,处理多元素数组并提取名称末尾的ID:

// 假设productNames是已获取到的商品名称数组
var correctIds = [];
for (var i = 0; i < productNames.length; i++) {
    // 按空格分割名称字符串,取最后一段作为正确ID
    var nameSegments = productNames[i].split(' ');
    correctIds.push(nameSegments.pop());
}
// 输出结果:["5012138A","C891017GA","3937235"]

2. 生成替换ID后的完整产品数组

遍历原产品数组,复制每个产品对象并替换id字段为从名称中提取的正确ID:

// 获取原电商产品数组
var originalProducts = window.dataLayer[0].ecommerce.checkout.products;
var updatedProducts = [];

for (var j = 0; j < originalProducts.length; j++) {
    // 复制原产品对象,避免修改原始dataLayer数据
    var newProduct = {};
    for (var prop in originalProducts[j]) {
        if (originalProducts[j].hasOwnProperty(prop)) {
            newProduct[prop] = originalProducts[j][prop];
        }
    }
    // 从当前产品名称中提取正确ID并替换
    var nameSegments = newProduct.name.split(' ');
    newProduct.id = nameSegments.pop();
    updatedProducts.push(newProduct);
}
// updatedProducts即为替换ID后的完整产品数组

关键说明

  • 采用传统for循环而非ES6方法,确保在GTM环境中的兼容性
  • 复制产品对象时使用for-in循环,避免直接引用原对象导致的意外数据修改
  • 统一使用split(' ')分割名称、pop()取最后一段的逻辑,与单元素提取逻辑保持一致

内容的提问来源于stack exchange,提问作者Operanalytics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 17:23:14