Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  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. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement