Gabon (XOFFr)
Gambia (GMDD)
Georgia (GBP£)
Germany (EUR€)
Ghana (GBP£)
. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"batches_enabled":false,"preorder_batches":[]}],"disabled_plan_ids":[714631872895,713813721471,713176482175],"has_in_stock_offer":false,"has_preorder_offer":true,"read_flags":{},"cached_at":"2026-10-10T11:02:02Z"};
if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) {
window._RestockRocketConfig.readFlags = cachedData.read_flags || {};
const oldPlans = window._RestockRocketConfig.sellingPlans;
const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0
? oldPlans.reduce(function(max, plan) {
if (plan.updated_at) {
const planDate = new Date(plan.updated_at);
const maxDate = max ? new Date(max) : null;
return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max;
}
return max;
kRocketConfig.selected_variant_id = 58825032434047;
window._RestockRocketConfig.selected_variant_available = (window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }) || {}).available;
(function (c) {
c.cartInventoryQuantity = {};
function s(k, id, v) { if (v !== null) (c[k] = c[k] || {})[id] = v; }
function sm(k, id, v) { if (v !== null) ((c[k] = c[k] || {})[id] = {})[c.marketId] = v; }
function p(k, id, v) { if (v !== null) (c[k] = c[k] || []).push(id); }
})(window._RestockRocketConfig);
try {
var _sqCfg = window._RestockRocketConfig;
var _sqPlanEnabled = Array.isArray(_sqCfg.sellingPlans) &&
_sqCfg.sellingPlans.some(function (p) { return p && p.enabled; });
var _sqPreCount = _sqCfg.inlinePreorderIdsDropped ? _sqCfg.cachedPreorderVariantIdsCount : ((_sqCfg.cachedPreorderVariantIds &&
_sqCfg.cachedPreorderVariantIds.preorder_variant_ids) || []).length;
_sqCfg.
nIds.push(Number(o.shopify_selling_plan_id)); });
}
});
var _sqAllocAlways = function (id) {
var a = _sqGateAlloc && _sqGateAlloc[id];
return Array.isArray(a) && a.some(function (planId) { return planId && _sqAlwaysPlanIds.indexOf(Number(planId)) !== -1; });
};
var _sqArm = false;
if (_sqOn && (_sqc.preordersConfigured || _sqAlways.length || _sqAlwaysPlanIds.length)) {
if (_sqc.pageType === 'product' && _sqc.product && _sqc.product.variants) {
_sqArm = _sqc.product.variants.some(function (v) {
return _sqPre.indexOf(Number(v.id)) !== -1 || _sqAlways.indexOf(Number(v.id)) !== -1 || _sqAllocAlways(Number(v.id)) ||
(_sqc.inlinePreorderIdsDropped === true && (_sqc.variantsInventoryPolicy || {})[v.id] === 'continue' &&
(_sqc.variantsInventoryQuantity || {})[v.id]
= 0);
});
} else {
_sqArm = (_sqc.integrations || []).some(function (i) {
return i && i.type === 'featured_product' && i.enabled &&
Array.isArray(i.page_types) && i.page_types.indexOf(_sqc.pageType) !== -1;
});
}
}
if (_sqArm && document.documentElement) {
_sqc.acceleratedGateArmed = true;
document.documentElement.classList.add('stoq-buy-now-pending');
setTimeout(function () {
document.documentElement.classList.remove('stoq-buy-now-pending');
}, 6000);
}
} catch (e) { }
window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/01a1b3f4-12aa-7f20-af90-2397b6140bd7/restockrocket-1-636/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/01a1b3f4-12aa-7f20-af90-2397b6140bd7/restockrocket-1-636/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptUrlCollectionFull = 'https://cdn.shopify.com/extensi
0) {
console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else if (liquidCacheAge
<
.body.appendChild(plainScriptElement);
};
restockRocketScriptElement.src = scriptUrl;
document.body.appendChild(restockRocketScriptElement);
}
createRestockRocketContainer()
console.debug('STOQ - extension activated')
try {
const _stoqInitConfig = window._RestockRocketConfig;
const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqInitConfig.product.variants))
? _stoqInitConfig.product.variants.map(function(v) { return v.id })
: [];
const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id;
var _stoqPageSeq = 0;
try {
_stoqPageSeq = (parseInt(window.sessionStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1;
window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq));
} catch (e) { }
Shopify?.analytics?.publish?.('stoq_initialized', {
cart_token: _stoqInitConfig.cartToken || '',
page_url: window.location.origin + window.location.pathname,
page_type: _stoqInitConfig.pageType || '',
Greenland (DKKkr.)
.closest('.shopify-payment-button, shopify-payment-terms');
if (!host) return;
var channel = host.matches && host.matches('shopify-payment-terms')
? 'shop_pay_installments' : 'buy_now';
var form = host.closest('form');
var vidEl = form && form.querySelector('[name="id"]');
var variantId = (vidEl && vidEl.value) || _sqTrack.selected_variant_id || '';
var _sqVidNum = Number(variantId);
var _sqPlan = null;
var _sqPlans = Array.isArray(_sqTrack.sellingPlans) ? _sqTrack.sellingPlans : [];
var _sqMktId = Number(_sqTrack.marketId);
var _sqOffersOn = !!(_sqTrack.readFlags && _sqTrack.readFlags.enable_storefront_plan_offers === true);
var _sqAlloc = _sqOffersOn
? ((_sqTrack.offerAllocations && _sqTrack.offerAllocations[_sqVidNum]) ||
(_sqTrack.variantSellingPlanIds && _sqTrack.variantSellingPlanIds[_sqVidNum]))
: null;
var _sqPlanIds = function (pl)
'STOQ - Inventory data loaded, updating cart selling plans');
if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
window._RestockRocket.updateCartSellingPlans()
.then(hasUpdates => {
if (hasUpdates) {
console.debug('STOQ - cart selling plans updated successfully');
} else {
console.debug('STOQ - no cart selling plan updates needed');
}
})
.catch(error => {
console.error('STOQ - error updating cart selling plans:', error);
});
}
});
}
function storefrontGraphql(query, variables) {
const cfg = window._RestockRocketConfig;
if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) {
return Promise.reject(new Error('Storefront API unavailable'));
}
return fetch(
`https://${cfg.shop}/api/${cfg.storefrontApiVersion}/graphql.json`,
{
method: 'POST',
headers: {
'Content-Type': 'appl
field.value;
if (!value) { throw new Error('Storefront API returned no ' + key + ' metafield value'); }
return JSON.parse(value);
});
}
function fetchStorefrontSettings() {
const query = 'query StoqSettings($namespace: String!) { shop { settings: metafield(namespace: $namespace, key: "settings") { value } translations: metafield(namespace: $namespace, key: "settings_translations") { value } } }';
return storefrontGraphql(query, { namespace: window._RestockRocketConfig.metafieldNamespace })
.then(function(data) {
const settings = JSON.parse(data.shop.settings.value);
if (!settings.updated_at) { throw new Error('settings metafield is not a settings payload'); }
if (settings.single_locale_translations_inline) {
settings.translations = data.shop.translations && JSON.parse(data.shop.translations.value);
}
if (settings.multi_language_enabled && !settings.translations) { throw new Error('settings metafield carries no translations'); }
return
se(function(_, reject) { setTimeout(function() { reject(new Error('timed out')); }, 1500); })
]).catch(function(error) {
console.debug('STOQ - Storefront settings read failed, using setting.json:', error.message);
})
: Promise.resolve();
storefrontRead
.then(function(settings) {
return settings || fetch(
`${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`,
{ headers }
)
.then(function(response) {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
});
})
.then(function(settings) {
initializeScripts(settings);
})
.catch(function(error) {
if (cachedSettings) {
console.debug('STOQ - using expired cached settings as fallback');
initializeScripts(cachedSettings);
} else {
console.error('STOQ - failed to load settings:', error);
source.apply); };
const flagOn = !!cfg.readFlags && cfg.readFlags[source.flag] === true;
if (!flagOn || source.embedOnly === true) { return viaEmbed(); }
return fetchStorefrontShopMetafield(source.metafieldKey)
.then(function(value) {
if (!source.isValid(value)) { throw new Error(source.metafieldKey + ' metafield is not a valid ' + source.endpoint + ' payload'); }
source.apply(value);
console.debug('STOQ - refreshed ' + source.endpoint + ' from the Storefront API');
})
.catch(function(error) {
console.debug('STOQ - Storefront ' + source.endpoint + ' read failed, using embed:', error.message);
return viaEmbed();
});
}
function refreshIntegrations() {
const cfg = window._RestockRocketConfig;
return refreshShopConfig({
endpoint: 'integrations',
metafieldKey: 'integrations',
flag: 'enable_storefront_integrations_read',
isValid: function(value) { return Array.isArray(value); },
apply: function(datGuernsey (GBP£)
rce_embed_selling_plans === true;
const staleRefresh = !window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid;
if (forceEmbedSellingPlans || staleRefresh) {
console.debug('STOQ - refreshing selling_plans' + (staleRefresh ? ' + integrations (Liquid cache stale)' : ' (force_embed_selling_plans)'));
const refreshes = [refreshSellingPlans(forceEmbedSellingPlans)];
if (staleRefresh) { refreshes.push(refreshIntegrations()); }
Promise.race([
Promise.all(refreshes),
new Promise(function(resolve) { setTimeout(resolve, 1000); })
]).then(function() { loadScripts(settings); });
return;
}
loadScripts(settings);
}
function loadScripts(settings) {
setupCartSellingPlanUpdater(settings);
if(settings.enable_app) {
const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
return integration.type === 'hijack' && integration.enabled && integration.page_types.i
artForms|setupAddToCartForm|teardownAddToCartForm|addDiscountedPrice|removeDiscountedPrice)\b/.test(settings.js_config || '');
const preorderCollectionScriptUrl = preorderUiOnPage
? window._RestockRocketConfig.scriptUrlCollectionFull
: window._RestockRocketConfig.scriptUrlCollection;
const collectionScriptUrl = usePreorderBuild
? preorderCollectionScriptUrl
: window._RestockRocketConfig.scriptUrlCollectionBis;
const productScriptUrl = usePreorderBuild
? window._RestockRocketConfig.scriptUrlProduct
: window._RestockRocketConfig.scriptUrlProductBis;
const collectionPageTypes = ['collection', 'index', 'search', 'page'];
if(collectionPageTypes.indexOf(pageType) !== -1 && (settings[`show_button_on_${pageType}`] || settings[`preorder_${pageType}_enabled`])) {
createRestockRocketScript(collectionScriptUrl);
} else if(pageType === 'product') {
createRestockRocketScript(productScriptUrl);
} else if(hijackIntegra
};
loadWishlistHearts();
document.addEventListener('shopify:section:load', loadWishlistHearts);
}
try {
const guestWishlist = window._RestockRocketConfig.customer && !localStorage.getItem('stoq_wl_c') && JSON.parse(localStorage.getItem('stoq_wl'));
if (Array.isArray(guestWishlist) && guestWishlist.length) {
createRestockRocketScript(window._RestockRocketConfig.scriptHost + 'restockrocket-wishlist-prompt.js');
}
} catch (e) {}
}
const appLoadedEvent = new CustomEvent('stoq:loaded', {
detail: {
pageType: window._RestockRocketConfig.pageType,
enabled: settings.enable_app,
settings: settings,
preorderEnabled: settings.preorder_enabled
}
});
console.debug('STOQ - dispatching app loaded event');
window.dispatchEvent(appLoadedEvent);
}
}
html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}Guinea (GNFFr)
Guinea-Bissau (XOFFr)
Hungary (HUFFt)
Isle of Man (GBP£)
Montenegro (EUR€)