UNPKG

@ecomplus/widget-analytics

Version:
2 lines 6.83 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@ecomplus/shopping-cart"),require("@ecomplus/utils"),require("@ecomplus/passport-client")):"function"==typeof define&&define.amd?define([,,],t):"object"==typeof exports?exports.widgetAnalytics=t(require("@ecomplus/shopping-cart"),require("@ecomplus/utils"),require("@ecomplus/passport-client")):e.widgetAnalytics=t(e.ecomCart,e.ecomUtils,e.EcomPassport)}(window,(function(e,t,o){return function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}return o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="/assets/vendor/",o(o.s=3)}([function(t,o){t.exports=e},function(e,o){e.exports=t},function(e,t){e.exports=o},function(e,t,o){"use strict";o.r(t);var n=o(1),r=o(0),c=o.n(r),i=o(2),a=o.n(i);const s=n.$ecomConfig.get("currency")||"BRL",u=e=>{const[t,...o]=Object(n.name)(e).split(" / "),r={name:t,id:e.sku,price:Object(n.price)(e).toFixed(2)};o&&o.length?r.variant=o.join(" / "):e.variation_id&&(r.name=t.replace(window.__customGTMVariantRegex||/\s[^\s]+$/,""),r.variant=t.replace(r.name,"").trim()),e.quantity&&(r.quantity=e.quantity);const{categories:c,brands:i}=e;if(c&&c.length){r.category=c[c.length-1];for(let e=0;e<c.length-1&&(r["dimension"+(e+1)]=c[e],4!==e);e++);}return i&&i.length&&(r.brand=i[i.length-1]),r};const d=e=>{const t={item_id:e.id,item_name:e.name,price:e.price,quantity:Math.abs(e.quantity||1)};return e.category&&(t.item_category=e.category),e.brand&&(t.item_brand=e.brand),t},{location:p}=window;var m=(e,t,o)=>{const r=()=>setTimeout(()=>{e("event","page_view",{page_title:document.title||"Checkout",page_path:"/"+p.hash.split("/")[1],send_to:t})},300);let i=!1;(e=>{const t=window.storefrontApp&&window.storefrontApp.router;if(t){let o,r,i;const d=()=>{const e=[];return c.a.data&&Array.isArray(c.a.data.items)&&c.a.data.items.forEach(t=>{e.push(u(t))}),e},p=t=>{e.push({ecommerce:null}),e.push({event:"eec.checkout_option",ecommerce:{currencyCode:s,checkout_option:{actionField:t}}})},m=(t,n)=>{const c={step:t,option:n};1===t&&o||2===t&&r||(e.push({ecommerce:null}),e.push({event:"eec.checkout",ecommerce:{currencyCode:s,checkout:{actionField:c,products:d()}}}),e.push({event:"checkout"}),1===t?o=!0:r=!0)},l=(t,o)=>{if(!i){if(window.localStorage.getItem("gtm.orderIdSent")!==t){let r;if(o)try{r=JSON.parse(o)}catch(e){}const{amount:i}=r||window.storefrontApp,u={id:t,revenue:(i&&i.total||c.a.data&&c.a.data.subtotal||0).toFixed(2)};i&&(void 0!==i.freight&&(u.shipping=i.freight.toFixed(2)),void 0!==i.tax&&(u.tax=i.tax.toFixed(2))),r&&(["shipping_method_label","payment_method_label"].forEach((e,t)=>{r[e]&&p({step:3+t,option:r[e]})}),r.extra_discount&&r.extra_discount.discount_coupon&&(u.coupon=r.extra_discount.discount_coupon));let m=1;if(window.__sendGTMExtraPurchaseData){const t=a.a.getCustomer(),o={};let r;t&&(o.customerDisplayName=Object(n.nickname)(t),t.name&&(o.customerGivenName=t.name.given_name,o.customerFamilyName=t.name.family_name),o.customerEmail=t.main_email,o.customerPhone=Object(n.phone)(t),r=t.addresses&&t.addresses[0]);try{const e=JSON.parse(window.sessionStorage.getItem("ecomCustomerAddress"));"object"==typeof r&&r?Object.assign(r,e):r=e}catch{}r&&r.zip&&(o.shippingAddrZip=r.zip,o.shippingAddrStreet=r.street,o.shippingAddrNumber=r.number,r.street&&r.number&&(o.shippingAddrStreet+=", "+r.number),o.shippingAddrCity=r.city,o.shippingAddrProvinceCode=r.province_code),e.push({event:"purchaseExtraData",...o}),m=100}setTimeout(()=>{e.push({ecommerce:null}),e.push({event:"eec.purchase",ecommerce:{currencyCode:s,purchase:{actionField:u,products:d()}}})},m),window.localStorage.setItem("gtm.orderIdSent",t)}i=!0}};let h;const f=({name:e,params:t})=>{switch(e){case"cart":m(1,"Review Cart");break;case"checkout":t.step&&r||m(2,"Login / Signup"),1===Number(t.step)?m(3,"Shipping Method"):2===Number(t.step)&&m(4,"Payment Method");break;case"confirmation":clearTimeout(h),t.json?l(t.id,decodeURIComponent(t.json)):h=setTimeout(()=>{l(t.id)},1500)}};t.currentRoute&&f(t.currentRoute),t.afterEach(f)}})({push:({event:t,ecommerce:n})=>{if(!t)return;let c,a;switch(t){case"eec.checkout":case"eec.checkout_option":c=n&&n.checkout,c&&(i||(e("event","begin_checkout",{items:c.products.map(d)}),i=!0),a=c.actionField&&c.actionField.step),e("event","set_checkout_option",{checkout_step:a||(p.hash.startsWith("#/cart")?1:2)});break;case"eec.purchase":r(),c=n&&n.purchase,c&&c.actionField&&(e("event","purchase",{transaction_id:c.actionField.id,affiliation:document.querySelector('meta[name="author"]').getAttribute("content")||"Shop",value:Number(c.actionField.revenue),currency:n.currencyCode,tax:c.actionField.tax?Number(c.actionField.tax):0,shipping:c.actionField.shipping?Number(c.actionField.shipping):0,items:c.products.map(d)}),o&&e("event","conversion",{send_to:o,value:Number(c.actionField.revenue),currency:n.currencyCode,transaction_id:c.actionField.id}));break;default:r()}}})},l=e=>{(e=>{const t={};setTimeout(()=>{c.a.data.items.forEach(e=>{t[e.sku]=u(e)})},10);const o=o=>{const n=u(o);e.push({ecommerce:null}),e.push({event:"eec.add",ecommerce:{currencyCode:s,add:{products:[n]}}}),e.push({event:"addToCart"}),t[o.sku]=n},n=o=>{const n=t[o.sku];e.push({ecommerce:null}),e.push({event:"eec.remove",ecommerce:{currencyCode:s,remove:{products:[n?Object.assign({},n):u(o)]}}}),e.push({event:"removeFromCart"}),delete t[o.sku]};c.a.on("addItem",({item:e})=>o(e)),c.a.on("increaseItemQnt",({item:e})=>{const r=t[e.sku];if(r){const t=e.quantity-r.quantity;t>0?o({...e,quantity:t}):n({...e,quantity:-t})}else o(e)}),c.a.on("removeItem",({item:e})=>n(e)),c.a.on("clear",()=>{for(const e in t)t[e]&&n(t[e])})})({push:({event:t,ecommerce:o})=>{if(o&&("eec.add"===t||"eec.remove"===t)){const n="eec.add"===t,r=o[n?"add":"remove"];r&&r.products&&e("event",n?"add_to_cart":"remove_from_cart",{items:r.products.map(d)})}}})};t.default=(e={})=>{const{gaTrackingId:t,googleAdsId:o}=e,{gtag:n}=window;"function"==typeof n&&(m(n,t,o),l(n))}}]).default})); //# sourceMappingURL=widget-analytics.min.js.map