0 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-wor
) or email ( // Check if translations are enabled but missing from cache
// This handles the backfill period where DB has translations but metafield doesn't
if (settings.multi_language_enabled) {
if (!settings.translations) {
// Translations enabled but no 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 n
ld 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"
[email protected]<
},
{
"@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"
}
]
}
) where on of the team will be more than happy to help.!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[key
ProjektRide Bike Shop Edinburghbug('STOQ - using cached settings');
initializeScripts(validCachedSettings);
} else {
console.debug('STOQ - fetching fresh settings');
const headers = {
'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
'ngrok-skip-browser-warning': 'skip'
};
if (window.Shopify?.theme?.role === 'main') {
headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name;
headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;
headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id;
}
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(funForks
tion || settings.preorder_collection_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'product') {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct);
} else if(hijackIntegration) {
createRestockRocketScript(win
Colour