... ... (function () { const METASITE_APP_DEF_ID = '22bef345-3c5b-4c18-b782-74d4085112ff'; const getXSRFTokenFromCookie = () => { const match = new RegExp('XSRF-TOKEN=(.+?);').exec(document.cookie); return match ? match[1] : ''; }; const eventNames = { Purchase: 'Purchase', Lead: 'Lead', }; const eventNameToConversionActionCategory = { [eventNames.Purchase]: 'PURCHASE', [eventNames.Lead]: 'SUBMIT_LEAD_FORM', }; const channelParams = { price: 'price', id: 'id', currency: 'currency', name: 'name', category: 'category', brand: 'brand', variant: 'variant', list: 'list_name', quantity: 'quantity', step: 'checkout_step', option: 'checkout_option', position: 'list_position', coupon: 'coupon', affiliation: 'affiliation', revenue: 'value', tax: 'tax', sku: 'sku', shipping: 'shipping', }; const mapContents = ({ contents = [] }) => contents.map(({ currency, ...product }) => paramsMapper(product, channelParams), ); const paramsMapper = (params, mapper) => { const mappedParams = Object.keys(params); if (mappedParams.length === 0) { return params; } return mappedParams.reduce((mappedObject, currentKey) => { const newKey = mapper[currentKey]; if (newKey && (params[currentKey] || params[currentKey] === 0)) { mappedObject[newKey] = params[currentKey]; } return mappedObject; }, {}); }; const loadGtag = () => { const gtagInitScript = document.createElement('script'); gtagInitScript.type = 'text/javascript'; gtagInitScript.innerHTML = ` window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()) `; document.head.appendChild(gtagInitScript); const gtagScript = document.createElement('script'); gtagScript.type = 'text/javascript'; gtagScript.setAttribute('async', 'true'); gtagScript.setAttribute('src', 'https://www.googletagmanager.com/gtag/js'); document.head.appendChild(gtagScript); }; const handleGoogleConsent = () => { window.dataLayer = window.dataLayer || []; if (window.consentPolicyManager && window.consentPolicyManager.initRan) { const { policy, defaultPolicy } = window.consentPolicyManager.getCurrentConsentPolicy(); setConsent('default', evaluateConsentPolicy(policy, defaultPolicy)); } else { setConsent('default', { advertising: false, analytics: false, functional: false, waitForUpdate: 500, }); } window.document.addEventListener('consentPolicyInitialized', ({ detail }) => { setConsent( 'update', evaluateConsentPolicy(detail.policy, detail.defaultPolicy), ); }); window.document.addEventListener('consentPolicyChanged', ({ detail }) => { setConsent('update', detail.policy); }); function evaluateConsentPolicy(policy, defaultPolicy) { const { gdprEnforcedGeo } = window.wixTagManager.getConfig(); return defaultPolicy && gdprEnforcedGeo ? { ...policy, advertising: false, analytics: false } : policy; } function setConsent( action, { advertising, analytics, functional, waitForUpdate }, ) { (function () { window.dataLayer.push(arguments); })('consent', action, { ad_storage: advertising ? 'granted' : 'denied', ad_user_data: advertising ? 'granted' : 'denied', ad_personalization: advertising ? 'granted' : 'denied', analytics_storage: analytics ? 'granted' : 'denied', functionality_storage: functional ? 'granted' : 'denied', personalization_storage: 'granted', security_storage: 'granted', ...(waitForUpdate ? { wait_for_update: waitForUpdate } : {}), }); } }; let conversionActions; const loadConversionActions = () => { const XSRFToken = getXSRFTokenFromCookie(); const headers = { 'Content-Type': 'application/json', 'X-XSRF-TOKEN': XSRFToken, }; const getAppToken = window.wixEmbedsAPI?.getAppToken; if (getAppToken) { headers.authorization = getAppToken(METASITE_APP_DEF_ID); } const metaSiteId = window.wixEmbedsAPI?.getMetaSiteId(); return fetch( `${window.location.origin}/_serverless/pa-google/v1/accounts/current-site/conversion-actions?metaSiteId=${metaSiteId}`, { method: 'GET', headers, }, ) .then((response) => response.json()) .then((data) => { conversionActions = data.conversionActions; gtag('config', conversionActions[0].conversionId); }); }; const reportEvent = (eventName, eventParams) => { const category = eventNameToConversionActionCategory[eventName]; const conversionAction = conversionActions.find( (currentConversionAction) => currentConversionAction.category.category === category, ); if (conversionAction) { let conversionData = { send_to: `${conversionAction.conversionId}/${conversionAction.conversionLabel}`, }; switch (category) { case 'PURCHASE': { const { revenue, id, currency, coupon, ...params } = eventParams; conversionData = { ...conversionData, ...paramsMapper({ revenue, id, currency, coupon }, channelParams), transactionId: eventParams.id, items: mapContents(params), }; break; } default: break; } gtag('event', 'conversion', conversionData); } }; let isBootstrapped = false; const bootstrap = () => { handleGoogleConsent(); loadGtag(); return loadConversionActions().then(() => { isBootstrapped = true; }); }; const bootstrapPromise = bootstrap(); const registerListener = () => { window.wixDevelopersAnalytics.register( 'd6708a0e-5b2a-458e-8cfe-bdca240aa2ce', (eventName, eventParams) => { if (isBootstrapped) { reportEvent(eventName, eventParams); } else { bootstrapPromise.then(() => { reportEvent(eventName, eventParams); }); } }, ); }; window.wixDevelopersAnalytics ? registerListener() : window.addEventListener('wixDevelopersAnalyticsReady', registerListener); })();
top of page

This exquisite bag, adorned with artwork from the Heaven and Earth Tarot, is ideal for safeguarding your treasures. Perfect for tarot readers, it securely carries jewelry, crystals, decks, and more. A beautiful and practical gift.

Heaven & Earth Tarot Bag

$13.95Price

Buy a Deck, Get a Bag at 15% Off

Quantity

    Product Review

    Subscribe to my newsletter.

    You'll get updates on blog posts, discounts, and events. No Spam—promise. To ensure proper delivery, please add darryl@psychicdarryl.com to your contacts.

    • Instagram
    • Facebook
    • Twitter
    • LinkedIn

    ©2022-2026 by Darryl Sanford - Policies

    bottom of page