Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //События "Посмотрел корзину", "Удалил товар из корзины", "Начал оформлять заказ", "Сделал заказ". Свойства "Корзина", "Сумма в корзине", "Сумма заказов", "Сумма последнего заказа", "Количество заказов"
- /*Страница корзины
- Обычно у корзины есть легкоузнаваемый путь, например, /cart
- */
- if (location.pathname == '/cart') {
- function get_items() {
- var items = document.querySelectorAll('Селектор названия товара').length, //Вставить селектор
- cartAmount = items==0?0:parseInt(document.querySelector('Селектор суммы в корзине').textContent.replace(/\D/g, '')); //Вставить селектор
- carrotquest.identify([
- {
- op: items == 0 ? "delete" : "update_or_create",
- key: "$cart_items",
- value: items == 0 ? 0 : Array.from(document.querySelectorAll('Селектор названия товара')).map(function(elem) { //Вставить селектор
- return elem.textContent.trim();
- })
- },
- { op: items == 0 ? "delete" : "update_or_create", key: "$cart_amount", value: cartAmount }
- ])
- localStorage['lastAmount'] = cartAmount;
- };
- setTimeout(get_items, 1000);
- carrotquest.track('$cart_viewed');
- document.addEventListener('click', function(e) {
- if (e.target == e.target.closest('Селектор кнопки удаления из корзины')) { //Вставить селектор
- carrotquest.track('Удалил товар из корзины', {
- '$name': e.target.closest('Селектор контейнера').querySelector('Селектор названия товара').textContent.trim() //Вставить селектор //Вставить селектор
- });
- /*снова селектор контейнера. Прямо как для добавления товаров из каталога. Логика та же.
- Контейнер - ближайший родительский элемент, в котором содержится одновременно кнопка
- удаления товара из корзины и название товара*/
- setTimeout(get_items, 1000);
- } else if (e.target == e.target.closest('Кнопка начала чекаута')) { //Вставить селектор
- carrotquest.track('$order_started');
- localStorage['orderStarted'] = true;
- };
- });
- /*Для случая, когда заказ оформляется без ухода со страницы корзины*/
- document.addEventListener('submit', function(e) {
- if (e.target==e.target.closest('Селектор формы заказа')) { //Вставить селектор
- orderPlaced('true');
- };
- });
- };
- /*Иногда заказ оформляется полностью на странице корзины.
- Если это так, то функцию orderPlaced нужно вызывать на
- странице корзины, когда нажимается кнопка, или отправляется
- форма заказа (обычно подходит вариант с отправкой формы)
- Ниже описана сама функция*/
- function orderPlaced(orderStarted) {
- if (orderStarted == 'true') {
- carrotquest.track('$order_completed', {
- '$order_amount': localStorage['lastAmount'],
- '$order_id_human': document.querySelector('Селектор ID заказа').textContent.trim()//его может и не быть
- });
- carrotquest.identify([
- { op: "delete", key: "$cart_items", value: 0 },
- { op: "delete", key: "$viewed_products", value: 0 },
- { op: "delete", key: "$cart_amount", value: 0 },
- { op: "add", key: "$revenue", value: parseInt(localStorage['lastAmount']) },
- { op: "add", key: "$orders_count", value: 1 },
- { op: "update_or_create", key: "$last_payment", value: localStorage['lastAmount'] }
- ]);
- localStorage['orderStarted'] = false;
- localStorage.removeItem('lastAmount');
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement