Calum Thistle];
if (value !== null && value !== undefined && value !== '') {
settings[key] = value;
}
});
} else {
console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
}
delete settings.translations;
return settings;
} catch (e) {
console.debug('STOQ - error applying translations:', e);
return settings;
}
}
// First try to get settings from metafields with expiry check
const cachedSettings = window._RestockRocketConfig.cachedSettings;
const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
if (validCachedSettings) {
console.debug('STOQ - using cached settings');
initializeScripts(validCachedSettings);
} else {
cRIDE CONFIDENT
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_types.includes(window._RestockRocketConfig.pageType);
})
if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) {
createRestockRocketScript(window._Restoc
ripts 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;
function attemptCartCheck(attempt = 1) {
if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
window._RestockRocket.updateCartSellingPlans()
.then(hasUpdates => {
if (hasUpdates) {
cons
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/DSC02184_600x.jpg?v=1764776200)">
If you are looking for someone helpful and knowledgeable this is the place to go.
Excellent service got a great bike in great condition even helped out with a few extras and provided the original receipt for lifetime guarantee on the frame.
Iain Orrimg src="//projektride.co.uk/cdn/shop/files/Screenshot2023-10-23at13.28.55_2048x2048.png?v=1698064281" alt="Jack The Bike Rack, Front Rack and all fittings" class="mfp-zoom-in-cur" id="32381260136674">
★★★★★
I dropped my Specialized Vita for new brake pads and a service, the bike was ready for collection the same day and the price was reasonable! Bicycle feels brand new again and works amazing! Many thanks!!
Heather Patersonimg src="//projektride.co.uk/cdn/shop/files/Screenshot2023-10-23at13.28.51_2048x2048.png?v=1698064283" alt="Jack The Bike Rack, Front Rack and all fittings" class="mfp-zoom-in-cur" id="32381260169442">
★★★★★
Staff are very kind and the price is relatively reasonable, also student can have 10% discount which it great :)
William Guiimg src="//projektride.co.uk/cdn/shop/files/Screenshot2023-10-23at13.28.58_2048x2048.png?v=1698064281" alt="Jack The
★★★★★
Excellent friendly and efficient service. Great product knowledge and good value for money! Highly recommend
Ben Ross
<
<<
<
<
<
div class="logo-list__slide-image" style="background-image: url(//projektride.co.uk/cdn/shop/files/genesis_logo_360x.png?v=1710022398); width: 120px; padding-top: 14.2%;">76 - 79 cm
<<
<
*Please note – spec applies to all sizes unless listed separately
5+
Frame
Alpha Gold Aluminium, internal cable routing, rack & mudguard mounts, post mount disc, kickstand mount, 135x5 mm QRDecrease quantity
Fork
Increase quantity
Dual Sport carbon, internal brake routing, mudguard mounts, rack mounts, ThruSkew 5 mm QR
a href="https://www.straightcutdesign.com/" class="logo-list__slide-image" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot_2022-03-16_at_14.44.40_360x.png?v=1647443209); width: 170px; padding-top: 26.3%;"><
<>
a class="product__media product__media--featured"
href="/collections/second-hand-bikes/products/yeti-asr-t-series-full-suspension-xc-bike-axs-t-type-rockshox"
title="Yeti ASR T series full suspension XC bike - AXS T Type - Rockshox - EX DEMO"
aria-label="Yeti ASR T series full suspension XC bike - AXS T Type - Rockshox - EX DEMO"
style="background-image: url(//projektride.co.uk/cdn/shop/files/IMG_9054_600x.heic?v=1749645621)">
:0.956,"height":814,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-23at13.29.09.png?v=1698064282","width":778}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eWho's JACK?\u003c\/span\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eJACK is a universal-fit front bicycle rack that securely straps to almost any bike, offering a straightforward solution to carrying your things with you while you ride. A ‘Rack of all Trades’, JACK fits to your bike with a tool-free strap system, requiring no special bicycle frame or fork, no specialist equipment and no bike maintenance skills.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {44441930006754 : "deny",};
window._RestockRocketConfig.variaS, M, LBrooks C67 Cambium Saddles