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
age = Date.now() - updatedAt.getTime();
if (age
<
[email protected] SETTINGS_CACHE_DURATION) {
console.debug('STOQ - settings changed recently, skipping cache');
return null;
}
return settings;
} catch (error) {
console.debug('STOQ - Error checking settings cache:', error);
return null;
}
}
function createRestockRocketContainer() {
const restockRocketContainer = document.createElement('div');
restockRocketContainer.id = 'restock-rocket';
document.body.appendChild(restockRocketContainer);
}
function createRestockRocketScript(scriptUrl) {
const restockRocketScriptElement = document.createElement('script');
restockRocketScriptElement.setAttribute('defer', 'defer');
restockRocketScriptElement.src = scriptUrl;
document.body.appendChild(restockRocketScriptElement);
}
createRestockRocketContainer()
console.debug('STOQ - extension activated')
function applyTranslations(settings) {
try {
// Skip translation logic entirely if multi-language is not enabled
if (!settings ||
!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[keyHire Ortlieb 40L Pannier Bags
];
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;
}
}
// Setup event listener for cart selling plan updates
// This must be called before any scripts are loaded to avoid race conditions
function setupCartSellingPlanUpdater(settings) {
// Setup listener regardless - updateCartSellingPlans has its own guards
// This ensures cleanup happens even when preorders are disabled globally
// Listen for stoq:inventory-data-loaded event dispatched by api.js
window.addEventListener('stoq:inventory-data-loaded', function(event) {
console.debug('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);
});
}
});
}
// 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
{"id":15093079671167,"title":"XC FKTI Bike - SID Ultimate Fork - SLX Groupset","handle":"xc-fkti-bike-sid-ultimate-fork-slx-groupset","description":"\u003ch2 class=\"product-about__accordion-title active\"\u003e\u003cspan class=\"h5\"\u003eMTB Frame details\u003c\/span\u003e\u003c\/h2\u003e\n\u003cdiv class=\"product-about__more-link-wrapper\"\u003e\n\u003cdiv class=\"product-about__more-link\"\u003e\u003csvg class=\"icon icon-filter-two\" width=\"12\" height=\"7\" viewbox=\"0 0 12 7\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cpath d=\"M10 1.5L6 5.5L2 1.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"square\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"product-about__accordion-description\"\u003e\n\u003cul\u003e\n\u003cli\u003eHeadtube: ZS44\/EC44 headset included\u003c\/li\u003e\n\u003cli\u003eAlloy seatpost collar included\u003c\/li\u003e\n\u003cli\u003eUDH hanger included\u003c\/li\u003e\n\u003cli\u003eRobert Axle Project Rear 148x12mm Boost thru axle included\u003c\/li\u003e\n\u003cli\u003eSeatpost: 31.6 mm (dropper post ready)\u003c\/li\u003e\n\u003cli\u003eBottom bracket: 73mm BSA \u003c\/li\u003e\n\u003cli\u003eBrake standard: Direct-mount 160mm\u003c\/li\u003e\n\u003cli\u003eFork travel: 100 – 120mm\u003c\/li\u003e\n\u003cli\u003eAvailable with carbon or suspension fork\u003c\/li\u003e\n\u003cli\u003eWheel Size: 29″\u003c\/li\u003e\n\u003cli\u003eTire size: up to 29×2.4”\u003c\/li\u003e\n\u003cli\u003eMax Chainring: up to 38t\u003c\/li\u003e\n\u003cli\u003eFrame weight 2.1 kg\u003c\/li\u003e\n\u003cli\u003eButted tubes\u003c\/li\u003e\n\u003cli\u003eGrade 9 3Al-2.5V\u003c\/li\u003e\n\u003cli\u003eLifetime Frame Warranty\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2 class=\"h5 product-about__accordion-title active\"\u003e\u003cspan\u003eGeometry, Weight \u0026amp; Specs\u003c\/span\u003e\u003c\/h2\u003e\n\u003cdiv class=\"product-about__more-link-wrapper\"\u003e\n\u003cdiv class=\"product-about__more-link\"\u003e\u003csvg class=\"icon icon-filter-two\" width=\"12\" height=\"7\" viewbox=\"0 0 12 7\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cpath d=\"M10 1.5L6 5.5L2 1.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"square\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"product-about__accordion-description main-product-description\"\u003e\n\u003cp\u003e\u003cstrong\u003ePictures are for reference purposes only.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cem\u003e\u003cstrong\u003eIf you have any requirements for custom parts, feel free to send us an email.\u003c\/strong\u003e\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003eBuild details.\u003c\/p\u003e\n\u003ctable xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" cellspacing=\"0\" cellpadding=\"0\" dir=\"ltr\" border=\"1\" data-sheets-root=\"1\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"210\"\u003e\n\u003ccol width=\"710\"\u003e\n\u003c\/colgroup\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Product Type\"}'\u003eProduct Type\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Component\"}'\u003eComponent\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Bar Tape \/ Grips\"}'\u003eBar Tape \/ Grips\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"ODI\"}'\u003eErgon\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Frame\"}'\u003eFrame\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria - Titanium FKti\"}'\u003eGloria - Titanium FKTi\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Fork\"}'\u003eFork\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria Cabon with Cages mounts\"}'\u003eROCKSHOX FORK SID SL ULTIMATE RACE DAY - 3P CROWN D1 - GLOSS BLACK 100MM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Handle Bar\"}'\u003eHandle Bar\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Pro 800 x 40 mm rise\"}'\u003eSQ Labs 30x 12\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Saddle\"}'\u003eSaddle\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Selle Itallia\"}'\u003eFizik Argo\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Stem\"}'\u003eStem\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"BBB\"}'\u003eBBB\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Tyre\"}'\u003eTyre\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Schwalbe Racing Ralph Tubeless\"}'\u003eSchwalbe Racing Ralph Tubeless\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Wheel Pair\"}'\u003eWheel Pair\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"E 1900 wheel, 30 mm rim ,29 inch \"}'\u003eGloria Carbon DT370, 30 mm rim ,29 inch\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Bottom Bracket\"}'\u003eBottom Bracket\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"BB-RS501 bottom bracket cups, English thread cups\"}'\u003eBB-RS501 bottom bracket cups, English thread cups\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Seat Post\"}'\u003eSeat Post\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"BBB 31.6 x 400mm\"}'\u003eBBB 31.6 x 400mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Groupset\"}'\u003eGroupset\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"SLX\"}'\u003eSLX\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Cassette\"}'\u003eCassette\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"CS-M7100 SLX 12-speed cassette 10 - 51T\"}'\u003eCS-M7100 SLX 12-speed cassette 10 - 51T\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Chain\"}'\u003eChain\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"CNM7100126Q CN-M7100 SLX\/105 HG+ chain with quick link, 12-speed, 126L \"}'\u003eCNM7100126Q CN-M7100 SLX\/105 HG+ chain with quick link, 12-speed, 126L\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Crank Set\"}'\u003eCrank Set\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"FC-M7100 SLX Crank set without ring, 12-speed, 52 mm chainline\"}'\u003eFC-M7100 SLX Crank set without ring, 12-speed, 52 mm chainline\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Head Set\"}'\u003eHead Set\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria ZS44\/EC44\"}'\u003eGloria ZS44\/EC44\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Head Set spacer\"}'\u003eHead Set spacer\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\" Headset Spacer Set \/ 1 1\/8\\\" \/ 2 x 10mm \/ Black\"}'\u003eHeadset Spacer Set \/ 1 1\/8\" \/ 2 x 10mm \/ Black\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Breaks\"}'\u003eBreaks\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"BR-M7120\/BL-M7100 SLX 4 pot bled brake lever\/post mount calliper\"}'\u003eBR-M7120\/BL-M7100 SLX 4 pot bled brake lever\/post mount calliper\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Trigger\"}'\u003eTrigger\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"RDM7100SGS RD-M7100 SLX 12-speed rear derailleur, Shadow+ SGS, for single \"}'\u003eRDM7100SGS RD-M7100 SLX 12-speed rear derailleur, Shadow+ SGS, for single\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Rear Mech\"}'\u003eRear Mech\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"RDM7100SGS RD-M7100 SLX 12-speed rear derailleur, Shadow+ SGS, for single \"}'\u003eRDM7100SGS RD-M7100 SLX 12-speed rear derailleur, Shadow+ SGS, for single\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Seat Clamp\"}'\u003eSeat Clamp\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria Forged Alloy Bolt Up 34.9\"}'\u003eGloria Forged Alloy Bolt Up 34.9\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Rotors\"}'\u003eRotors\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Front 180 \/ Rear 160 SMRT64 Center Lock\"}'\u003e\n\u003cp\u003eFront 180 \/ Rear 160 SMRT64 Center Lock\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2 class=\"product-about__accordion-title active\"\u003e\u003cspan class=\"h5\"\u003eAbout the XC FKTi\u003c\/span\u003e\u003c\/h2\u003e\n\u003cdiv class=\"product-about__more-link-wrapper\"\u003e\n\u003cdiv class=\"product-about__more-link\"\u003e\u003csvg class=\"icon icon-filter-two\" width=\"12\" height=\"7\" viewbox=\"0 0 12 7\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cpath d=\"M10 1.5L6 5.5L2 1.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"square\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"product-about__accordion-description\"\u003e\n\u003cp\u003eIntroducing 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.\u003c\/p\u003e\n\u003cp\u003eThe 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.\u003c\/p\u003e\n\u003cp\u003eWhat'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.\u003c\/p\u003e\n\u003cp\u003eWe'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.\u003c\/p\u003e\n\u003cp\u003eWe'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.\u003c\/p\u003e\n\u003cp\u003eReady 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!\u003c\/p\u003e\n\u003ch2 class=\"product-about__accordion-title active\"\u003e\u003cspan class=\"h5\"\u003eFKTi XC Highlights\u003c\/span\u003e\u003c\/h2\u003e\n\u003cdiv class=\"product-about__more-link-wrapper\"\u003e\n\u003cdiv class=\"product-about__more-link\"\u003e\u003csvg class=\"icon icon-filter-two\" width=\"12\" height=\"7\" viewbox=\"0 0 12 7\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cpath d=\"M10 1.5L6 5.5L2 1.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"square\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"product-about__accordion-description\"\u003e\n\u003cp\u003e\u003cstrong\u003e🚴♂️ A bike designed to do it all.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e🌍 A bike built to explore.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e🔗 Built with Grade 9 Titanium (3Al-2.5V).\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e💸 Unmatched performance at an unbeatable price.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e🛡️ Tried, tested, and adventure-approved.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e⚙️ Timeless design, modern performance.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e📦 Ready for every ride \u0026amp; every path.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e✨ Simplicity meets precision engineering.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e🚀 Built to last, designed to perform\u003c\/strong\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","published_at":"2025-05-20T16:30:41+01:00","created_at":"2025-05-20T16:30:41+01:00","vendor":"Gloria","type":"Bicycles","tags":["FKTI"],"price":329900,"price_min":329900,"price_max":329900,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":55482515620223,"title":"Small","option1":"Small","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"XC FKTI Bike - SID Ultimate Fork - SLX Groupset - Small","public_title":"Small","options":["Small"],"price":329900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55482515652991,"title":"Medium","option1":"Medium","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"XC FKTI Bike - SID Ultimate Fork - SLX Groupset - Medium","public_title":"Medium","options":["Medium"],"price":329900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55482515685759,"title":"Large","option1":"Large","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"XC FKTI Bike - SID Ultimate Fork - SLX Groupset - Large","public_title":"Large","options":["Large"],"price":329900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55482515718527,"title":"Extra Large","option1":"Extra Large","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"XC FKTI Bike - SID Ultimate Fork - SLX Groupset - Extra Large","public_title":"Extra Large","options":["Extra Large"],"price":329900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/190325--084.webp?v=1747754675","\/\/projektride.co.uk\/cdn\/shop\/files\/190325--080.webp?v=1747754683","\/\/projektride.co.uk\/cdn\/shop\/files\/190325--078.webp?v=1747755073","\/\/projektride.co.uk\/cdn\/shop\/files\/190325--071.webp?v=1747755073","\/\/projektride.co.uk\/cdn\/shop\/files\/190325--073.webp?v=1747755073","\/\/projektride.co.uk\/cdn\/shop\/files\/190325--082_1.webp?v=1747755073","\/\/projektride.co.uk\/cdn\/shop\/files\/190325--079.webp?v=1747755073"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--084.webp?v=1747754675","options":["Size"],"media":[{"alt":null,"id":65912657183103,"position":1,"preview_image":{"aspect_ratio":1.5,"height":1365,"width":2048,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--084.webp?v=1747754675"},"aspect_ratio":1.5,"height":1365,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--084.webp?v=1747754675","width":2048},{"alt":null,"id":65912660066687,"position":2,"preview_image":{"aspect_ratio":1.503,"height":1363,"width":2048,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--080.webp?v=1747754683"},"aspect_ratio":1.503,"height":1363,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--080.webp?v=1747754683","width":2048},{"alt":null,"id":65912737988991,"position":3,"preview_image":{"aspect_ratio":1.5,"height":1365,"width":2048,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--078.webp?v=1747755073"},"aspect_ratio":1.5,"height":1365,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--078.webp?v=1747755073","width":2048},{"alt":null,"id":65912741364095,"position":4,"preview_image":{"aspect_ratio":1.5,"height":1365,"width":2048,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--071.webp?v=1747755073"},"aspect_ratio":1.5,"height":1365,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--071.webp?v=1747755073","width":2048},{"alt":null,"id":65912669700479,"position":5,"preview_image":{"aspect_ratio":0.667,"height":2048,"width":1365,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--073.webp?v=1747755073"},"aspect_ratio":0.667,"height":2048,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--073.webp?v=1747755073","width":1365},{"alt":null,"id":65912671764863,"position":6,"preview_image":{"aspect_ratio":0.667,"height":2048,"width":1365,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--082_1.webp?v=1747755073"},"aspect_ratio":0.667,"height":2048,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--082_1.webp?v=1747755073","width":1365},{"alt":null,"id":65912686215551,"position":7,"preview_image":{"aspect_ratio":0.667,"height":2048,"width":1365,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--079.webp?v=1747755073"},"aspect_ratio":0.667,"height":2048,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/190325--079.webp?v=1747755073","width":1365}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003ch2 class=\"product-about__accordion-title active\"\u003e\u003cspan class=\"h5\"\u003eMTB Frame details\u003c\/span\u003e\u003c\/h2\u003e\n\u003cdiv class=\"product-about__more-link-wrapper\"\u003e\n\u003cdiv class=\"product-about__more-link\"\u003e\u003csvg class=\"icon icon-filter-two\" width=\"12\" height=\"7\" viewbox=\"0 0 12 7\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cpath d=\"M10 1.5L6 5.5L2 1.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"square\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"product-about__accordion-description\"\u003e\n\u003cul\u003e\n\u003cli\u003eHeadtube: ZS44\/EC44 headset included\u003c\/li\u003e\n\u003cli\u003eAlloy seatpost collar included\u003c\/li\u003e\n\u003cli\u003eUDH hanger included\u003c\/li\u003e\n\u003cli\u003eRobert Axle Project Rear 148x12mm Boost thru axle included\u003c\/li\u003e\n\u003cli\u003eSeatpost: 31.6 mm (dropper post ready)\u003c\/li\u003e\n\u003cli\u003eBottom bracket: 73mm BSA \u003c\/li\u003e\n\u003cli\u003eBrake standard: Direct-mount 160mm\u003c\/li\u003e\n\u003cli\u003eFork travel: 100 – 120mm\u003c\/li\u003e\n\u003cli\u003eAvailable with carbon or suspension fork\u003c\/li\u003e\n\u003cli\u003eWheel Size: 29″\u003c\/li\u003e\n\u003cli\u003eTire size: up to 29×2.4”\u003c\/li\u003e\n\u003cli\u003eMax Chainring: up to 38t\u003c\/li\u003e\n\u003cli\u003eFrame weight 2.1 kg\u003c\/li\u003e\n\u003cli\u003eButted tubes\u003c\/li\u003e\n\u003cli\u003eGrade 9 3Al-2.5V\u003c\/li\u003e\n\u003cli\u003eLifetime Frame Warranty\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2 class=\"h5 product-about__accordion-title active\"\u003e\u003cspan\u003eGeometry, Weight \u0026amp; Specs\u003c\/span\u003e\u003c\/h2\u003e\n\u003cdiv class=\"product-about__more-link-wrapper\"\u003e\n\u003cdiv class=\"product-about__more-link\"\u003e\u003csvg class=\"icon icon-filter-two\" width=\"12\" height=\"7\" viewbox=\"0 0 12 7\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cpath d=\"M10 1.5L6 5.5L2 1.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"square\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"product-about__accordion-description main-product-description\"\u003e\n\u003cp\u003e\u003cstrong\u003ePictures are for reference purposes only.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cem\u003e\u003cstrong\u003eIf you have any requirements for custom parts, feel free to send us an email.\u003c\/strong\u003e\u003c\/em\u003e\u003c\/p\u003e\n\u003cp\u003eBuild details.\u003c\/p\u003e\n\u003ctable xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" cellspacing=\"0\" cellpadding=\"0\" dir=\"ltr\" border=\"1\" data-sheets-root=\"1\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"210\"\u003e\n\u003ccol width=\"710\"\u003e\n\u003c\/colgroup\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Product Type\"}'\u003eProduct Type\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Component\"}'\u003eComponent\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Bar Tape \/ Grips\"}'\u003eBar Tape \/ Grips\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"ODI\"}'\u003eErgon\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Frame\"}'\u003eFrame\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria - Titanium FKti\"}'\u003eGloria - Titanium FKTi\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Fork\"}'\u003eFork\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"
hopify.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(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(cac
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._RestockRocketCon1\":2,\"2\":\"Gloria Cabon with Cages mounts\"}'\u003eROCKSHOX FORK SID SL ULTIMATE RACE DAY - 3P CROWN D1 - GLOSS BLACK 100MM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Handle Bar\"}'\u003eHandle Bar\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Pro 800 x 40 mm rise\"}'\u003eSQ Labs 30x 12\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Saddle\"}'\u003eSaddle\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Selle Itallia\"}'\u003eFizik Argo\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Stem\"}'\u003eStem\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"BBB\"}'\u003eBBB\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Tyre\"}'\u003eTyre\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Schwalbe Racing Ralph Tubeless\"}'\u003eSchwalbe Racing Ralph Tubeless\u003c\£0.00
fig.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(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enab/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Wheel Pair\"}'\u003eWheel Pair\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"E 1900 wheel, 30 mm rim ,29 inch \"}'\u003eGloria Carbon DT370, 30 mm rim ,29 inch\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Bottom Bracket\"}'\u003eBottom Bracket\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"BB-RS501 bottom bracket cups, English thread cups\"}'\u003eBB-RS501 bottom bracket cups, English thread cups\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Seat Post\"}'\u003eSeat Post\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"BBB 31.6 x 400mm\"}'\u003eBBB 31.6 x 400mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Groupset\"}'\u003eGroupset\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"SLX\"}'\u003eSLX\u003c\/td\u003e\n\u0ead Set\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria ZS44\/EC44\"}'\u003eGloria ZS44\/EC44\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Head Set spacer\"}'\u003eHead Set spacer\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\" Headset Spacer Set \/ 1 1\/8\\\" \/ 2 x 10mm \/ Black\"}'\u003eHeadset Spacer Set \/ 1 1\/8\" \/ 2 x 10mm \/ Black\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Breaks\"}'\u003eBreaks\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"BR-M7120\/BL-M7100 SLX 4 pot bled brake lever\/post mount calliper\"}'\u003eBR-M7120\/BL-M7100 SLX 4 pot bled brake lever\/post mount calliper\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Trigger\"}'\u003eTrigger\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"RDM7100SGS RD-M7100 SLX 12-speed rear derailleur, Shadow+ SGS, for single \"}'\u003eRDM