Tools & Maintenance
3":null,"sku":"5296817","requires_shipping":true,"taxable":true,"featured_image":{"id":86929830510975,"product_id":15846734496127,"position":1,"created_at":"2026-08-18T16:01:15+01:00","updated_at":"2026-08-18T16:01:19+01:00","alt":"Fuel EX 8 GX AXS T-Type Gen 6","width":3000,"height":2250,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Primary_52bb569a-a088-4a26-8e1a-585c6a771275.jpg?v=1787065279","variant_ids":[58205452304767]},"available":true,"name":"Fuel EX 8 GX AXS T-Type Gen 6 - Matte Keswick","public_title":"Matte Keswick","options":["Matte Keswick"],"price":390000,"weight":0,"compare_at_price":450000,"inventory_management":"shopify","barcode":"768682170090","featured_media":{"alt":"Fuel EX 8 GX AXS T-Type Gen 6","id":72254284235135,"position":1,"preview_image":{"aspect_ratio":1.333,"height":2250,"width":3000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Primary_52bb569a-a088-4a26-8e1a-585c6a771275.jpg?v=1787065279"}},"requires_selling_plan":false,"sell o.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-B-Primary_e2467070-5069-44de-b940-9d2e71cd9663.jpg?v=1787065280"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Primary_52bb569a-a088-4a26-8e1a-585c6a771275.jpg?v=1787065279","\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Portrait.jpg?v=1787065280","\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Alt1.jpg?v=1787065281","\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Alt2.jpg?v=1787065280","\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Alt3.jpg?v=1787065280","\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Alt4.jpg?v=1787065280","\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Alt5.jpg?v=1787065280","\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Alt6.jpg?v=1787065280","\/\/projektride.co.uk\/cdn\/shoosition":5,"preview_image":{"aspect_ratio":1.333,"height":3000,"width":4000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Alt3.jpg?v=1787065280"},"aspect_ratio":1.333,"height":3000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Alt3.jpg?v=1787065280","width":4000},{"alt":"Fuel EX 8 GX AXS T-Type Gen 6","id":72254284398975,"position":6,"preview_image":{"aspect_ratio":1.333,"height":3000,"width":4000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Alt4.jpg?v=1787065280"},"aspect_ratio":1.333,"height":3000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Alt4.jpg?v=1787065280","width":4000},{"alt":"Fuel EX 8 GX AXS T-Type Gen 6","id":72254284431743,"position":7,"preview_image":{"aspect_ratio":1.333,"height":3000,"width":4000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-A-Alt5.jpg?v=1787065280"},"aspect_ratio":1.333,"height":3000,"media_type":"image",ition":20,"preview_image":{"aspect_ratio":1.333,"height":2250,"width":3000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-B-Alt8_5c82346c-ad5d-4423-867f-cc60d6b0875c.jpg?v=1787065280"},"aspect_ratio":1.333,"height":2250,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FuelEX8GXAXS-24-41328-B-Alt8_5c82346c-ad5d-4423-867f-cc60d6b0875c.jpg?v=1787065280","width":3000}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eThe Fuel EX 8 GX AXS is an evolved trail bike, dialled for riders who chase down rowdy descents and want a bike that's happy to pedal back to the top and do it again. The lightweight alloy frame pairs with a upgraded electronic wireless 12-speed SRAM GX Eagle transmission, while a 150 mm FOX Rhythm fork cushions the blow from rocks and roots. In-frame storage and adjustable geometry give you all the perks that the come with the carbon model, but without the lofty price tag.\u003c\/p\u003e\n\u003ch3\u003eTechnology\u003c\/h3\u003L air spring, GRIP damper, tapered steerer, 44mm offset, Boost110, 15mm Kabolt X axle, 150mm travel Fox Rhythm 36, Float EVOL air spring, GRIP damper, tapered steerer, 44mm offset, Boost110,\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRearsuspension\u003c\/th\u003e\n\u003ctd\u003eFox\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSuspension Rear\u003c\/th\u003e\n\u003ctd\u003eFox Performance Float X, 2-position damper, 185 mm x 55 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWheels\u003c\/th\u003e\n\u003ctd\u003eBontrager Line Comp 30\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTires\u003c\/th\u003e\n\u003ctd\u003eBontrager XR5 Team Issue, Tubeless Ready, Inner Strength casing, aramid bead, 60 tpi, 29x2.50\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eShifter\u003c\/th\u003e\n\u003ctd\u003eSRAM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eDerailleur Rear\u003c\/th\u003e\n\u003ctd\u003eSRment.classList.remove('stoq-buy-now-pending');
}, 6000);
}
} catch (e) { }
window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/01a0141e-6f2a-7bbb-b429-5a0e333a31f5/restockrocket-1-564/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/01a0141e-6f2a-7bbb-b429-5a0e333a31f5/restockrocket-1-564/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptUrlProductBis = 'https://cdn.shopify.com/extensions/01a0141e-6f2a-7bbb-b429-5a0e333a31f5/restockrocket-1-564/assets/restockrocket-product-bis.js'
window._RestockRocketConfig.scriptUrlCollectionBis = 'https://cdn.shopify.com/extensions/01a0141e-6f2a-7bbb-b429-5a0e333a31f5/restockrocket-1-564/assets/restockrocket-collection-bis.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
window._RestockRocketConfig.host = (wind Math.max(0, liquidCacheAge);
if (liquidCacheAge 0) {
console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else if (liquidCacheAge = LIQUID_CACHE_MAX_AGE) {
console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else {
console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`);
window._RestockRocketConfig.isLiquidCacheFresh = false;
}
}
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data structure');
return null;
}
if (!settings.cache) {
console.debug('STOQ - settings caching disabled');
return null;
}
if (settings.multi_language_enabled) {
if (!settings.translations) {
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
if (window._RestockRocketConfig.normalizedLocale &
Montenegro (EUR€)
Rwanda (RWFFRw)
- 26050,44140315050210,44140317016290,44140321636578,44140335792354,44140335825122,44140335857890,44140339953890,44140339986658,44140340150498,44140340248802,44140340281570,44140340543714,44140340707554,44140340740322,44140340773090,44140345065698,44140352438498,44140397756642,44140404441314,44140404474082,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712415103,55569712447871,55569712480639,55570017616255,55570550194559,55604008976767,55638316908927,55638316941695,55638316974463,56220814967167,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56399322251647,58086872056191,58086872088959,58086941819263,58145667154303,58156649972095,58205080093055,58205080125823],"updated_at":"2026-08-21T00:07:32Z","market_locations_ena,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_enabled":true,"preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorket_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_style":"text","countdown_timer_tex
- hopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_enabled":true,"preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_butenabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdownlan_ids":[713813721471,713176482175,714631872895],"cached_at":"2026-04-09T09:16:46Z"}; if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) { const oldPlans = window._RestockRocketConfig.sellingPlans; const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0 ? oldPlans.reduce(function(max, plan) { if (plan.updated_at) { const planDate = new Date(plan.updated_at); const maxDate = max ? new Date(max) : null; return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max; } return max; }, '') : null; const cachedDate = new Date(cachedData.cached_at); const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null; const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate)); if (useCached) { if (Array.isArray(cachedDatastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":15846734496127,"title":"Fuel EX 8 GX AXS T-Type Gen 6","handle":"fuel-ex-8-gx-axs-t-type-gen-6-41328","description":"\u003cp\u003eThe Fuel EX 8 GX AXS is an evolved trail bike, dialled for riders who chase down rowdy descents and want a bike that's happy to pedal back to the top and do it again. The lightweight alloy frame pairs with a upgraded electronic wireless 12-speed SRAM GX Eagle transmission, while a 150 mm FOX Rhythm fork cushions the blow from rocks and roots. In-frame storage and adjustable geometry give you all the perks that the come with the carbon model, but without the lofty price tag.\u003c\/p\u003e\n\u003ch3\u003eTechnology\u003c\/h3\u003e\u003cp\u003eGRIP damper, tapered steerer, 44mm offset, Boost110, 15mm Kabolt X axle, 150mm travel Fox Rhythm 36, Float EVOL air spring, GRIP damper, tapered steerer, 44mm offset, Boost110,\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRearsuspension\u003c\/th\u003e\n\u003ctd\u003eFox\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSuspension Rear\u003c\/th\u003e\n\u003ctd\u003eFox Performance Float X, 2-position damper, 185 mm x 55 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eWheels\u003c\/th\u003e\n\u003ctd\u003eBontrager Line Comp 30\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTires\u003c\/th\u003e\n\u003ctd\u003eBontrager XR5 Team Issue, Tubeless Ready, Inner Strength casing, aramid bead, 60 tpi, 29x2.50\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eShifter\u003c\/th\u003e\n\u003ctd\u003eSRAM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eDerailleur Rear\u003c\/th\u003e\n\u003ctd\u003eSRAM GX Eagle AX
| < 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') try { const _stoqInitConfig = window._RestockRocketConfig; const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqI | |
| as(_sqTrack.cachedInStockVariantIds && _sqTrack.cachedInStockVariantIds.in_stock_variant_ids); })(), enrolled_plan_id: (_sqPlan && (_sqPlan.shopify_selling_plan_id || _sqPlan.shopify_selling_plan_group_id)) || '', enrolled_plan_provider: (_sqPlan && _sqPlan.inventory_provider) || '', block_enabled: !!(_sqTrack.cachedSettings && _sqTrack.cachedSettings.block_accelerated_checkout), gate_armed: !!_sqTrack.acceleratedGateArmed, gate_active_at_click: !!(document.documentElement && document.documentElement.classList.contains('stoq-buy-now-pending')), blocked: (function () { try { var rr = window._RestockRocket; return !!(rr && typeof rr.willBlockAcceleratedClick === 'function' && rr.willBlockAcceleratedClick(e)); } catch (err) { return false; } })(), }, }); Cassette } catch (err) { } }, true); } } catch (e) { } function applyTranslations(settings) { try { 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) { 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]; 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; } } function setupCartSellingPlanUpdater(settings) { 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); }); } }); } (function loadStorefrontSettings() { const cfg = window._RestockRocketConfig; if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) return; function run() { const query = 'query StoqSettings($namespace: String!) { shop { metafield(namespace: $namespace, key: "settings") { value } } }'; fetch( `https://${cfg.shop}/api/2025-07/graphql.json`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Shopify-Storefront-Access-Token': cfg.storefrontAccessToken, }, body: JSON.stringify({ query: query, variables: { namespace: cfg.metafieldNamespace } }), } ) .then(function(response) { if (!response.ok) { throw new Error('Storefront API HTTP ' + response.status); } return response.json(); }) .then(function(body) { if (body && body.errors && body.errors.length) { throw new Error('Storefront API errors: ' + body.errors.map(function(e) { return e && e.message; }).join(', ')); } const value = body && body.data && body.data.shop && body.data.shop.metafield && body.data.shop.metafield.value; if (!value) { throw new Error('Storefront API returned no settings metafield value'); } cfg.storefrontSettings = JSON.parse(value); console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings'); }) .catch(function(e) { console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message); }); } if (typeof window.requestIdleCallback === 'function') { window.requestIdleCallback(run, { timeout: 5000 }); } else { setTimeout(run, 0); } })(); const cachedSettings = window._RestockRocketConfig.cachedSettSRAM Eagle PG-1240, T-Type, 11-52, 12 speedIceland (ISKkr) ings; 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.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 n | ot ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { 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 fetchEmbedConfig(endpoint, apply) { return fetch( `${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`, { headers: { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' } } ) .then(function(response) { if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`); return response.json(); }) .then(function(data) { try { apply(data); } catch (applyError) { console.error('STOQ - apply failed for ' + endpoint + ':', applyError); throw applyError; } }) .catch(function(error) { console.debug(`STOQ - using cached ${endpoint}:`, error.message); }); } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); if (!window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid) { console.debug('STOQ - Liquid cache stale, refreshing selling_plans + integrations'); Promise.race([ Promise.all([ fetchEmbedConfig('selling_plans', function(data) { if (data && Array.isArray(data.plans)) { window._RestockRocketConfig.sellingPlans = data.plans; window._RestockRocketConfig.disabledSellingPlanIds = data.disabled_plan_ids || []; } }), fetchEmbed
| SRAM Eagle 70, T-Type, 12-speed | |
| Brake | TektroItaly (EUR€) |
| BrakesetJersey (GBP£) | Tektro HD-M5140 4-piston hydraulic disc // Tektro HD-M5140 hydraulic disc Tektro HD-M5140 4-piston hydraulic disc // Tektro HD-M5140 hydraulic disc |
| Brake Rotor | Tektro, CentreLock, 203 mmKosovo (EUR€) |
| SaddleLatvia (EUR€) | Bontrager Verse Short, stainless steel rails |
| Seatpost | TranzX JD-YSI34, 170mm travel, internal routing, 34.9 mmLiberia (GBP£) |
| HandlebarLibya (GBP£) | Bontrager Comp, alloy, 31.8 mm, 40mm rise, 780 mm width |
| Stem | Bontrager Comp, 31.8 mm, 7-degree, 35 mm lengthLithuania (EUR€) |
| Size Chart Rider Inseam | Inseam - 84.0 - 89.0Monaco (EUR€) |
If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item.
Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.
We also have a physical store, if you are local please pop in -
ProjektRide Bike Shop EdinburghNorway (GBP£)
1 
Quantity
RockShox Lyrik Ultimate, DebonAir+ w/ ButterCups, Charger 3.1 RC damper, tapered steerer, 44 mm offset, Boost110, 15 mm Maxle Stealth, 150 mm travel RockShox Lyrik Ultimate, DebonAir+ w/ ButterCups, Charger 3.1 RC d
Wheels


E-bike Batteries and chargers