• <
  • <
    <
  • Electric Bikes Brake Rotors
    Brake Pads
  • Header Image

    div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/IMG_5210_3b79585f-a51c-413e-90cb-25a2e0a56743_600x.jpg?v=1762355269)">Edinburgh

    > EH9 1QN

    £400.00[email protected]

    Pinnacle Dolomite Road Bike - Medium
    a class="product__media product__media--featured" href="/collections/road-gravel-touring-bikes/products/pinnacle-dolomite-road-bike-med
    window._RestockRocketConfig = window._RestockRocketConfig || {} // Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us') // This matches the backend's Mobility.normalize_locale behavior // Returns empty string if locale is empty or invalid (matches original behavior) function normalizeLocale(locale) { if (!locale || locale.trim() === '') { return ''; } return locale.toString().toLowerCase().replace(/-/g, '_'); } window._RestockRocketConfig.locale = 'en'; window._RestockRocketConfig.normalizedLocale = normalizeLocale('en'); window._RestockRocketConfig.shop = 'projektride.myshopify.com'; window._RestockRocketConfig.pageType = 'product';window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom'; window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2025-11-11T14:27:02.312Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too","show_button_on_collection":false,"sms_default_country":"us","sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":null,"insert_button_after_selector_type":"afterend","storefront_button_position_type":"float-right","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"This item needs to be purchased separately. Please check out or clear your cart b
    selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/c
    der_payment_insert_selector":"","preorder_payment_insert_selector_type":"afterend","preorder_price_container_selector":"","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":"","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":false,"inline_form_selector":null,"inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"market_setup_type":"single_market","shopify_app_id":5940125,"cache":true,"cached_at":"2025-11-11T14:27:02.333Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43590980075746,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074

    38308587746,43938308653282,43938308718818,43938308751586,43938308784354,43938308817122,43938322612450,43938322645218,43938322677986,43981336051938,43981336084706,43981336117474,43981336150242,43981345587426,43981345620194,43981345652962,43981345685730,43981357580514,43981357613282,43981362462946,43981362495714,43981362528482,43981369016546,43981369049314,43981374914786,43981374947554,43981374980322,43981392904418,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140302827746,44140302893282,44140317016290,44155590508770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,4506875

    li class="result"> 0:08:43Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2025-12-15T10:08:43Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569933140351,55569712382335,55569712415103,55569712480639,55569933173119,55570017616255,55569933074815,55570017550719,55569712447871,55569933107583,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preo
    div class="result__image" data-aspectratio="{{ it.product.image.aspectRatio }}" data-product-image> t":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day",
    a href="{{ it.product.url }}" class="result__image-link" aria-label='{{ it.product.title }}'> t":true}];window._RestockRocketConfig.integrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":7467986157794,"title":"Muc-Off Bio Drivetrain Cleaner 500ml","handle":"muc-off-bio-drivetrain-cleaner-500ml","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Muc-Off Bio Drivetrain Cleaner is the complete drivetrain cleaning solution that can either be poured into a chain cleaning device or sprayed directly to your chain rings, rear cassettes and deraille

    div class="result__image-img product__media lazyload fade-in" data-bgset="{{ it.product.image.thumb }}" data-aspectratio="{{ it.product.image.aspectRatio }}" data-sizes="auto"published_at":"2021-12-15T22:47:58+00:00","created_at":"2021-12-07T16:59:24+00:00","vendor":"Muc-Off","type":"","tags":["Cleaners Degreasers and Lubrication","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":1799,"price_min":1799,"price_max":1799,"available":true,"price_varies":false,"compare_at_price":1799,"compare_at_price_min":1799,"compare_at_price_max":1799,"compare_at_price_varies":false,"variants":[{"id":42133855994082,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"295-CT","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Muc-Off Bio Drivetrain Cleaner 500ml","public_title":null,"options":["Default Title"],"price":1799,"weight":900,"compare_at_price":1799,"inventory_management":"shopify","barcode":"5037835295009","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/Web_295-CT_bio_drivetrain_cleaner_2021_1000x1000_93d6ee98-b11b-450b-9

    3c\/li\u003e\n\u003c\/ul\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {42133855994082 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {42133855994082 : parseInt("12"),}; window._RestockRocketConfig.variantsPreorderCount = {42133855994082 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {42133855994082 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {42133855994082 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {42133855994082 : null,}; window._RestockRocketConfig.variantsShippingText = {42133855994082 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {42133855994082 : null,}; window._RestockRocketConfig.selected_variant_id = 42133855994082; window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }

    <<).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-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; } // ChecLucy Gaunta class="product__media product__media--featured" href="/collections/road-gravel-touring-bikes/products/genesis-tour-de-fer-10-ex-demo-bike-medium" title="Genesis Croix De Fer 10 Ex Demo Bike - Medium" aria-label="Genesis Croix De Fer 10 Ex Demo Bike - Medium" style="background-image: url(//projektride.co.uk/cdn/shop/files/FDFCFA79-1A88-4006-911A-D4F6ABA62399-min_600x.png?v=1727259386)"> span>{{ it.product.badgeText | safe }}k if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no translation data in metafield // Metafield hasn't been backfilled yet - force refresh console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); return null; } // Translations object exists in metafield - cache is valid // If current locale isn't translated, applyTranslations will gracefully use default locale from base fields if (window._RestockRocketConfig.normalizedLocale && !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } // Don't return null - contin
    <Genesis Croix De Fer 10 Ex Demo Bike - Medium><
    > {{/if}} riptElement.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 || !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) { // No matching locale has translations; drop payload to save memory console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); delete settings.translations; return settings; } console.debug(`STOQ - Applying translations for normalized
    > 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 not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error)

    ings.preorder_collection_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._Restock

    ns() .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); }); } else if (attempt

    << p class="result__title"> maxRetries) { console.debug(`STOQ - API not ready, retry ${attempt}/${maxRetries}`); setTimeout(() => attemptCartCheck(attempt + 1), retryDelay); } else { console.debug('STOQ - API not loaded after max retries, skipping cart selling plan check'); } } attemptCartCheck(); }
    a href="{{ it.product.url }}">{{ it.product.title }}
    div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/18626282-8DD6-485D-8CB4-C957D6FD7085_600x.jpg?v=1727259008)"> >



    Robert Moreton <
    a class="product__media product__media--featured" href="/collections/road-gravel-touring-bikes/products/kinesis-r2" title="Kinesis R2" aria-label="Kinesis R2" style="background-image: url(//projektride.co.uk/cdn/shop/files/Kinesis---Bike---R2---Black-Gold_1000x1000_0344d005-a284-4236-a0c8-f26c27dad03c_600x.webp?v=1758020828)"> <
    span class="visually-hidden">Kinesis R2 >

    <
    div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Kinesis---Bike---R2---Black-Gold_1000x1000_1_600x.webp?v=1758020840)">

    <
    a class="product__media product__media--featured" href="/collections/road-gravel-touring-bikes/products/kinesis-4s-1" title="Kinesis 4S 2x10 Tiagra" aria-label="Kinesis 4S 2x10 Tiagra" style="background-image: url(//projektride.co.uk/cdn/shop/files/Kinesis-4S-Tiagra-Side-Clean-Upgrade_1000x1000_4fad8e4b-278e-4199-aafa-d6f8c21c2fc7_600x.webp?v=1758018401)">
    < span class="visually-hidden">Kinesis 4S 2x10 Tiagra

    Bikes are hard to come by at the moment. Andy and Dougie at ProjektRide were amazing in sourcing a frame and a build kit, then marrying them up to create a fantastic bike. They were really attentive to sizing and fitting, based on my riding style. > Home

    Matt Wilkes/
    Collections

    <★★★★★/div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Kinesis-4S-Tiagra-Cassette-Upgrade-6_1000x1000_bd477d6c-4e98-43bc-97f4-325d21176146_600x.webp?v=1758018401)">

    Nicholas Paul Franks
    Kinesis 4S 2x10 Tiagra

    ★★★★★

    I always get really friendly and helpful advice at ProjektRide and excellent results from any servicing they do. Highly recommended. £1,600.00

    Christine Thompson Sort by
    2x10 Tiagra - Graphite Grey

    ★★★★★

    Brilliant service. Andy listened to exactly what I needed and very kindly brought both bikes to my house for me to test ride, so helpful. Would definitely recommend. -Brother Cycles Stroma Frameset

    Jill KerrFeatured
    < a class="product__media product__media--featured" href="/collections/road-gravel-touring-bikes/products/brother-cycles-stroma-frameset-copy" title="-Brother Cycles Stroma Frameset" aria-label="-Brother Cycles Stroma Frameset" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2025-03-13at14.14.28_600x.png?v=1741875455)">

    <★★★★★Best sellingspan class="visually-hidden">-Brother Cycles Stroma Frameset

    I can highly recommended this place. Andy was very helpful and knowledgeable when I came to him looking for my next bike.>
    Moreover, he ensured the bike was in its best condition before handing over. Thanks a million!>

    Laura Grieve
    Alphabetically, A-Z

    ★★★★★div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2025-03-13at14.14.38_600x.png?v=1741875455)">

    ★★★ £1,199.00

    Took my old bike in for a service and it now feels like new. Great communication and great price. Also took the time to chat about future bike options with me. Cannot recommend Projekt Ride enough!

    Calum Thistle Electric Blue
    Price, high to low
    Rubble Rubble

    Date, old to new

    Date, new to old

    ★★★★★<

    If you are looking for someone helpful and knowledgeable this is the place to go.<
    Excellent service got a great bike in great condition even helped out with a few extras and provided the original receipt for lifetime guarantee on the frame.

    > Sort
    >

    I dropped my Specialized Vita for new brake pads and a service, the bike was ready for collection the same day and the price was reasonable! Bicycle feels brand new again and works amazing! Many thanks!!<

    Heather Paterson
    Price

     

     

     
    -Brother Cycles Mr Wooden Frameset