У меня есть переменная gtm, которая использует переменную уровня данных для элементов строки корзины.
dataLayer = [{
'cartLineitems': [
{'productCode':'test1','quantity':1},
{'productCode':'test2','quantity':1},
{'productCode':'test3','quantity':1}
]
}];
Когда корзина обновляется, я устанавливаю пользовательское событие 'onCartUpdate' и обновляю dataLayer новым массивом lineitems корзины. Это работает правильно при изменении количества - новая переменная gtm показывает первый элемент массива с обновленным количеством.
dataLayer.push({
'event': 'onCartUpdate',
'cartLineitems': [
{'productCode':'test1','quantity':2}},
{'productCode':'test2','quantity':1}},
{'productCode':'test3','quantity':1}
});
Однако, когда покупатель удаляет товар из корзины, gtm, похоже, не видит, что в массиве теперь меньше элементов. В отладчике он показывает уровень данных, имеющий самую последнюю версию с 2 элементами, а затем имеет «Значения уровня данных после этого сообщения:» и показывает исходные значения. Значение, отображаемое на вкладке Переменные, представляет собой версию с 3 элементами.
dataLayer.push({
'event': 'onCartUpdate',
'cartLineitems': [
{'productCode':'test1','quantity':2}},
{'productCode':'test2','quantity':1}}
});
Кто-нибудь знает, как правильно обновить переменную слоя данных, которая является массивом?