Пользовательская переменная JavaScript, отображающая несколько товаров в корзине покупок

#google-analytics #google-tag-manager

#google-analytics #google-менеджер тегов

Вопрос:

Я хотел бы создать пользовательскую переменную javascript для захвата всех товаров в корзине покупок. Я хотел бы, чтобы переменная возвращалась в следующем формате: item0 — item1 — item2

  function() { 
        prod_names = []; 

    for( var i=0; i<cart.itemCount; i   ) { 
        prod_names.push(cart.items[i].name); 
    } 
    return prod_names.join(" - "); 
}
  

Я использовал код (отредактированный: удалил . приведенный выше благодаря напоминаниям в комментариях), но он вернул значение undefined. Хотел бы обратиться за помощью ко всем экспертам GTM в этой ситуации. Спасибо.

Ниже показаны элементы datalayer на странице. Спасибо.

введите описание изображения здесь

Комментарии:

1. Как вы вызываете эту анонимную функцию?

2. cart.items.[i].name <= похоже на опечатку с . обозначением перед скобками.

3. Даже когда я удаляю . перед скобкой, пользовательская переменная javascript не работает.

4. Я не предполагаю, что это была ваша единственная проблема, но я на 99% уверен, что это проблема .

Ответ №1:

Не должно быть . перед []

 function() { 
        prod_names = []; 

    for( var i=0; i<cart.itemCount; i   ) { 
        prod_names.push(cart.items/* here is your problem --> */./* <-- */[i].name); 
    } 
    return prod_names.join(" - "); 
}
  

Лично я бы сделал это следующим образом:

 const getNames = cart => cart.items.map(item => item.name).join('-')
  

Комментарии:

1. Извините, могу я узнать, как вернуть ее в функцию / код конфигурации переменной по вашей getNames рекомендации? Спасибо

2. Это просто функция const names = getName(cart)