re relief channel and ergonomically-shaped dual density grips.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003ePracticality is another area where the Comet really shines, with mounts for mudguards and racks.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eLooking for a similar bike, but for hillier terrain and with a wider range of gears? Be sure to take a look at the Ridgeback Motion.\u003c\/p\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {45863184859362 : "deny",45863184892130 : "deny",45863184924898 : "deny",45863184957666 : "deny",45863184990434 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {45863184859362 : parseInt("55"),45863184892130 : parseInt("55"),45863184924898 : parseInt("550"),45863184957666 : parseInt("55"),45863184990434 : parseInt("110"),};
window._RestockRocketConfig.variantsPreorderCount = {45863184859362 : parseInt(""),45863184892130 : parseInt(""),45863184924898 : parseInt(""),45863184957666 : parseInt(""),45863184990434 : parse
k response was not ok');
}
return response.json();
})
.then(function(settings) {
initializeScripts(settings);
})
.catch(function(error) {
// If request failed and we have cached settings (even if expired), use them as fallback
if (cachedSettings) {
console.debug('STOQ - using expired cached settings as fallback');
initializeScripts(cachedSettings);
} else {
console.error('STOQ - failed to load settings:', error);
}
})
.catch(function(e) {
console.error(e)
})
}
function initializeScripts(settings) {
settings = applyTranslations(settings);
window._RestockRocketConfig.settings = settings;
console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
if(settings.enable_app) {
const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
return integration.type === 'hijack' && integration.enabled && integration.page_typeIf the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item.
{
createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct);
} else if(hijackIntegration) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`);
}
// Check and update cart selling plans after scripts are loaded
if (settings.preorder_enabled) {
updateCartSellingPlans();
}
// Dispatch custom event when app is loaded
const appLoadedEvent = new CustomEvent('stoq:loaded', {
detail: {
pageType: window._RestockRocketConfig.pageType,
enabled: settings.enable_app,
settings: settings
}
});
console.debug('STOQ - dispatching app loaded event');
window.dispatchEvent(appLoadedEvent);
}
}
function updateCartSellingPlans() {
// Wait for the API to be available with retries
const maxRetries = 10;
const retryDelay = 500;
functPostage is free on orders over £50. Orders under £50, our postage charge is £3.99.
w._RestockRocketConfig.normalizedLocale)) {
console.debug('STOQ - locale not explicitly translated, will use default language from cache');
}
// Don't return null - continue using cache even for untranslated locales
}
const updatedAt = new Date(settings.updated_at);
if (isNaN(updatedAt.getTime())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const age = Date.now() - updatedAt.getTime();
if (age