<
translation data in metafield
// Metafield hasn't been backfilled yet - force refresh
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
// Translations object exists in metafield - cache is valid
// If current locale isn't translated, applyTranslations will gracefully use default locale from base fields
if (window._RestockRocketConfig.normalizedLocale &&
!Object.prototype.hasOwnProperty.call(settings.translations, window._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 TriggerHire Lazer Compact Helmet<
!settings.multi_language_enabled) {
return settings;
}
if (!settings.translations) {
console.debug('STOQ - No translations found, skipping translation');
return settings;
}
const normalizedLocale = window._RestockRocketConfig.normalizedLocale;
const translations = settings.translations;
if (!normalizedLocale) {
// No matching locale has translations; drop payload to save memory
console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
delete settings.translations;
return settings;
}
console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`);
const translatedFields = translations[normalizedLocale];
if (translatedFields && typeof translatedFields === 'object') {
Object.keys(translatedFields).forEach(function(key) {
const value = translatedFields[keyRDM7100SGS RD-M7100 SLX 12-speed rear derailleur, Shadow+ SGS, for single£0.00 && 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);
});
}
});
}
// 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 {
console.debug('STOQ - fetching fresh settings');
const headers = {
'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.S
hedSettings);
} 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}`);
// Setup cart selling plan updater BEFORE loading any scripts to avoid race conditions
setupCartSellingPlanUpdater(settings);
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._RestockRocketCon
The FKTi is our wildcard, we are betting very heavily on it! It's an all conquering, trustworthy XC machine with a touch of the untamed. Go light and speedy for local races or load up with gear for that rugged adventure trip.
What's the secret sauce? We designed this bike with a modern XC geometry, that optimises trail-riding zeal, while of course incorporating our material of choice, top-notch titanium Grade 9 3.25 tubing. The FKTi is adventure-ready, folks.
We've already seen it smashing 'Fastest Known Times' and ultra races. As off-road gets more adventurous, the FKTi is here to help you blaze the trails. We have even created a Drop Bar XC racing build that will combine the best of gravel racing with a more solid and capable set up.
Socks
[]Essentials
Cleaners, Degreasers and Lubrication
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "XC FKTI Bike - Carbon Fork - SLX Groupset",
"url": "https:\/\/projektride.co.uk\/products\/xc-fkti-bike-carbon-fork-slx-groupset","image": [
"https:\/\/projektride.co.uk\/cdn\/shop\/files\/XC_FKTI_Carbon_Fork_SLX_on_magenta_2048x.webp?v=1747405873"
],"description": "MTB Frame details\n\n\n\n\n\nHeadtube: ZS44\/EC44 headset included\nAlloy seatpost collar included\nUDH hanger included\nRobert Axle Project Rear 148x12mm Boost thru axle included\nSeatpost: 31.6 mm (dropper post ready)\nBottom bracket: 73mm BSA \nBrake standard: Direct-mount 160mm\nFork travel: 100 – 120mm\nAvailable with carbon or suspension fork\nWheel Size: 29″\nTire size: up to 29×2.4”\nMax Chainring: up to 38t\nFrame weight 2.1 kg\nButted tubes\nGrade 9 3Al-2.5V\nLifetime Frame Warranty\n\nGeometry, Weight \u0026amp; Specs\n\n\n\n\nPictures are for reference purposes only.\nIf you have any requirements for custom parts, feel free to send us an email.\nBuild details.\n\n\n\n\n\n\n\nProduct Type\nComponent\n\n\nBar Tape \/ Grips\nODI\n\n\nFrame\nGloria - Titanium FKti\n\n\nFork\nGloria Carbon with Cages mounts\n\n\nHandle Bar\nPro 800 x 40 mm rise\n\n\nSaddle\nSelle Itallia\n\n\nStem\nBBB\n\n\nTyre\nSchwalbe Racing Ralph Tubeless\n\n\nWheel Pair\nE 1900 wheel, 30 mm rim ,29 inch\n\n\nBottom Bracket\nBB-RS501 bottom bracket cups, English thread cups\n\n\nSeat Post\nBBB 31.6 x 400mm\n\n\nGroupset\nSLX\n\n\nCassette\nCS-M7100 SLX 12-speed cassette 10 - 51T\n\n\nChain\nCNM7100126Q CN-M7100 SLX\/105 HG+ chain with quick link, 12-speed, 126L\n\n\nCrank Set\nFC-M7100 SLX Crank set without ring, 12-speed, 52 mm chainline\n\n\nHead Set\nGloria ZS44\/EC44\n\n\nHead Set spacer\nHeadset Spacer Set \/ 1 1\/8\" \/ 2 x 10mm \/ Black\n\n\nBreaks\nBR-M7120\/BL-M7100 SLX 4 pot bled brake lever\/post mount calliper\n\n\nTrigger\nRDM7100SGS RD-M7100 SLX 12-speed rear derailleur, Shadow+ SGS, for single\n\n\nRear Mech\nRDM7100SGS RD-M7100 SLX 12-speed rear derailleur, Shadow+ SGS, for single\n\n\nSeat Clamp\nGloria Forged Alloy Bolt Up 34.9\n\n\nRotors\n\nFront 180 \/ Rear 160 SMRT64 Center Lock\n\n\n\n\n \nAbout the XC FKTi\n\n\n\n\nIntroducing our new Gloria XC bike, the FKTi, and it's ready to take on anything; from local XC laps, chatty UK gravel rides and even epic edge-of-the-world adventures. We believe this bike absolutely does it all.\nThe FKTi is our wildcard, we are betting very heavily on it! It's an all conquering, trustworthy XC machine with a touch of the untamed. Go light and speedy for local races or load up with gear for that rugged adventure trip.\nWhat's the secret sauce? We designed this bike with a modern XC geometry, that optimises trail-riding zeal, while of course incorporating our material of choice, top-notch titanium Grade 9 3.25 tubing. The FKTi is adventure-ready, folks.\nWe've already seen it smashing 'Fastest Known Times' and ultra races. As off-road gets more adventurous, the FKTi is here to help you blaze the trails. We have even created a Drop Bar XC racing build that will combine the best of gravel racing with a more solid and capable set up.\nWe've kept things sleek and simple – a straight headtube for stiffness and weight reduction, a direct mount rear brake, and a classic BSA bottom bracket.\nReady for anything? Well so are we: Mechanical or Electronic shifting, hydraulic braking or not – the Gloria FKTi is as versatile to build as it is to ride. Want it fully integrated, you can achieve it with Gloria!\n\n\n","brand": {
"@type": "Thing",
"name": "Gloria"
},"gtin8": "","offers": [{
"@type" : "Offer","availability" : "http://schema.org/InStock",
"price" : 2699.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/xc-fkti-bike-carbon-fork-slx-groupset?variant=55464801927551"
},
{
"@type" : "Offer","availability" : "http://schema.org/InStock",
"price" : 2699.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/xc-fkti-bike-carbon-fork-slx-groupset?variant=55464801960319"
},
{
"@type" : "Offer","availability" : "http://schema.org/InStock",
"price" : 2699.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/xc-fkti-bike-carbon-fork-slx-groupset?variant=55464801993087"
},
{
"@type" : "Offer","availability" : "http://schema.org/InStock",
"price" : 2699.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/xc-fkti-bike-carbon-fork-slx-groupset?variant=55464802025855"
}
]
}
Accessories
Sell Your Bike
>
Finance>
Hire Lazer Compact Helmet
Black
-
a class="product__media product__media--featured" href="/collections/gloria-builds/products/hire-ortlieb-40l-pannier-bags" title="Hire Ortlieb 40L Pannier Bags" aria-label="Hire Ortlieb 40L Pannier Bags" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_600x.jpg?v=1741085512)"> 72.5£0.00Seat Tube Angle
-
Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable73.5>73.5>
73.5
73.5a class="product__media product__media--featured" href="/collections/gloria-builds/products/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire" title="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" aria-label="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_600x.png?v=1691610428)">
span class="visually-hidden">Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable
Hybrid / City Bikes


