This site has limited support for your browser. We recommend switching to Edge, Chrome, Safari, or Firefox.Contact Us
Loading morediv class="featured-image__bg bg-pos-center-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/2571D9FF-E9AE-4004-9A55-C7FD4DD999D6_2048x.jpg?v=1640941114');">.
p class="result__title">{{ it.item.text }}SELL
Search text field
All Products km\/h in Europe) and a 250 Wh battery for a range of up to 55 kilometres per charge. Plus, stiff 650b wheels and wide 50c tyres for capability and comfort on varied terrain, a reliable 9-speed Shimano drivetrain, hydraulic disc brakes, integrated lights powered by the battery and a kickstand.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe final word\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eAll the capability and confidence of Dual Sport, with an electric boost that helps you do more! The Dual Sport+ lets you haul groceries uphill with ease and adventure further than you thought possible.\u003c\/p\u003e\n\u003cp\u003eHow tall are you?\u003cbr\u003eTo measure your height, stand up straight, barefoot, with your back, heels, shoulders and head all touching a wall. While looking straight ahead, place a book or straight edge on your head and slowly push it against the wall. Your straight edge should be parallel with the floor. Mark the spot where the bottom of the book is touching the wal
/-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=\"size-table\"\u003e\n\u003cthead data-v-3ac87600=\"\"\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"col\" class=\"font-bold\" qaid=\"size-table-column-header-Size\"\u003eSize\u003c\/th\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"col\" class=\"font-bold\" qaid=\"size-table-column-header-Rider Height\"\u003eRider Height\u003c\/th\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"col\" class=\"font-bold\" qaid=\"size-table-column-header-Inseam\"\u003eInseam\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody data-v-3ac87600=\"\"\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-S\"\u003eS\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003Muc-Off Pressure Washer Bike Bundle Kite\n\u003cp class=\"m-0\"\u003e5'9\" - 6'1\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e82 - 88 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e32\" - 35\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-XL\"\u003eXL\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e186 - 197 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e6'1\" - 6'6\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e87 - 93 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e34\" - 37\"\u003c\/p\u003e\n\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 data-v-05762449=\"\" class=\"rider-sizing__dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection data-v-05762449=\"\" id=\"GeometryCompon
Muc-Off Pressure Washer Bike Bundle Kiton2":"Grey","option3":null,"sku":"5268406","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek Dual Sport+ 2 - Large \/ Grey","public_title":"Large \/ Grey","options":["Large","Grey"],"price":202500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46044465660130,"title":"Extra Large \/ Blue","option1":"Extra Large","option2":"Blue","option3":null,"sku":"5268411","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek Dual Sport+ 2 - Extra Large \/ Blue","public_title":"Extra Large \/ Blue","options":["Extra Large","Blue"],"price":202500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46044465692898,"title":"Extra Large \/ Grey","option1":"Extra Large","option2":"Grey","option3":null,"sku":"5268407","requires_shipping":true,"taxable":true,"img src="//projektride.co.uk/cdn/shop/files/BT_MY24_Hook_EXT_Rival_AXS_matt_charcoal_black_web_01_800x800_crop_center_2x_3a99258d-f708-4be0-b864-b65c46f780b2_98x.webp?v=1720086319" alt="" class="product-single__thumbnail-img"> "media":[{"alt":null,"id":34798525251810,"position":1,"preview_image":{"aspect_ratio":1.333,"height":1080,"width":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DualSportPlus2_23_35854_A_Primary.webp?v=1728640617"},"aspect_ratio":1.333,"height":1080,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DualSportPlus2_23_35854_A_Primary.webp?v=1728640617","width":1440},{"alt":null,"id":34798522990818,"position":2,"preview_image":{"aspect_ratio":1.333,"height":1080,"width":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DualSportPlus2_23_35854_B_Primary.webp?v=1728640559"},"aspect_ratio":1.333,"height":1080,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DualSportPlus2_23_35854_B_Primary.webp?v=1728640559","width":1440},{"alt":null,"id":34798524399842,"position":3,"preview_image":{"aspect_ratio":1.333,"height":1080,"width":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DualSportPlus2_23_35854_B_Alt2.webp?v=1728640572"},"aspect_ratio":1.333,"height":1080,"medi
£149.99/shop\/files\/DualSportPlus2_23_35854_B_Alt8.webp?v=1728640604"},"aspect_ratio":1.333,"height":1080,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DualSportPlus2_23_35854_B_Alt8.webp?v=1728640604","width":1440}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eThe Dual Sport+ 2 is a lightweight and capable hybrid electric bike that’s designed for adventure on the road and light trails. It has an intuitive and natural feeling pedal-assist system that makes exploring your surroundings more fun and cruising up hills a breeze. Plus, stiff wheels and wide tyres give you confidence on varied terrain.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIt's right for you if...\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eYou want a lightweight, simple-to-use hybrid e-bike that brings a capable boost to daily errands and rides as well as weekend adventures.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe tech you get£169.99 ahead, place a book or straight edge on your head and slowly push it against the wall. Your straight edge should be parallel with the floor. Mark the spot where the bottom of the book is touching the wall. The distance from the marked spot to the floor is your height.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhat is your inside leg?\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eHow to measure: Stand barefoot 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\u003cp\u003e \u003c\/p\u003e\n\u003csection data-v-05762449=\"\" id=\"SizingComponent\" data-magellan-target=\"SizingComponent\" class=\"sizing-and-fit-a
-v-3ac87600=\"\"\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-S\"\u003eS\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e155 - 165 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e5'1\" - 5'5\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e72 - 78 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e28\" - 31\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-M\"\u003eM\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e165 - 175 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e5'5\" - 5'9\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e77 - 83 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e30\" - 33\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-3ac87600iv\u003e\n\u003cdiv data-v-05762449=\"\" class=\"rider-sizing__dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection data-v-05762449=\"\" id=\"GeometryComponent\" data-magellan-target=\"GeometryComponent\" class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\"\u003e\u003c\/section\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {46044465594594 : "deny",46044465627362 : "deny",46044465660130 : "deny",46044465692898 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {46044465594594 : parseInt("0"),46044465627362 : parseInt("1"),46044465660130 : parseInt("51"),46044465692898 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {46044465594594 : parseInt(""),46044465627362 : parseInt(""),46044465660130 : parseInt(""),46044465692898 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {46044465594594 : null,46044465627362 : null,46044465660130 : null,46
ns/019b9fa3-dc53-7a1c-9078-4931c5088fc8/restock-rocket-shopify-427/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b9fa3-dc53-7a1c-9078-4931c5088fc8/restock-rocket-shopify-427/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 periimg src="//projektride.co.uk/cdn/shop/files/BT_MY24_Hook_EXT_Rival_AXS_matt_charcoal_black_web_02_800x800_crop_center_2x_bfb19f28-d241-44f4-a2dc-312f0418bc95_98x.webp?v=1720086320" alt="" class="product-single__thumbnail-img"> ngs.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
SKU: 20211 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.
lback 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 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._RestockRocket