SHARE
TWEET

Untitled

a guest Apr 19th, 2019 101 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //События "Посмотрел корзину", "Удалил товар из корзины", "Начал оформлять заказ", "Сделал заказ". Свойства "Корзина", "Сумма в корзине", "Сумма заказов", "Сумма последнего заказа", "Количество заказов"
  2. /*Страница корзины
  3. Обычно у корзины есть легкоузнаваемый путь, например, /cart
  4. */
  5. if (location.pathname == '/cart') {
  6.     function get_items() {
  7.         var items = document.querySelectorAll('Селектор названия товара').length, //Вставить селектор
  8.             cartAmount = items==0?0:parseInt(document.querySelector('Селектор суммы в корзине').textContent.replace(/\D/g, '')); //Вставить селектор
  9.         carrotquest.identify([
  10.             {
  11.                 op: items == 0 ? "delete" : "update_or_create",
  12.                 key: "$cart_items",
  13.                 value: items == 0 ? 0 : Array.from(document.querySelectorAll('Селектор названия товара')).map(function(elem) { //Вставить селектор
  14.                     return elem.textContent.trim();
  15.                 })
  16.             },
  17.             { op: items == 0 ? "delete" : "update_or_create", key: "$cart_amount", value: cartAmount }
  18.         ])
  19.         localStorage['lastAmount'] = cartAmount;
  20.     };
  21.     setTimeout(get_items, 1000);
  22.     carrotquest.track('$cart_viewed');
  23.     document.addEventListener('click', function(e) {
  24.         if (e.target == e.target.closest('Селектор кнопки удаления из корзины')) { //Вставить селектор
  25.             carrotquest.track('Удалил товар из корзины', {
  26.                 '$name': e.target.closest('Селектор контейнера').querySelector('Селектор названия товара').textContent.trim() //Вставить селектор //Вставить селектор
  27.             });
  28.             /*снова селектор контейнера. Прямо как для добавления товаров из каталога. Логика та же.
  29.             Контейнер - ближайший родительский элемент, в котором содержится одновременно кнопка
  30.             удаления товара из корзины и название товара*/
  31.             setTimeout(get_items, 1000);
  32.         } else if (e.target == e.target.closest('Кнопка начала чекаута')) { //Вставить селектор
  33.             carrotquest.track('$order_started');
  34.             localStorage['orderStarted'] = true;
  35.         };
  36.     });
  37.     /*Для случая, когда заказ оформляется без ухода со страницы корзины*/
  38.     document.addEventListener('submit', function(e) {
  39.         if (e.target==e.target.closest('Селектор формы заказа')) { //Вставить селектор
  40.             orderPlaced('true');
  41.         };
  42.     });
  43. };
  44.  
  45. /*Иногда заказ оформляется полностью на странице корзины.
  46. Если это так, то функцию orderPlaced нужно вызывать на
  47. странице корзины, когда нажимается кнопка, или отправляется
  48. форма заказа (обычно подходит вариант с отправкой формы)
  49. Ниже описана сама функция*/
  50. function orderPlaced(orderStarted) {
  51.     if (orderStarted == 'true') {
  52.         carrotquest.track('$order_completed', {
  53.             '$order_amount': localStorage['lastAmount'],
  54.             '$order_id_human': document.querySelector('Селектор ID заказа').textContent.trim()//его может и не быть
  55.         });
  56.         carrotquest.identify([
  57.             { op: "delete", key: "$cart_items", value: 0 },
  58.             { op: "delete", key: "$viewed_products", value: 0 },
  59.             { op: "delete", key: "$cart_amount", value: 0 },
  60.             { op: "add", key: "$revenue", value: parseInt(localStorage['lastAmount']) },
  61.             { op: "add", key: "$orders_count", value: 1 },
  62.             { op: "update_or_create", key: "$last_payment", value: localStorage['lastAmount'] }
  63.         ]);
  64.         localStorage['orderStarted'] = false;
  65.         localStorage.removeItem('lastAmount');
  66.     };
  67. };
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top