Guinea-Bissau (XOFFr)
Header Image
Hungary (HUFFt)
Ireland (EUR€)
ull,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"countdown_timer_days_label":"Days","countdown_timer_hours_label":"Hours","countdown_timer_minutes_label":"Mins","countdown_timer_seconds_label":"Secs","schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2026-08-31T15:28:37.678Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_pro
te && !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(cachedData.plans)) { window._RestockRocketConfig.sellingPlans = cachedData.plans; window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || []; console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')'); } } else { window._RestockRocketConfig.disabledSellingPlanIds = []; console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')'); } } })();window._RestockRocketConfi
u003cth\u003eCrank\u003c\/th\u003e\n\u003ctd\u003eAlloy, 28T steel ring, chainguard, 152 mm length\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBottom Bracket\u003c\/th\u003e\n\u003ctd\u003eSealed cartridge, 68 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eCassette\u003c\/th\u003e\n\u003ctd\u003emicroSHIFT Acolyte H083, 11-38, 8-speed\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eChain\u003c\/th\u003e\n\u003ctd\u003eKMC Z8\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eBrakeset\u003c\/th\u003e\n\u003ctd\u003eAlloy linear-pull \/\/ Alloy linear-pull Alloy linear-pull \/\/ Alloy linear-pull\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003ePedals\u003c\/th\u003e\n\u003ctd\u003eKids' Satellite, 9\/16 thread\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSaddle\u003c\/th\u003e\n\u003ctd\u003eKids' padded, integrated seat post, Blendr light mount, 31.6x300 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u
:47500,"price_max":47500,"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":58205570498943,"title":"Blue Sage","option1":"Blue Sage","option2":null,"option3":null,"sku":"5336063","requires_shipping":true,"taxable":true,"featured_image":{"id":86930144330111,"product_id":15846748029311,"position":1,"created_at":"2026-08-18T16:09:32+01:00","updated_at":"2026-08-18T16:09:37+01:00","alt":"Wahoo 26 Path","width":3000,"height":2250,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-C-Primary_50a8318f-ad70-4e44-b771-3499abd2a8a0.jpg?v=1787065777","variant_ids":[58205570498943]},"available":true,"name":"Wahoo 26 Path - Blue Sage","public_title":"Blue Sage","options":["Blue Sage"],"price":47500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"197216224785","featured_media":{"alt":"Wahoo 26 Path","id":72254594974079,"position":1,"preview_image":{"aspect_ratio":1.3197216224761","featured_media":{"alt":"Wahoo 26 Path","id":72254595170687,"position":7,"preview_image":{"aspect_ratio":1.333,"height":2250,"width":3000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-A-Primary_0a8a1e8e-4c49-48cb-92e6-97405d3a14e8.jpg?v=1787065777"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":58205570564479,"title":"Fury Red","option1":"Fury Red","option2":null,"option3":null,"sku":"5336062","requires_shipping":true,"taxable":true,"featured_image":{"id":86930144723327,"product_id":15846748029311,"position":13,"created_at":"2026-08-18T16:09:32+01:00","updated_at":"2026-08-18T16:09:37+01:00","alt":"Wahoo 26 Path","width":3000,"height":2250,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-B-Primary_a0d84b27-c6c9-43b4-b2dc-d066173716df.jpg?v=1787065777","variant_ids":[58205570564479]},"available":true,"name":"Wahoo 26 Path - Fury Red","public_title":"Fury Red","options":["Fury Red"],files\/Wahoo26Path-26-56359-C-Alt4.jpg?v=1787065777","\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-A-Primary_0a8a1e8e-4c49-48cb-92e6-97405d3a14e8.jpg?v=1787065777","\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-A-Portrait.jpg?v=1787065776","\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-A-Alt1.jpg?v=1787065777","\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-A-Alt2.jpg?v=1787065777","\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-A-Alt3.jpg?v=1787065777","\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-A-Alt4.jpg?v=1787065777","\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-B-Primary_a0d84b27-c6c9-43b4-b2dc-d066173716df.jpg?v=1787065777","\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-B-Portrait.jpg?v=1787065777","\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-B-Alt1.jpg?v=1787065777","\/\/projektride.co.uk\/cdn\/shop\/files\/Wahoo26Path-26-56359-B-Alt2.jpg?v=1787065776","\/

Malta (EUR€)
Mauritania (GBP£)
Mauritius (MUR₨) Moldova (MDLL)
Mozambique (GBP£)
Namibia (GBP£)
LT Midstep","width":3000,"height":1751,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FXPlus2LTStag-24-40491-B-Primary_7bfef070-b6b8-4b62-a62e-69b31210ba97.jpg?v=1787065485","variant_ids":[58205509452159]},"available":true,"name":"FX+ 2 LT Midstep - Blue Sage","public_title":"Blue Sage","options":["Blue Sage"],"price":200000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"745889027440","featured_media":{"alt":"FX+ 2 LT Midstep","id":72254410457471,"position":1,"preview_image":{"aspect_ratio":1.713,"height":1751,"width":3000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FXPlus2LTStag-24-40491-B-Primary_7bfef070-b6b8-4b62-a62e-69b31210ba97.jpg?v=1787065485"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":58205509484927,"title":"Satin Trek Black","option1":"Satin Trek Black","option2":null,"option3":null,"sku":"5291490","requires_shipping":true,"taxable":true,"featured_image":{"id":86929956798847,"product_id
-24-40491-B-Primary_7bfef070-b6b8-4b62-a62e-69b31210ba97.jpg?v=1787065485","\/\/projektride.co.uk\/cdn\/shop\/files\/FXPlus2LTStag-24-40491-A-Primary_620cf287-57df-44bb-b0da-a6b48a818c58.jpg?v=1787065485"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/FXPlus2LTStag-24-40491-B-Primary_7bfef070-b6b8-4b62-a62e-69b31210ba97.jpg?v=1787065485","options":["Colour"],"media":[{"alt":"FX+ 2 LT Midstep","id":72254410457471,"position":1,"preview_image":{"aspect_ratio":1.713,"height":1751,"width":3000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FXPlus2LTStag-24-40491-B-Primary_7bfef070-b6b8-4b62-a62e-69b31210ba97.jpg?v=1787065485"},"aspect_ratio":1.713,"height":1751,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FXPlus2LTStag-24-40491-B-Primary_7bfef070-b6b8-4b62-a62e-69b31210ba97.jpg?v=1787065485","width":3000},{"alt":"FX+ 2 LT Midstep","id":72254410490239,"position":2,"preview_image":{"aspect_ratio":1.692,"height":1773,"width":3000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX
03c\/th\u003e\n\u003ctd\u003eAlpha Gold Aluminium, internal cable routing, internal battery, rack and mudguard mounts, kickstand mount\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFrame Material\u003c\/th\u003e\n\u003ctd\u003eALUMINIUM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eRim Size\u003c\/th\u003e\n\u003ctd\u003e28\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFork\u003c\/th\u003e\n\u003ctd\u003eTrek\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eFork\u003c\/th\u003e\n\u003ctd\u003eAlloy, internal brake routing, fender mounts, rack mounts, ThruSkew 5mm QR Alloy, internal brake routing, fender mounts, rack mounts, ThruSkew 5mm QR\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eTires\u003c\/th\u003e\n\u003ctd\u003eBontrager H2 Comp, reflective strip, wire bead, 30 tpi, 700x40 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eHub Front\u003c\/th\u003e\n\u003ctd\u003eFormula DC-20, alloy, 6-bolt,r\u003e\n\u003cth\u003eBattery\u003c\/th\u003e\n\u003ctd\u003e250 Wh, integrated in down tube 250Wh, integrated in down tube\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSize Chart Rider Height\u003c\/th\u003e\n\u003ctd\u003eRider Height - 186.0 - 197.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003cth\u003eSize Chart Rider Inseam\u003c\/th\u003e\n\u003ctd\u003eInseam - 87.0 - 93.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/table\u003e"};window._RestockRocketConfig.variantsInventoryPolicy = {58205509452159 : "deny",58205509484927 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {58205509452159 : parseInt("17"),58205509484927 : parseInt("8"),}; window._RestockRocketConfig.variantsPreorderCount = {58205509452159 : parseInt(""),58205509484927 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {58205509452159 : null,58205509484927 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {58205509452159 : parseInt(<< liquid_cache_age: _stoqInitConfig.liquidCacheAge, inventory_policy: (_stoqInitConfig.variantsInventoryPolicy || {})[_stoqSelectedVariantId] || '', inventory_quantity: (_stoqInitConfig.variantsInventoryQuantity || {})[_stoqSelectedVariantId], }); } catch (e) { console.debug('STOQ - stoq_initialized publish failed:', e); } try { var _sqTrack = window._RestockRocketConfig; if (_sqTrack.preordersConfigured) { document.addEventListener('click', function (e) { try { var t = e.target; if (!t || !t.closest) return; var host = t.closest('.shopify-payment-button, shopify-payment-terms'); if (!host) return; var channel = host.matches && host.matches('shopify-payment-terms') ? 'shop_pay_installments' : 'buy_now'; var form = host.closest('form'); var vidEl = form && form.querySelector('[name="id"]'); var variantId = (vidEl && vidEl.value) || _sqTrack.selected_variant_id || ''; ck.product.id) || '', channel: channel, market_id: _sqTrack.marketId || '', country_code: _sqTrack.countryIsoCode || '', page_type: _sqTrack.pageType || '', cart_token: _sqTrack.cartToken || '', page_url: (window.location && window.location.href) || '', properties: { is_preorder_variant: (function () { var vid = Number(variantId); var has = function (a) { return Array.isArray(a) && a.indexOf(vid) !== -1; }; return has(_sqTrack.preorderVariantIds) || has(_sqTrack.cachedPreorderVariantIds && _sqTrack.cachedPreorderVariantIds.preorder_variant_ids); })(), in_enabled_plan: !!_sqPlan, is_instock_variant: (function () { var has = function (a) { return Array.isArray(a) && a.indexOf(_sqVidNum) !== -1; }; return has(_sqTrack.inStockVariantIds) || h } 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(
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.st
ngs; 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 noonsole.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 || []; } if (data && data.read_f
._RestockRocketConfig.sellingPlans.some(function(plan) { return plan && plan.enabled; }); const hasDisabledPlanIds = Array.isArray(window._RestockRocketConfig.disabledSellingPlanIds) && window._RestockRocketConfig.disabledSellingPlanIds.length > 0; const usePreorderBuild = settings.preorder_enabled || hasEnabledOffer || hasDisabledPlanIds; const collectionScriptUrl = usePreorderBuild ? window._RestockRocketConfig.scriptUrlCollection : window._RestockRocketConfig.scriptUrlCollectionBis; const productScriptUrl = usePreorderBuild ? window._RestockRocketConfig.scriptUrlProduct : window._RestockRocketConfig.scriptUrlProductBis; const pageType = window._RestockRocketConfig.pageType; const collectionPageTypes = ['collection', 'index', 'search', 'page']; if(collectionPageTypes.indexOf(pageType) !== -1 && (settings[`show_button_on_${pageType}`] || settings[`preorder_${pageType}_enabled`])) { createRestockRocketScript(collectio

Monaco (EUR€) Mozambique (GBP£) 5 Niger (XOFFr) 6 7
Montenegro (EUR€)
Morocco (MADد.م.)
4 Namibia (GBP£)
Netherlands (EUR€)
Nigeria (NGN₦)
North Macedonia (MKDден)
8 Norway (GBP£)
9
Poland (PLNzł)

Portugal (EUR€) 10 +
  • Réunion (EUR€) Estonia (EUR€)

    Quantity Romania (RONLei) Eswatini (GBP£) Decrease Quantity

    Rwanda (RWFFRw) Ethiopia (ETBBr)
    Increase Quantity
  • San Marino (EUR€) Faroe Islands (DKKkr.)

    São Tomé & Príncipe (STDDb) Finland (EUR€)

    Senegal (XOFFr) France (EUR€)
Specification