Header Image

< <
& !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } } 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
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
Tubeless 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 || ''; 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; } })(), }, }); } catch (err) { } }, true); } } catch (e) { } function applyTranslations(settings) { try { if (!settings || !settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translati
lizedLocale); } 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._RestockRocket
alue = 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.cachedSettings; const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; if (validCachedSettings) { console.debug('STOQ - using cached settings'); initializeScripts(validCachedSettings); } else { console.debug('STOQ - fetching fresh settings');
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 = ap
Tools & Maintenanceipts(settings); }); return; } loadScripts(settings); } function loadScripts(settings) { 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); }) const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans) && window._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 : wind stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings, preorderEnabled: settings.preorder_enabled } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } } html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}
Clothing and Protection ProjektRide Merchandise


Namibia (GBP£) Armenia (AMDդր.) France (EUR€) Svalbard & Jan Mayen (GBP£) Gambia (GMDD) Netherlands (EUR€) Ascension Island (SHP£) HelmetsFrench Southern Territories (EUR€) Niger (XOFFr) Austria (EUR€) Gabon (XOFFr) Clothing Nigeria (NGN₦) Belarus (GBP£) Gambia (GMDD) Tanzania (TZSSh) Ghana (GBP£) North Macedonia (MKDден) Belgium (EUR€) Georgia (GBP£) Norway (GBP£) Benin (XOFFr) EssentialsGermany (EUR€) See More Poland (PLNzł) Bosnia & Herzegovina (BAMКМ) Ghana (GBP£) Cleaners, Degreasers and Lubrication Tunisia (GBP£) Greenland (DKKkr.) Portugal (EUR€) Botswana (BWPP) Gibraltar (GBP£) Réunion (EUR€) British Indian Ocean Territory (USD$) MaintenanceGreece (EUR€) Romania (RONLei) Bulgaria (EUR€) Greenland (DKKkr.) Sell Your Bike Ukraine (UAH₴) Guinea (GNFFr) Rwanda (RWFFRw) Burkina Faso (XOFFr) Guadeloupe (EUR€) San Marino (EUR€) Burundi (BIFFr) FinanceGuernsey (GBP£) São Tomé & Príncipe (STDDb) Cameroon (XAFCFA) Guinea (GNFFr) Vatican City (EUR€) Iceland (ISKkr) Senegal (XOFFr) Cape Verde (CVE$) Guinea-Bissau (XOFFr) Serbia (RSDРСД) Central African Republic (XAFCFA) Hungary (HUFFt) Seychelles (GBP£) Chad (XAFCFA) Iceland (ISKkr) Zimbabwe (USD$) Italy (EUR€) Sierra Leone (SLLLe) Comoros (KMFFr) Ireland (EUR€) Slovakia (EUR€) Congo - Brazzaville (XAFCFA) Isle of Man (GBP£) Slovenia (EUR€) Congo - Kinshasa (CDFFr) Italy (EUR€) ProjektRide GBP£ . Kosovo (EUR€) Somalia (GBP£) Côte d’Ivoire (XOFFr) Jersey (GBP£) Shopify Åland Islands (EUR€) South Africa (GBP£) Croatia (EUR€) Kenya (KESKSh) Albania (ALLL) South Sudan (GBP£) Cyprus (EUR€) Kosovo (EUR€) Apple Pay Algeria (DZDد.ج) Liberia (GBP£) Spain (EUR€) Czechia (CZKKč) Latvia (EUR€) Andorra (EUR€) St. Helena (SHP£) Denmark (DKKkr.) Lesotho (GBP£) Google Pay Angola (GBP£) KlarnaSudan (GBP£) Djibouti (DJFFdj) Liberia (GBP£) Maestro Armenia (AMDդր.) Lithuania (EUR€) MastercardSvalbard & Jan Mayen (GBP£) Egypt (EGPج.م) Libya (GBP£) Ascension Island (SHP£) Sweden (SEKkr) Equatorial Guinea (XAFCFA) Liechtenstein (CHFCHF) Shop Pay Austria (EUR€) Switzerland (CHFCHF) Union Pay Eritrea (GBP£) Lithuania (EUR€) VisaBelarus (GBP£) Malawi (MWKMK) Tanzania (TZSSh) Estonia (EUR€) Luxembourg (EUR€) Belgium (EUR€) Togo (XOFFr) Madagascar (GBP£) Eswatini (GBP£) Benin (XOFFr) Tristan da Cunha (GBP£) Malawi (MWKMK) Ethiopia (ETBBr) Bosnia & Herzegovina (BAMКМ) Mauritania (GBP£) Tunisia (GBP£) Mali (XOFFr) Faroe Islands (DKKkr.)
R/D Sudan (GBP£) Gabon (XOFFr) Shimano Deore ProjektRide Merchandise
SHIFTERS Shimano Deore Sweden (SEKkr) Georgia (GBP£) Gloves
BRAKE CALIPERS Switzerland (CHFCHF) Germany (EUR€) Clarks M2 Hydraulic Socks
FRONT BRAKE ROTOR Clarks M2 160mm Togo (XOFFr) Gibraltar (GBP£)
REAR BRAKE ROTOR Tristan da Cunha (GBP£) Greece (EUR€) Clarks M2 160mm
BRAKE LEVERS Accessories Clarks M2 Hydraulic Türkiye (GBP£) Guadeloupe (EUR€)
HEADSET Uganda (UGXUSh) Guernsey (GBP£) Feimin FP-H863
HANDLEBAR Contact Us Kona Aluminum Riser United Kingdom (GBP£) Guinea-Bissau (XOFFr)
STEM United States (GBP£) Hungary (HUFFt) Kona Control
SEATPOST Kona Commuter 27.2mm Western Sahara (MADد.م.) Ireland (EUR€) Log in
SEAT CLAMP Zambia (GBP£) Isle of Man (GBP£) Create account Kona Clamp
GRIPS Search Kona Key Grip Jersey (GBP£)
SADDLE Kenya (KESKSh) Country Kona Commuter© 2026,
FRONT HUB Powered by Shimano 100x9mm. Latvia (EUR€)
REAR HUBAmerican Express Lesotho (GBP£) Shimano 135x10mm
SPOKESDiners Club Stainless Black 14gDiscover Libya (GBP£)
RIMS Liechtenstein (CHFCHF) Double Wall alloy
FRONT TIRE WTB Horizon Comp 650x47c PayPalLuxembourg (EUR€)
REAR TIRE Madagascar (GBP£) WTB Horizon Comp 650x47c
PAINT COLOR Gloss Titian or Gloss Black w/ Charcoal & Nimbus Decals Mali (XOFFr)
EXTRAS Malta (EUR€) Kickstand
Botswana (BWPP)

All specifications are subject to change without notice Mauritius (MUR₨)

Türkiye (GBP£) Malta (EUR€) Finland (EUR€)
British Indian Ocean Territory (USD$)

GEOMETRY Mayotte (EUR€) mmUganda (UGXUSh) Mauritania (GBP£) France (EUR€) inches Bulgaria (EUR€)

Moldova (MDLL)
Ukraine (UAH₴) Mauritius (MUR₨) French Southern Territories (EUR€)
Burkina Faso (XOFFr) Monaco (EUR€) United Kingdom (GBP£) Mayotte (EUR€) Gabon (XOFFr) Burundi (BIFFr) United States (GBP£) Moldova (MDLL) Gambia (GMDD) Cameroon (XAFCFA) Vatican City (EUR€) Monaco (EUR€) Georgia (GBP£) Cape Verde (CVE$) Western Sahara (MADد.م.) Montenegro (EUR€) Germany (EUR€) Central African Republic (XAFCFA) Zambia (GBP£) Morocco (MADد.م.) Ghana (GBP£) Chad (XAFCFA) Zimbabwe (USD$) Mozambique (GBP£) Gibraltar (GBP£) Comoros (KMFFr) Namibia (GBP£) Greece (EUR€) 3e\n\u003cdiv class=\"table_wrapper\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eFRAME MATERIAL\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona 6061 Aluminum Butted\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSIZES\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eS, M, L, XL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eREAR SHOCK\u003c\/td\u003e\n\u003ctd class=\"data\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eFORK\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eSuntour NEX Coil Spring 80mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eCRANKARMS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eCHAINRINGS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e22\/32\/42t\u French Southern Territories (EUR€) 003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eB\/B\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eFSA 68mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003ePEDALS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona JS2\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eCHAIN\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKMC Z8.3\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eCASSETTE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Altus 11-34t 8spd\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eCHAINGUIDE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eF\/D\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Tourney\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eR\trail\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eFRONT HUB\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eFormula 100x9mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eREAR HUB\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eFormula 135x10mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSPOKES\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eStainless Black 14g\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eRIMS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eDouble Wall alloy\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eFRONT TIRE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eWTB Riddler 700x45c\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eREAR TIRE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eWTB Riddler 700x45c\u003c\/td\u003e\n\u003c\/tr\u0 South Africa (GBP£) Slovenia (EUR€) Liechtenstein (CHFCHF) 03e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003ePAINT COLOR\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eSatin Black w\/ Metallic Mint \u0026amp; Metallic Silver Decals\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eEXTRAS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003cp class=\"specs_disclaimer\"\u003eAll specifications are subject to change without notice\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bike_geometry\"\u003e\n\u003ch2\u003eGEOMETRY\u003cspan class=\"s-geo\"\u003e\u003cspan class=\"s-current\" id=\"s-geo_mm\"\u003emm\u003c\/span\u003e\u003cspan id=\"s-geo_inch\"\u003einches\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cdiv id=\"geo_mm\"\u003e\n\u003cdiv class=\"table_wrapper\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e \u003c\/td\u003e\n\u003ctd class=\"label\"\u003eSIZE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eM\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eL\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eXL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e1\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eST LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e381\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e432\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e483\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e533\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e2\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eTT LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e572\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e597\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e623\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e647\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\" \u003e3\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eREACH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e398\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e419\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e439\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e458\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e4\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eSTACK\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e590\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e603\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e622\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e641\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e5\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eSTANDOVER\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e691\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e734\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e773\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e812\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e6\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eHT ANGLE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e7\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eHT LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e110\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e130\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e150\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e170\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e8\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eST ANGLE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e73.5\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e73.5\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e73.5\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e73.5\u003c\/td\u00 Gabon (XOFFr) 3e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e9\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eCS LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e440\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e440\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e440\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e440\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e10\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eBB DROP\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e58\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e53\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e53\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e53\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e11\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eBB HEIGHT\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e297\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e302\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e302\u003c\/td\uVEL \/ DROP BAR \/ URBAN\u003c\/h4\u003e\n\u003cdiv class=\"table_wrapper\"\u003e\n\u003ctable class=\"sizing_chart\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eHEIGHT\/INCHES\u003c\/th\u003e\n\u003cth\u003eHEIGHT\/METRIC\u003c\/th\u003e\n\u003cth\u003eINSEAM\/INCHES\u003c\/th\u003e\n\u003cth\u003eINSEAM\/METRIC\u003c\/th\u003e\n\u003cth\u003eROVE\u003c\/th\u003e\n\u003cth\u003eLIBRE\u003c\/th\u003e\n\u003cth\u003eSUTRA\u003c\/th\u003e\n\u003cth\u003eDEWS\u003c\/th\u003e\n\u003cth\u003eCOCO\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e4'10\"-5'1\"\u003c\/td\u003e\n\u003ctd\u003e147-155cm\u003c\/td\u003e\n\u003ctd\u003e24”-27”\u003c\/td\u003e\n\u003ctd\u003e61-69cm\u003c\/td\u003e\n\u003ctd\u003e48cm\u003c\/td\u003e\n\u003ctd\u003e50cm\u003c\/td\u003e\n\u003ctd\u003e48cm\u003c\/td\u003e\n\u003ctd\u003eN\/A\u003c\/td\u003e\n\u003ctd\u003eXS\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e5'0\"-5'3\"\u003c\/td\u003e\n\u South Sudan (GBP£) Somalia (GBP£) Lithuania (EUR€) 003ctd\u003e152-160cm\u003c\/td\u003e\n\u003ctd\u003e26\"-29\"\u003c\/td\u003e\n\u003ctd\u003e66-74cm\u003c\/td\u003e\n\u003ctd\u003e48-50cm\u003c\/td\u003e\n\u003ctd\u003e50cm\u003c\/td\u003e\n\u003ctd\u003e48-50cm\u003c\/td\u003e\n\u003ctd\u003eSmall\u003c\/td\u003e\n\u003ctd\u003eSmall\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e5'2\"-5'7\"\u003c\/td\u003e\n\u003ctd\u003e157-170cm\u003c\/td\u003e\n\u003ctd\u003e27\"-30\"\u003c\/td\u003e\n\u003ctd\u003e69-76cm\u003c\/td\u003e\n\u003ctd\u003e48-52cm\u003c\/td\u003e\n\u003ctd\u003e50-52cm\u003c\/td\u003e\n\u003ctd\u003e48-52cm\u003c\/td\u003e\n\u003ctd\u003eSmall, Medium\u003c\/td\u003e\n\u003ctd\u003eSmall, Medium\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e5'6\"-5'10\"\u003c\/td\u003e\n\u003ctd\u003e168-178cm\u003c\/td\u003e\n\u003ctd\u003e29\"-31\"\u003c\/td\u003e\n\u003ctd\u003e74-79cm\u003c\/td\u003e\n\u003ctd\u003e52-54cm\u003c\/td\u003e\n\u003ctd\u003e52-54cm\u003c\/td\u003e\n\u003ctd\u003e52-54cm\u003c\/td\u0003ctd\u003e61-69cm\u003c\/td\u003e\n\u003ctd\u003eXS\u003c\/td\u003e\n\u003ctd\u003eXS\u003c\/td\u003e\n\u003ctd\u003eSmall\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e5'0\"-5'3\"\u003c\/td\u003e\n\u003ctd\u003e152-160cm\u003c\/td\u003e\n\u003ctd\u003e26\"-29\"\u003c\/td\u003e\n\u003ctd\u003e66-74cm\u003c\/td\u003e\n\u003ctd\u003eSmall\u003c\/td\u003e\n\u003ctd\u003eSmall\u003c\/td\u003e\n\u003ctd\u003eSmall\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e5'2\"-5'7\"\u003c\/td\u003e\n\u003ctd\u003e157-170cm\u003c\/td\u003e\n\u003ctd\u003e27\"-30\"\u003c\/td\u003e\n\u003ctd\u003e69-76cm\u003c\/td\u003e\n\u003ctd\u003eSmall, Medium\u003c\/td\u003e\n\u003ctd\u003eSmall, Medium\u003c\/td\u003e\n\u003ctd\u003eSmall, Medium\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e5'6\"-5'10\"\u003c\/td\u003e\n\u003ctd\u003e168-178cm\u003c\/td\u003e\n\u003ctd\u003e29\"-31\"\u003c\/td\u003e\n\u003ctd\u003e74-79cm\u003c\/td\u003e\n\u003ctd\u003eMedium\u003c\/td\u003e\n\u00 Gambia (GMDD) 3ctd\u003eMedium\u003c\/td\u003e\n\u003ctd\u003eMedium\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e5'9\"-6'0\"\u003c\/td\u003e\n\u003ctd\u003e175-183cm\u003c\/td\u003e\n\u003ctd\u003e30\"-33\"\u003c\/td\u003e\n\u003ctd\u003e76-84cm\u003c\/td\u003e\n\u003ctd\u003eMedium, Large\u003c\/td\u003e\n\u003ctd\u003eMedium, Large\u003c\/td\u003e\n\u003ctd\u003eMedium, Large\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e5'11\"-6'2\"\u003c\/td\u003e\n\u003ctd\u003e180-188cm\u003c\/td\u003e\n\u003ctd\u003e32\"-35\"\u003c\/td\u003e\n\u003ctd\u003e81-89cm\u003c\/td\u003e\n\u003ctd\u003eLarge, XL\u003c\/td\u003e\n\u003ctd\u003eLarge, XL\u003c\/td\u003e\n\u003ctd\u003eLarge, XL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e6'1\"-6'5\"\u003c\/td\u003e\n\u003ctd\u003e185-196cm\u003c\/td\u003e\n\u003ctd\u003e33\"-36\"\u003c\/td\u003e\n\u003ctd\u003e84-91cm\u003c\/td\u003e\n\u003ctd\u003eLarge, XL\u003c\/td\u003e\n\u003ctd\u003eLarge, XL\u003c\/td\u003e\n\u003ctd\u003eLar43916695077090 : null,43916695109858 : null,}; window._RestockRocketConfig.variantsShippingText = {43916695011554 : "",43916695044322 : "",43916695077090 : "",43916695109858 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {43916695011554 : null,43916695044322 : null,43916695077090 : null,43916695109858 : null,}; window._RestockRocketConfig.selected_variant_id = 43916695011554; window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available; try { var _sqCfg = window._RestockRocketConfig; var _sqPlanEnabled = Array.isArray(_sqCfg.sellingPlans) && _sqCfg.sellingPlans.some(function (p) { return p && p.enabled; }); var _sqPreCount = ((_sqCfg.cachedPreorderVariantIds && _sqCfg.cachedPreorderVariantIds.preorder_variant_ids) || []).length; _sqCfg.preordersConfigured = !!(_sqPlanEnabled && _sqPreCount); } ca Spain (EUR€) South Africa (GBP£) Luxembourg (EUR€) tch (e) { } try { var _sqc = window._RestockRocketConfig; var _sqOn = !!(_sqc.cachedSettings && _sqc.cachedSettings.block_accelerated_checkout); var _sqPre = (_sqc.cachedPreorderVariantIds && _sqc.cachedPreorderVariantIds.preorder_variant_ids) || []; var _sqArm = false; if (_sqOn && _sqc.preordersConfigured) { if (_sqc.pageType === 'product' && _sqc.product && _sqc.product.variants) { _sqArm = _sqc.product.variants.some(function (v) { return _sqPre.indexOf(Number(v.id)) !== -1; }); } else { _sqArm = (_sqc.integrations || []).some(function (i) { return i && i.type === 'featured_product' && i.enabled && Array.isArray(i.page_types) && i.page_types.indexOf(_sqc.pageType) !== -1; }); } } if (_sqArm && document.documentElement) { _sqc.acceleratedGateArmed = true; document.documentElement.classList.add('stoq-buy-now-pending'); setTimeout(function () { document.documentElement.classList.removecheAge); if (liquidCacheAge Georgia (GBP£) <= 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 & St. Helena (SHP£) South Sudan (GBP£) Madagascar (GBP£) & !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } } 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 nitConfig.product.variants)) ? _stoqInitConfig.product.variants.map(function(v) { return v.id }) : []; const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id; var _stoqPageSeq = 0; try { _stoqPageSeq = (parseInt(window.sessionStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1; window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq)); } catch (e) { } Shopify?.analytics?.publish?.('stoq_initialized', { cart_token: _stoqInitConfig.cartToken || '', page_url: window.location.href, page_type: _stoqInitConfig.pageType || '', shop_domain: _stoqInitConfig.shop || '', market_id: _stoqInitConfig.marketId || '', country_code: _stoqInitConfig.countryIsoCode || '', detected_variant_ids: _stoqDetectedVariantIds, selected_variant_id: _stoqSelectedVariantId || '', page_load_seq: _stoqPageSeq, liquid_rendered_at: _stoqInitConfig.liquidRenderedAt || 0, app_version: _stoqInitConfig.appVersion || '', Germany (EUR€) 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 || ''; var _sqVidNum = Number(variantId); var _sqPlan = null; var _sqPlans = Array.isArray(_sqTrack.sellingPlans) ? _sqTrack.sellingPlans : []; var _sqMktId = Number(_sqTrack.marketId); var _sqForVariant = function (pl) { return pl && pl.enabled && Array.isArray(pl.variant_ids) && pl.variant_ids.indexOf(_sqVidNum) !== -1; }; _sqPlans.forEach(function (pl) { if (!_sqPlan && _sqForVariant(pl) && pl.markets_enabled && Array.isArray(pl.shopify_market_ids) && pl.shopify_market_ids.indexOf(_sqMktId) !== -1) { _sqPlan = pl; } }); if (!_sqPlan) { _sqPlans.forEach(function (pl) { if (!_sqPlan && _sqForVariant(pl) && !pl.markets_enabled) { _sqPlan = pl; } }); } Shopify?.analytics?.publish?.('stoq_accelerated_checkout_clicked', { variant_id: variantId, product_id: (_sqTrack.product && _sqTra 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) || has(_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; } })(), }, }); Sudan (GBP£) Spain (EUR€) Malawi (MWKMK) } 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).forEachtatus); } 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.cachedSett Ghana (GBP£) 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 nConfig('integrations', function(data) { if (Array.isArray(data)) { window._RestockRocketConfig.integrations = data; } }) ]), new Promise(function(resolve) { setTimeout(resolve, 1000); }) ]).then(function() { loadScripts(settings); }); return; } loadScripts(settings); } function loadScripts(settings) { 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); }) const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans) && window._RestockRocketConfig.sellingPlans.some(function(plan) { return plan && plan.enabled; }); const hasDisabledPlanIds = Array.isArray(window._RestockRocketConfig.disabledSellingPlanIds) && w Svalbard & Jan Mayen (GBP£) St. Helena (SHP£) Mali (XOFFr) indow._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(collectionScriptUrl); } else if(pageType === 'product') { createRestockRocketScript(productScriptUrl); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketC Sweden (SEKkr) Sudan (GBP£) Malta (EUR€) Greece (EUR€) Switzerland (CHFCHF) Svalbard & Jan Mayen (GBP£) Mauritania (GBP£) Greenland (DKKkr.) Tanzania (TZSSh) Sweden (SEKkr) Mauritius (MUR₨) Guadeloupe (EUR€) Togo (XOFFr) Switzerland (CHFCHF) Mayotte (EUR€) Guernsey (GBP£) Tristan da Cunha (GBP£) Tanzania (TZSSh) Moldova (MDLL) Guinea (GNFFr) Tunisia (GBP£) Togo (XOFFr) Monaco (EUR€) Guinea-Bissau (XOFFr) Türkiye (GBP£) Tristan da Cunha (GBP£) Montenegro (EUR€) Hungary (HUFFt) Uganda (UGXUSh) Tunisia (GBP£) Morocco (MADد.م.) Iceland (ISKkr) Ukraine (UAH₴) Türkiye (GBP£) Mozambique (GBP£) Ireland (EUR€) United Kingdom (GBP£) Uganda (UGXUSh) Namibia (GBP£) Isle of Man (GBP£) United States (GBP£) Ukraine (UAH₴) Netherlands (EUR€) Italy (EUR€) Vatican City (EUR€) United Kingdom (GBP£) Niger (XOFFr) Jersey (GBP£) Western Sahara (MADد.م.) United States (GBP£) Nigeria (NGN₦) Kenya (KESKSh) Zambia (GBP£) Vatican City (EUR€) North Macedonia (MKDден) Kosovo (EUR€) Zimbabwe (USD$) / Western Sahara (MADد.م.) Norway (GBP£) Latvia (EUR€) Zambia (GBP£) Poland (PLNzł) Lesotho (GBP£) Zimbabwe (USD$) Liberia (GBP£) Shop All Libya (GBP£) Liechtenstein (CHFCHF) Shop All Lithuania (EUR€) Luxembourg (EUR€) Madagascar (GBP£) Malawi (MWKMK) Mali (XOFFr) Malta (EUR€) Mauritania (GBP£) BUY
  SIZE Montenegro (EUR€) S M Morocco (MADد.م.) L XL Mozambique (GBP£)
1 Namibia (GBP£) ST LENGTH Close 420 Netherlands (EUR€) 470 520 Niger (XOFFr) 580
/D\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Tourney\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSHIFTERS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Altus\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eBRAKE CALIPERS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eClarks M2 Hydraulic\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eFRONT BRAKE ROTOR\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eClarks M2 160mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eREAR BRAKE ROTOR\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eClarks M2 160mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eBRAKE LEVERS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eClarks M2 Hydraulic\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eHEADSET\u003c\/td\u00370.0 e\n\u003ctd class=\"data\"\u003eFeimin FP-H863\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eHANDLEBAR\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Aluminum Riser\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eSTEM\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Control\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSEATPOST\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Thumb w\/Offset 31.6mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eSEAT CLAMP\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Clamp\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eGRIPS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Key Grip Slip on\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eSADDLE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Cross
003e\n\u003ctd class=\"data\"\u003e302\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e12\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eWHEELBASE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1072\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1100\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1127\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1153\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e13\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eFRONT CENTER\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e638\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e666\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e692\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e718\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e14\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eFORK LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e467\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e467\u003c\/td\u0037 e\n\u003ctd class=\"data\"\u003e467\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e467\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e15\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eFORK OFFSET\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e42\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e42\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e42\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e42\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"geo_diagram\"\u003e\u003cimg alt=\"KONA Geometry\" src=\"https:\/\/images.konaworld.com\/36e\/geo_diagram.png\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sectionwrapper bike_sizing\"\u003e\n\u003cdiv data-scroll-index=\"2\" class=\"sectiontarget\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"section\"\u003e\n\u003ch2\u003eSIZING + FIT\u003c\/h2\u003e\n\u003ch4\u003eGRA3e\n\u003ctd\u003eMedium\u003c\/td\u003e\n\u003ctd\u003eMedium\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e5'9\"-6'0\"\u003c\/td\u003e\n\u003ctd\u003e175-183cm\u003c\/td\u003e\n\u003ctd\u003e30\"-33\"\u003c\/td\u003e\n\u003ctd\u003e76-84cm\u003c\/td\u003e\n\u003ctd\u003e52-56cm\u003c\/td\u003e\n\u003ctd\u003e54-56cm\u003c\/td\u003e\n\u003ctd\u003e54-56cm\u003c\/td\u003e\n\u003ctd\u003eMedium, Large\u003c\/td\u003e\n\u003ctd\u003eMedium, Large\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e5'11\"-6'2\"\u003c\/td\u003e\n\u003ctd\u003e180-188cm\u003c\/td\u003e\n\u003ctd\u003e32\"-35\"\u003c\/td\u003e\n\u003ctd\u003e81-89cm\u003c\/td\u003e\n\u003ctd\u003e54-58cm\u003c\/td\u003e\n\u003ctd\u003e54-58cm\u003c\/td\u003e\n\u003ctd\u003e54-58cm\u003c\/td\u003e\n\u003ctd\u003eLarge, XL\u003c\/td\u003e\n\u003ctd\u003eLarge\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e6'1\"-6'5\"\u003c\/td\u003e\n\u003ctd\u003e185-196cm\u003c\/td\u003e\n\u003ctd\u003e33\"-36\"\u00HT LENGTH 3c\/td\u003e\n\u003ctd\u003e84-91cm\u003c\/td\u003e\n\u003ctd\u003e56-58cm\u003c\/td\u003e\n\u003ctd\u003e58cm\u003c\/td\u003e\n\u003ctd\u003e56-58cm\u003c\/td\u003e\n\u003ctd\u003eXL\u003c\/td\u003e\n\u003ctd\u003eN\/A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003ch4\u003eMTB \/ ALL MOUNTAIN \/ SPLICE\u003c\/h4\u003e\n\u003cdiv class=\"table_wrapper\"\u003e\n\u003ctable class=\"sizing_chart\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eHEIGHT\/INCHES\u003c\/th\u003e\n\u003cth\u003eHEIGHT\/METRIC\u003c\/th\u003e\n\u003cth\u003eINSEAM\/INCHES\u003c\/th\u003e\n\u003cth\u003eINSEAM\/METRIC\u003c\/th\u003e\n\u003cth\u003eMTB\/XC TRAIL\/FAT\u003c\/th\u003e\n\u003cth\u003eALL MOUNTAIN\/ENDURO\u003c\/th\u003e\n\u003cth\u003eSPLICE\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e4'10\"-5'1\"\u003c\/td\u003e\n\u003ctd\u003e147-155cm\u003c\/td\u003e\n\u003ctd\u003e24”-27”\u003c\/td\u003e\n\u0ge, XL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sizing_help\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"sizing_help\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"sizing_help\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThanks for considering ProjektRide for your next purchase. All bikes are fully assembled and test rode before leaving our bike shop in Edinburgh.  Please allow 5-7 days for bicycle delivery although we aim to post bikes out the same day.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eIf any purchases are to be made using any cycle to work schemes, please either pop into the shop or get in touch via email\/phone to get the ball rolling. If you are not 100% sure with bike sizing, please feel free to contact us to double check.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eAll bike sales include a free running in service after 6-10 weeks.\u003c\/p\u003e\n\u003c\/d135 iv\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"};window._RestockRocketConfig.variantsInventoryPolicy = {43916695011554 : "deny",43916695044322 : "deny",43916695077090 : "deny",43916695109858 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {43916695011554 : parseInt("0"),43916695044322 : parseInt("0"),43916695077090 : parseInt("0"),43916695109858 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {43916695011554 : parseInt(""),43916695044322 : parseInt(""),43916695077090 : parseInt(""),43916695109858 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {43916695011554 : null,43916695044322 : null,43916695077090 : null,43916695109858 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {43916695011554 : parseInt(""),43916695044322 : parseInt(""),43916695077090 : parseInt(""),43916695109858 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {43916695011554 : null,43916695044322 : null,('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 = (window._RestockRocketConf175 ig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io' try { const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/); window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || ''; } catch (e) { window._RestockRocketConfig.appVersion = ''; } const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; const LIQUID_CACHE_MAX_AGE = 15 * 60; const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt; if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); window._RestockRocketConfig.isLiquidCacheFresh = true; window._RestockRocketConfig.liquidCacheAge = null; } else { const now = Math.floor(Date.now() / 1000); const liquidCacheAge = now - liquidRenderedAt; window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCa 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 215 <<255 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
(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 8 - 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.sot 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) { ST ANGLE 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 || []; } }), fetchEmbed73.0 72.0
9 CS LENGTH 450 450 450 450
10 BB DROP 70 70 70 70
11 BB HEIGHT 272 272 272 272
12 WHEELBASE 1077 1116 Home 1146
BUY SELL RIDE CONFIDENT
SELL
#productTemplate--template--26482384994687__main { --PT: 60px; --PB: 30px; }Mauritius (MUR₨)
RIDE CONFIDENT
KONA Geometry
Mayotte (EUR€)

Moldova (MDLL) #productTemplate--template--26482384994687__main { --PT: 60px; --PB: 30px; }
Monaco (EUR€)
Brooks Proofide
Sudan (GBP£) Brooks Proofide
Namibia (GBP£)

Svalbard & Jan Mayen (GBP£)
Netherlands (EUR€) Quantity
  • 1Niger (XOFFr)

    Switzerland (CHFCHF) Nigeria (NGN₦) 1

    Tanzania (TZSSh)

    North Macedonia (MKDден)
  • 2 Norway (GBP£)

    Tristan da Cunha (GBP£) 3

    Poland (PLNzł)

    Tunisia (GBP£)
    4 Portugal (EUR€)
Türkiye (GBP£)
Réunion (EUR€)