•     img src="//projektride.co.uk/cdn/shop/files/Precaliber248speedSuspension_23_36846_C_Portrait_98x.webp?v=1728380926" alt="" class="product-single__thumbnail-img">
  • Quantity: BUY1img src="//projektride.co.uk/cdn/shop/files/Precaliber248speedSuspension_23_36846_A_Alt2_98x.webp?v=1728380885" alt="" class="product-single__thumbnail-img">
  • <
    img src="//projektride.co.uk/cdn/shop/files/logo_header_2048x2048.png?v=1634060673" alt="" class="logo--footer"> Colour Contact UsSelect variant dropdownBlog Red - £350.00 GBPPrivacy Policy
    Silver - Sold OutCookie Policy
    Terms of Service
    £40.00Location <
    Header Image

    If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item. FAQ

    Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.Questions and answers

    We also have a physical store, if you are local please pop in -

    ith Storage Tub for your convenience.\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2021-12-14T19:01:51+00:00","created_at":"2021-12-07T17:41:50+00:00","vendor":"Muc-Off","type":"","tags":["Cleaners","Cleaners Degreasers and Lubrication","Degreasers","lubricants","Lubrication","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":4000,"price_min":4000,"price_max":4000,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":42134012788962,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"250","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Muc-Off 8 In 1 Bicycle Cleaning Kit","public_title":null,"options":["Default Title"],"price":4000,"weight":2000,"compare_at_price":null,"inventory_management":"shopify","barcode":"PREA03112021.1620","requires_selling_plan":false,"selling_plan_allocations":[]}],"imaProjektRide Bike Shop Edinburgh
    _type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/bg_20200205-055400.jpg?v=1638898913","width":648},{"alt":null,"id":28806753222882,"position":2,"preview_image":{"aspect_ratio":1.0,"height":3000,"width":3000,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/zm_20160312-103219.jpg?v=1638898914"},"aspect_ratio":1.0,"height":3000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/zm_20160312-103219.jpg?v=1638898914","width":3000},{"alt":null,"id":28806753255650,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1044,"width":1044,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/zm_20200205-055414.jpg?v=1638898914"},"aspect_ratio":1.0,"height":1044,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/zm_20200205-055414.jpg?v=1638898914","width":1044},{"alt":null,"id":28806753288418,"position":4,"preview_image":{"aspect_ratio":1.0,"height":3000,"width":3000,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/zm_20160312-103229.jpg?v=1638898915"},"aspe 82 Newington Road, EH91QN, Edinburgh.

    205-055429.jpg?v=1638898914"},"aspect_ratio":1.0,"height":1062,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/zm_20200205-055429.jpg?v=1638898914","width":1062},{"alt":null,"id":28806753550562,"position":8,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/zm_20200205-055424.jpg?v=1638898914"},"aspect_ratio":1.0,"height":1080,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/zm_20200205-055424.jpg?v=1638898914","width":1080}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Muc-Off 8 in 1 Bicycle Cleaning Kit is perfect for any lover of bikes. Complete with our Nano Tech Bike Cleaner, Expanding Microcell Sponge, Soft Washing Brush, Detailing Brush, Claw Brush, Two Prong Brush, Bike Spray and Storage Tub this kit has pretty much everything you need to keep your bike looking nice and tidy. It makes a great Chri
    I'm looking to find out more information about a product, where can I find this?
    {"id":8732165046498,"title":"Precaliber 24 8-Speed Suspension","handle":"precaliber-24-8-speed-suspension","description":"\u003cdiv class=\"b2b-buying-zone__info cell medium-6 large-12\" data-v-e224ae82=\"\"\u003e\n\u003cdiv class=\"buying-zone__positioning-statement mb-2 pt-2 border-t border-gray-10\" data-v-e224ae82=\"\"\u003e\n\u003cp\u003eThe Bali Go! will transport you deep into the jungles and lush tropical rain forests of Bali. Varying shades of rich metallic green leaves on the mudguards and chain guard compliment the cream-coloured frame inspired by white sandy beaches. The look is complete with a customised debossed saddle and grips with the same leaf pattern and a matching bell.\u003c\/p\u003e\n\u003cp\u003eIt's right for you if...\u003cbr\u003eElectra Artist Series e-bikes allow for the ultimate expression of design and style, but not at the sacrifice of modern technology. The Bali Cruiser Go! is nothing short of unique, featuring carefully crafted details throughout while the pedal-assist e-bike system provides smooth support up to 60 kilometres. Individuality and fun come standard.\u003c\/p\u003e\n\u003cp\u003eThe tech you get\u003cbr\u003eDon't let the name Cruiser fool you, we took the bike that started it all and kicked it up a notch with a rear hub motor featuring three levels of support. Even as a singlespeed, the Electra e-bike system tackles pesky hills and longer rides. Mechanical disc brakes provide powerful stopping while 26\" tyres ensure a smooth ride to the beach and back. Customised mudguards, saddle and grips, and matching bell make this one fun, stylish ride.\u003c\/p\u003e\n\u003cp\u003eThe final word\u003cbr\u003eSubtle beauty paired with the power of an e-bike, the Artist Series collection takes Electra comfort and quality to the next level by delivering unparalleled attention to detail, intricate design and individuality. Adventure awaits on the Bali Cruiser Go!\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\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 wall. The distance from the marked spot to the floor is your height.\u003c\/p\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\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody data-v-3ac87600=\"\"\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-
    Please get in touch with a member of the team either by phone ( - Orange","public_title":"Orange","options":["Orange"],"price":35000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46034343690466,"title":"Teal","option1":"Teal","option2":null,"option3":null,"sku":"5276072","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Precaliber 24 8-Speed Suspension - Teal","public_title":"Teal","options":["Teal"],"price":35000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46034343723234,"title":"Red","option1":"Red","option2":null,"option3":null,"sku":"5276070","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Precaliber 24 8-Speed Suspension - Red","public_title":"Red","options":["Red"],"price":35000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan"
    01313745324885","\/\/projektride.co.uk\/cdn\/shop\/files\/Precaliber248speedSuspension_23_36846_A_Alt3.webp?v=1728380891","\/\/projektride.co.uk\/cdn\/shop\/files\/Precaliber248speedSuspension_23_36846_A_Alt4.webp?v=1728380898"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Precaliber248speedSuspension_23_36846_A_Primary.webp?v=1728380873","options":["Colour"],"media":[{"alt":null,"id":34778984939746,"position":1,"preview_image":{"aspect_ratio":1.333,"height":1080,"width":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Precaliber248speedSuspension_23_36846_A_Primary.webp?v=1728380873"},"aspect_ratio":1.333,"height":1080,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Precaliber248speedSuspension_23_36846_A_Primary.webp?v=1728380873","width":1440},{"alt":null,"id":34778987364578,"position":2,"preview_image":{"aspect_ratio":1.333,"height":1080,"width":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Precaliber248speedSuspension_23_36846_D_Portrait.webp?v=1728380919"},"aspect_rati []
    Location
    Sat: 9:00 - 16:00
    Sun: Closed

    img src="//projektride.co.uk/cdn/shop/files/logo_header_2048x2048.png?v=1634060673" alt="" class="logo--footer"> Tel

    0131 374 5324

    QUICK LINKS

    About Us

    Contact UsLocation

    Blog

    Track Service Progress82 N

    Mon - Fri: 09:00 - 18:30
    Sat: 9:00 - 16:00

    ProjektRide
    • . Website by
    • 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 before adding th is item.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":null,"push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_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_searchert_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,43936000835810 ,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,43936142426338,43936142459106,43936152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,43936331661538,43936332349666,43936333103330,43936351224034,43936353714402,43936362889442,43936362922210,43936388153570,43936389333218,43936395526370,43936398508258,43936401522914,43936408568034,43936414400738,43936700727522,43936706101474,43936706134242,43936706167010,43936706199778,43936706232546,43936706265314,43938308587746,439RestockRocketConfig.variantsPreorderMaxCountForMarket = {42134012788962 : null,}; window._RestockRocketConfig.variantsShippingText = {42134012788962 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {42134012788962 : null,}; window._RestockRocketConfig.selected_variant_id = 42134012788962; 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._RestockRocket Config.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_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') 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 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
    ]; 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?.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 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._Restoc kRocketConfig.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 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)) { createRest