<
link rel="stylesheet" media="all" onload="this.media='all'" id="ecom-vendors-slider_css" href="https://cdn.ecomposer.app/vendors/css/ecom-swiper@11.css" /><
link rel="stylesheet" media="all" id="ecom-vendors-css_ecomposer_base" href="https://cdn.ecomposer.app/vendors/css/ecom-base.css?v=1.6" />
function createEcomSendMainStyleEle() {
const ele = document.createElement("link");
ele.rel = "stylesheet";
ele.href = 'https://cdn.shopify.com/extensions/019ab39b-6f76-721d-9144-1a729619dbae/ecomsend-99/assets/style.css';
ele.dataset.ecomsendTag = "load-alternate-css";
return ele;
};
if (window.EcomSendApps?.enableAlternateCSSLoading ?? false) {
document.head.appendChild(createEcomSendMainStyleEle());
};
try {
function checkMarketingEvent() {
const urlParams = new URLSearchParams(window.location.search)
const marketingId = urlParams.get("es_marketingId")
if (marketingId && window.localStorage) {
window.localStorage.setItem("ecomsend_marketingId", marketingId)
}
}
checkMarketingEvent()
} catch (e) {}
let isEcomSendInitialized = false;
function createEcomSendMainJSEle() {
if (isEcomSendInitialized) return;
// Check if dependencies in EcomSend namespace are loaded
if (!window.EcomSend || !window.EcomSend.React || !window.EcomSend.ReactDOM || !window.EcomSend.mobx || !window.EcomSend.React.useContext) {
if (!window.React || !window.ReactDOM || !window.mobx || !window.React.useContext) {
return false;
}
}
const ele = document.createElement("script");
ele.defer = true;
ele.id = "ecomsend-main-js";
ele.src = 'https://cdn.shopify.com/extensions/019ab39b-6f76-721d-9144-1a729619dbae/ecomsend-99/assets/ecomsend.js';
window.EcomSend.appStatus.main_script_status = 'loading';
// Script onload handler
ele.onload = function() {
// Script loaded successfully
window.EcomSend.appStatus.main_script_status = 'loaded';
};
ele.onerror = function() {
// Script failed to load
window.EcomSend.appStatus.main_script_status = 'failed';
};
if (null === document.getElementById(ele.id)) {
document.head.appendChild(ele);
isEcomSendInitialized = true;
return true;
}
return false;
};
function EcomsendOnMobxLoaded() {
// Load main script in EcomSend namespace context
setTimeout(() => {
// Try to use namespace context
if (window.withEcomSendContext) {
window.withEcomSendContext(() => {
createEcomSendMainJSEle();
});
} else {
// Fallback to direct loading
createEcomSendMainJSEle();
}
}, 100);
};
let checkCount = 0;
const maxChecks = 20;
function EcomsendBackupCheck() {
if (isEcomSendInitialized) return;
checkCount++;
// First check dependencies in namespace
if (window.EcomSend &&
window.EcomSend.React &&
window.EcomSend.ReactDOM &&
window.EcomSend.mobx &&
window.EcomSend.React.useContext &&
window.EcomSend.React.createElement) {
// Use namespace context
if (window.withEcomSendContext) {
window.withEcomSendContext(() => {
if (createEcomSendMainJSEle()) {
return;
}
});
}
}
// Fallback to checking global dependencies
else if (window.React &&
window.ReactDOM &&
window.mobx &&
window.React.useContext &&
window.React.createElement &&
window.ReactDOM.createRoot) {
if (createEcomSendMainJSEle()) {
return;
}
}
if (checkCount
<
maxChecks) {
setTimeout(EcomsendBackupC
//EcomSend APPS COMMON JS CODE
window.EcomSendApps = window.EcomSendApps || {}
window.EcomSendApps.design_mode = false
window.EcomSendApps.common = window.EcomSendApps.common || {}
window.EcomSendApps.common.shop = {
permanent_domain: 'john-muir-country.myshopify.com',
currency: "GBP",
money_format: "£{{amount}}",
id: 80637690163,
}
window.EcomSendApps.common.customer = {
id: null,
tags: null,
email: null,
accepts_marketing: null,
first_name: null,
}
window.EcomSendApps.common.template = 'product'
window.shopLocale = 'en'
window.EcomSend = window.EcomSend || {};
window.EcomSend.React = existingReact;
window.EcomSend.ReactDOM = existingReactDOM;
window.EcomSend.appStatus.react_status = 'loaded';
window.EcomSend.appStatus.reactdom_status = 'loaded';
resolve();
return;
}
window.EcomSend.appStatus.react_status = 'loading';
window.EcomSend.appStatus.reactdom_status = 'loading';
let isResolved = false;
const reactScript = document.createElement('script');
reactScript.async = false;
reactScript.src = 'https://cdn.shopify.com/extensions/019ab39b-6f76-721d-9144-1a729619dbae/ecomsend-99/assets/react_react-dom.min.js';
reactScript.onload = () => {
if (isResolved) return;
isResolved = true;
window.EcomSend.appStatus.react_status = 'loaded';
window.EcomSend.appStatus.reactdom_status = 'loaded';
// Save the newly loaded React to namespace
window.EcomSend
= window.EcomSend || {};
window.EcomSend.React = window.React;
window.EcomSend.ReactDOM = window.ReactDOM;
// If React existed before (might be added by other scripts during loading)
// Save our loaded version, then restore the previous version
if (existingReact && window.React !== existingReact) {
window._EcomSendNamespace._loadedReact = window.React;
window._EcomSendNamespace._loadedReactDOM = window.ReactDOM;
// Use our loaded version as EcomSend's version
window.EcomSend.React = window._EcomSendNamespace._loadedReact;
window.EcomSend.ReactDOM = window._EcomSendNamespace._loadedReactDOM;
// Restore global variables
window.React = existingReact;
window.ReactDOM = existingReactDOM;
}
resolve();
};
reactScript.onerror = () => {
if (isResolved) return;
isResolved = true;
window.EcomSend.appStatus.react_stat