Headsets

Tools & Maintenance

Components
Brakes
Close search bar

Clothing
WheelsSocksSearch text field
tock-rocket-shopify-410/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = 'https://app.restockrocket.io' const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds 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; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield getTime())) { console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const age = Date.now() - updatedAt.getTime(); if (age img src="//projektride.co.uk/cdn/shop/files/rb21060_detail_04_2048x2048.jpg?v=1720257147" alt="Ridgeback Speed Open Frame" class="mfp-zoom-in-cur" id="34199529783522"> SETTINGS_CACHE_DURATION) { console.debug('STOQ - settings changed recently, skipping cache'); return null; } return settings; } catch (error) { console.debug('STOQ - Error checking settings cache:', error); return null; } } function createRestockRocketContainer() { const restockRocketContainer = document.createElement('div'); restockRocketContainer.id = 'restock-rocket'; document.body.appendChild(restockRocketContainer); } function createRestockRocketScript(scriptUrl) { const restockRocketScriptElement = document.createElement('script'); restockRocketScriptElement.setAttribute('defer', 'defer'); restockRocketScriptElement.src = scriptUrl; document.body.appendChild(restockRocketScriptElement); } createRestockRocketContainer() console.debug('STOQ - extension activated') function applyTranslations(settings) { try { // Skip translation logic entirely if multi-language is not enabled if (!settings ||
]; 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; } } // First try to get settings from metafields with expiry check const cachedSettings = window._RestockRocketConfig.cachedSettings; const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; if (validCachedSettings) { console.debug('STOQ - using cached settings'); initializeScripts(validCachedSettings); } else { console.debug('STOQ - fetching fresh settings'); const headers = { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.them onsole.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 initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); }) if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else i geType}`); } // Check and update cart selling plans after scripts are loaded if (settings.preorder_enabled) { updateCartSellingPlans(); } // Dispatch custom event when app is loaded const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } } function updateCartSellingPlans() { // Wait for the API to be available with retries const maxRetries = 10; const retryDelay = 500; function attemptCartCheck(attempt = 1) { if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated succe <
img src="//projektride.co.uk/cdn/shop/files/rb21060_detail_05_2048x2048.jpg?v=1720257147" alt="Ridgeback Speed Open Frame" class="mfp-zoom-in-cur" id="34199529816290">
Select variant dropdown Black / Teal / Small - Sold Out Black / Teal / Large - Sold Out
Black / Teal / Extra Large - Sold Out
Carbon Black / Small - Sold Out
Carbon Black / Large - Sold Out
Carbon Black / Extra Large - Sold Out Black / Oil Slick / Small - Sold Out
Black / Oil Slick / Medium - Sold OutHeader Image Black / Oil Slick / Large - Sold Out
    <
  • <
Decrease quantity

   <

Submit
"","requires_selling_plan":false,"selling_plan_allocations":[]}], templateName: 'product', dataKey: 'top-strip-promotion-badge', storefrontCurrency: 'GBP', storefrontCountry: 'GB', storefrontLanguage: 'en', shopLocale: 'en', shopDomain: 'projektride.co.uk', variantPrice: '845000', cartPrice: '0', selector: 'shopify-osm-Ac2tTRTlRaTI0R3BZb__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); } else { window.appBlockPlacements.push({ productVariants: [{"id":46046725243106,"title":"Black \/ Purple \/ Small","option1":"Black \/ Purple","option2":"Small","option3":null,"sku":"5296080","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Purple \/ Small","public_title":"Black \/ Purple \/ Small","options":["Black \/ Purple","Small"],"price":845000,"weight":0,"compare_at_price":null,"inventory_man

  • Centre lugs are large and widely spaced for braking and acceleration grip, and ramped to lower rolling resistance.  Inseam
  • Transition lugs are spaced out to shed mud; siping conforms to the road surface for increased traction in corners.
  • Size
Medium
>
I'm looking to find out more information about a product, where can I find this?

Please get in touch with a member of the team either by phone (

01313745324
) or email (
[email protected]
  • ) where on of the team will be more than happy to help.
img src="//projektride.co.uk/cdn/shop/files/logo_he
strong\u003eIt's right for you if...\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eYou leave it all on the course and want a tri bike that does the same. You want blazing-fast aero speed, a Shimano Ultegra wireless electronic drivetrain for precise shifts and loads of integrated accessories that make hydrating and refuelling easy.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe tech you get\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eUltra-lightweight 800 Series OCLV Carbon frame, drag-reducing Kammtail Virtual Foil (KVF) tube shaping, Speed Concept full-foil carbon fork, road-smoothing IsoSpeed, integrated fuel storage, hydration and flat kit storage, Shimano Ultegra Di2 wireless electronic 12-speed drivetrain, fully integrated handlebar and stem, Bontrager Hilo Comp triathlon-specific saddle for an aggressive aero position, disc brakes for reliable stopping power and Bontrager Aeolus Pro 51 OCLV Carbon wheels.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe final wo
ot with your back straight and against a wall. Tuck a ruler or something that extends to the floor between your legs. Using both hands, and keeping it level, pull the ruler up into your crotch as if you were sitting on the saddle. Measure the distance from the top edge of the ruler to the ground to find your inside leg measurement. Your inside leg is very important to your final bike size so please measure carefully.\u003c\/p\u003e\n\u003csection data-v-05762449=\"\" id=\"SizingComponent\" data-magellan-target=\"SizingComponent\" class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\"\u003e\n\u003cdiv data-v-05762449=\"\" class=\"rider-sizing mb-2\"\u003e\n\u003cdiv data-v-4052fbf6=\"\" data-v-05762449=\"\"\u003e\n\u003cdiv data-v-4052fbf6=\"\" class=\"size-table\"\u003e\n\u003ctable data-v-3ac87600=\"\" data-v-4052fbf6=\"\" class=\"trek-table trek-table--hstripe trek-table--borderless trek-table--centered trek-table--small trek-table--sticky-headers trek-table--row-headers\" qaid=\"si bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#ebebeb;height:25px;line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{posRims :