> <
  • < Parts & Components See More
  • <
      • Laura Grieve <
      • Use this testimonial as an opportunity for your customers to discuss your brand and what sets you apart from the competition.
      • John Doe
      • HAVE A QUESTION?
      • We love chatting about your next bike adventure. Get in touch and we can go through the perfect bike along with any accessories needed to get you to your final destination. If you are local to our branch in Edinburgh, please pop in for a coffee and feel free to test ride the bikes in stock.If you are looking to sell your bike, please click here
      to get the ball rolling.
    GET IN TOUCH
  • e_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_cons
    ont_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_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,"
    -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; } // Check 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 - continue using cache even for untranslated locales } const updatedAt = new Date(settings.updated

    a href="https://projektride.co.uk/collections/bikes?filter.p.vendor=Brother,Brother+Cycles,Brothers+Cycles,brother+cycles" class="logo-list__slide-image" style="background-image: url(//projektride.co.uk/cdn/shop/files/cropped-brother-cycles-leaf-logo_360x.png?v=1688813290); width: 120px; padding-top: 100.0%;">_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.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 locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`); const translatedFields = translations[normalizedLocale]; if (translatedFields && typeof translatedFields === 'object') { Object.keys(translatedFields).forEach(function(key) { const value = translatedFields[key
    - 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) { // If request failed and we have cached settings (even if expired), use them as fallback
    ptUrlCollection); } 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._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabled for

    Certified Shimano Service Centre

    Cytech Approved Mechanics

    Below is an outline of the services and repairs we offer. Should additional work be required, ProjektRide staff will always quote and gain consent prior to undertaking any further work.

    Entry Level Service £72

    Our Entry-level service will get your bike up and running ready for the daily commute or weekend adventure.

    • Comprehensive safety check of all moving parts/Inspection for critical defects
    • Full gear & brake adjustment
    • Drivechain & cable lubrication
    • Tyre pressures set to the correct level
    • Comprehensive test ride
    • Nut and bolt safety check
    Intermediate Level Service £108

    Our Intermediate level service is perfect for those bikes just needing a bit more love than the Entry-Level Service.

    • All aspects of the Entry-Level service
    • Light clean of whole bike
    • Drivetrain deep clean in parts washer
    • Headset adjusted and tightened
    • Bottom bracket adjusted where possible
    • Hubs adjusted
    • Wheels trued and spokes tentioned to the correct level
    • Gear hanger alignned
    • Seatpost removed and re-greased
    • All components checked for wear
    Advanced Level Service (Excluding Full Suspension Mountain Bikes) £220

    Our advanced service is perfect if you require a full overhaul ahead of a big race, or it's simply been a while since you last had your bike cared for. This strip-down service will prevent any components from seizing and allow for a longer life of each component. No fitting charge is added for parts that are due to be replaced - we will always let you know the total cost before going ahead with the repair.

    • All aspects of the Entry Level service
    • Full deep clean and polish to the whole bike
    • Remove, Clean, degrease and lubricate the drive chain
    • Gear and brake inner cables replaced if necessary (inner cables included)
    • Brake fluid replaced and the system bled
    • Wheels trued and spokes tensioned to the correct level
    • Seatpost removed and regreased
    • Pedals removed and regreased
    • Headset stripped and regreased
    • Hubs stripped and regreased
    • Bottom bracket stripped and regreased
    • Drivetrain parts cleaned in our ultrasonic parts cleaner
    MTB Advanced Level Service (Full Suspension Mountain Bikes) £250

    Our advanced service is perfect if you require a full overhaul ahead of a big race, or it's simply been a while since you last had your bike cared for. This strip-down service will prevent any components from seizing and allow for a longer life of each component. No fitting charge is added for parts that are due to be replaced - we will always let you know the total cost before going ahead with the repair.

    • All aspects of the Advanced level service
    • Full strip down of the frame - all bearing are inspected, cleaned and regreased.
    • Dropper seatpost cable replaced (fluid replaced if hydraulic) and externals cleaned
    • Tubeless sealant replaced and inflated to the correct levels
    • Suspension stanchions cleaned and seals lubricated
    • Suspension set-up when collecting

    We also offer suspension servicing for Rockshox and Fox, please get in touch to discuss the options.

    ProjektRide Individual Part Fitting Price List (parts not included)

    Service Description Price Service Description Price
    Entry-level service £72 Disk brake bleed (per brake) From £20
    Intermediate service £108 Tyre replacement From £10
    Advanced service £220 Bottom bracket replacement From £20
    MTB Advanced Level Service £250 Brake adjust (per brake) From £10
    Wheel True From £10 Headset Replacement From £15 - £20
    Spoke replacement & true From £15 - £20 Headset strip & grease From £15
    Gear adjustment (front & rear, light clean) From £25 Chain replacement From £12.50
    Brake cable fitting From £10 Chain & cassette replacement From £20
    Brake cable fitting (internal) From £15 Mudguards fitted (front & rear) From £20
    Gear cable fitting From £10 Wheel bearing replacement (each wheel) From £15
    Gear cable fitting (internal) From £15 Pannier rack replacement From £12
    Brake pad replacement From £10 Tubeless set up (each wheel) From £15
    Brake pad replacement (disc & cartridge) From £10 Dropper post cable replacement / bleed From £18
    Bar tape replacement From £15 Suspension Service From £70 - £130
    Shimano Electrical diagnostic, updates and warranty From £40 Bosch Electrical diagnostic, updates and warranty From £40
    Mahle Electrical diagnostic, updates and warranty From £40 Bottom bracket chase and Face From £50
    Silca chain waxing service From 25 Gtechniq Ceramic Coating From £120