UNPKG

@shopgate/pwa-tracking

Version:

Tracking library for the Shopgate Connect PWA.

6 lines 1.97 kB
function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}import{event}from'@shopgate/engage/core/classes';import{appDidStart$}from'@shopgate/engage/core/streams';import{analyticsSetCustomValues}from'@shopgate/engage/core/commands';import{checkoutSuccess$}from'@shopgate/engage/checkout/streams';import getCart from"../selectors/cart";import{track,formatPurchaseData,formatNativeCheckoutPurchaseData}from"../helpers";import{checkoutDidEnter$}from"../streams/checkout";/** * Checkout tracking subscriptions. * @param {Function} subscribe The subscribe function. */export default function checkout(subscribe){subscribe(checkoutDidEnter$,function(_ref){var getState=_ref.getState;var state=getState();track('initiatedCheckout',{cart:getCart(state)},state);});/** * Gets triggered when the app starts. */subscribe(appDidStart$,function(_ref2){var getState=_ref2.getState;event.addCallback('checkoutSuccess',function(){var data=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(typeof data.order==='undefined'){return;}var source=data.type!=='legacy'?'web_PWA':'app_PWA';analyticsSetCustomValues({customDimensions:[{index:4,value:source}]});var formattedData=_extends({},formatPurchaseData(data.order),{meta:{source:source}});track('purchase',formattedData,getState());});});subscribe(checkoutSuccess$,function(_ref3){var getState=_ref3.getState,action=_ref3.action;var order=action.order;if(typeof order==='undefined'){return;}var source=(order===null||order===void 0?void 0:order.platform)==='desktop'?'web_PWA':'app_PWA';analyticsSetCustomValues({customDimensions:[{index:4,value:source}]});var formattedData=_extends({},formatNativeCheckoutPurchaseData(order),{meta:{source:source}});track('purchase',formattedData,getState());});}