0

Я пытаюсь настроить расширенную аналитику электронной торговли для чтения данных транзакций со страницы подтверждения заказа.Менеджер тегов Google и продвинутая электронная торговля - продукты транзакций

Я очищаю данные от элементов Dom, так как это единственный доступный мне вариант.

Я могу прочитать поля для transactionId, transactionTotal, transactionShipping и т. Д., Но я не могу читать транзакционные товары. (Я могу только читать 1 продукт, но не более, если в заказе есть несколько продуктов).

Мой слой данных был добавлен в качестве тега пользовательского HTML, как так -

<script>  
window.dataLayer = window.dataLayer || [] 
    dataLayer.push({ 
     'transactionId': {{transactionId}}, 
     'transactionAffiliation': 'Company name',  
     'transactionTotal': {{transactionTotal}}, 
     'transactionTax': 0, 
     'transactionShipping': {{transactionShipping}}, 
     'transactionProducts': [{ 
      'sku': {{productCode}}, 
      'name': {{transactionName}}, 
      'category': 'Generic category', 
      'price': {{transactionPrice}}, 
      'quantity': {{transactionQuantity}} 
     }] 
    }); 
</script> 

Поля пользовательских JavaScript переменные.

Например -

TransactionID -

function() { 
    var transactionId = document.querySelector([id*='OrderNumberValue']").textContent; 
return transactionId; 
} 

После тега обжигают на странице подтверждения слой данных выглядит так (как вы можете видеть, только одна сделка продукт возвращается при есть 2 продукта в заказе) -

Window Loaded: 
    {event: 'gtm.load'} 
    transactionId: '1000001', 
    transactionAffiliation: 'Company name', 
    transactionTotal: '10.00', 
    transactionTax: 0, 
    transactionShipping: '0.00', 
    transactionProducts: [ 
    { 
     sku: 'SAMPLE1', 
     name: 'Sample product', 
     category: 'Generic category', 
     price: '5.00', 
     quantity: '1' 
    }] 
} 
{gtm.start: 1474472447660, event: 'gtm.js'} 

Поймите ли вы, что бы вы ни советовали.

Благодаря

ответ

0

Это на самом деле не отвечает до тех пор, пока вы не показываете, как HTML для вас продуктов выглядеть, но в основном вы бы использовать document.querySelectorAll на элементах, которые содержат продукты, а затем перебирать результаты и выбирать значения из внутренних элементов для каждого отдельного результата. Назначьте (временный) объект продукта, добавьте к своим транзакционным продуктам и т. Д. Для каждой итерации.

var results= document.querySelectorAll('.product'); 

transactionProducts = []; 
for (i = 0; i < results.length; ++i) { 
result = results[i]; 
tmp = {}; 
tmp.price = result.querySelector('.sku').textContent; 
tmp.price = result.querySelector('.price').textContent; 
transactionProducts.push(tmp); 
} 

Не действительно испытаны или что-нибудь (и есть, конечно, более элегантные способы перебора нодлисты), но это должно дать вам идею.

+0

Спасибо за ответ Eike. Это помогло мне в правильном направлении решить проблему. –

Смежные вопросы