.
<<
<


<

4

img src="//projektride.co.uk/cdn/shop/files/6158_2048x2048.jpg?v=1723802055" alt="Ortlieb Back-Roller High Visibility" class="mfp-zoom-in-cur" id="34467829711074">
<5+
img src="//projektride.co.uk/cdn/shop/files/12470_2048x2048.jpg?v=1723802055" alt="Ortlieb Back-Roller High Visibility" class="mfp-zoom-in-cur" id="34467829743842"> Decrease quantity < TelIncrease quantity Locationlabel for="quantity--template--15326745395426__main">Quanti
0131 374 5324 img src="//projektride.co.uk/cdn/shop/files/12471_2048x2048.jpg?v=1723802055" alt="Ortlieb Back-Roller High Visibility" class="mfp-zoom-in-cur" id="34467829776610">
< Edinburghimg src="//projektride.co.uk/cdn/shop/files/12472_2048x2048.jpg?v=1723802055" alt="Ortlieb Back-Roller High Visibility" class="mfp-zoom-in-cur" id="34467829809378"> EH9 1QN
img src="//projektride.co.uk/cdn/shop/files/6146_98x.jpg?v=1723802055" alt="" class="product-single__thumbnail-img">
img src="//projektride.co.uk/cdn/shop/files/6147_98x.jpg?v=1723802055" alt="" class="product-single__thumbnail-img">
img src="//projektride.co.uk/cdn/shop/files/6148_98x.jpg?v=1723802055" alt="" class="product-single__thumbnail-img"> nt_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_ nt_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_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,"extensimg src="//projektride.co.uk/cdn/shop/files/6149_98x.jpg?v=1723802055" alt="" class="product-single__thumbnail-img"> 36193118434,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,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,4398198 antity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"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":" down_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":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","update xtra long mud flaps give additional spray protection. Includes adhesive protection kit to avoid damaging the paintwork.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eMudguard length, including mud flaps:\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eFront     519mm\u003cbr data-mce-fragment=\"1\"\u003eRear      680mm\u003c\/p\u003e","published_at":"2022-03-16T16:49:10+00:00","created_at":"2022-03-16T16:49:08+00:00","vendor":"ProjektRide","type":"","tags":["Mudguards"],"price":5099,"price_min":5099,"price_max":5099,"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":42603337056482,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"SKMRBP","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"SKS RACEBLADE PRO MUDGUARD SET","public_title":null,"options":["Default Title"],"price":5099,"weight":500,"compare_at_price":nimg src="//projektride.co.uk/cdn/shop/files/6150_98x.jpg?v=1723802055" alt="" class="product-single__thumbnail-img"> 10/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 (set 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 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 if(window._RestockRockimg src="//projektride.co.uk/cdn/shop/files/6151_98x.jpg?v=1723802055" alt="" class="product-single__thumbnail-img"> < f)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;heimg src="//projektride.co.uk/cdn/shop/files/6152_98x.jpg?v=1723802055" alt="" class="product-single__thumbnail-img"> < px}}@media (max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transforimg src="//projektride.co.uk/cdn/shop/files/6153_98x.jpg?v=1723802055" alt="" class="product-single__thumbnail-img">
r_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_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 975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2025-12-14T12:16:34Z","market_locations_enabled":false,"market_id":13777305826,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2025-12-14T12:19:01Z","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-14T12:19:01Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_mark
e great thing with these is that they only take a couple of minutes to fit so you can remove on sunny days!\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe ultimate clip-on mudguard set for road bikes. Raceblade set for max. tyre width up to 25mm, Raceblade XL (Please see separately) up to 32mm. The smart, double-hinged quick release fitting system also fits aero forks and is compatible with disc brakes. Mudguards can be perfectly adapted to the radius of the wheel by adjusting the length of the stays. Superlight extra long mud flaps give additional spray protection. Includes adhesive protection kit to avoid damaging the paintwork.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eMudguard length, including mud flaps:\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eFront     519mm\u003cbr data-mce-fragment=\"1\"\u003eRear      680mm\u003c\/p\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {42603337056482 : "deny",}; window._RestockRocketConfig.var console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const age = Date.now() - updatedAt.getTime(); if (age
// 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 successfully');
< nd:#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{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointe
<
d_600x.png?v=1691610357)">
>
img src="//projektride.co.uk/cdn/shop/files/6154_98x.jpg?v=1723802055" alt="" class="product-single__thumbnail-img">
<8","width":966},{"alt":null,"id":28852558266594,"position":2,"preview_image":{"aspect_ratio":1.001,"height":996,"width":997,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/OneUp-Components-EDC-Lite-Install-Tool-Clip-Arrow-3.jpg?v=1639606238"},"aspect_ratio":1.001,"height":996,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/OneUp-Components-EDC-Lite-Install-Tool-Clip-Arrow-3.jpg?v=1639606238","width":997},{"alt":null,"id":28852558299362,"position":3,"preview_image":{"aspect_ratio":1.001,"height":965,"width":966,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/OneUp-Components-EDC-Lite-Tightening-Brake-Lever-966.jpg?v=1639606238"},"aspect_ratio":1.001,"height":965,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/OneUp-Components-EDC-Lite-Tightening-Brake-Lever-966.jpg?v=1639606238","width":966},{"alt":null,"id":28852558332130,"position":4,"preview_image":{"aspect_ratio":1.0,"height":966,"width":966,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/OneUp-Compo< the steerer tube above the star nut BEFORE lowering the star nut position.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\"\u003eSTEERER TUBE LENGTH  \u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\"\u003eMost forks are compatible, except for a small number of forks with very short steerer tubes. For the following cases your fork steerer tube length must meet the minimum length requirement.\u003c\/span\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\"\u003eFox except Fox 38 = 190mm min\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\"\u003eFox 38 = 210mm min\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\"\u003eRockShox Forks  = 210mm mi\u003c\/span\u0e)\nEasy to install in less than 5 mins. \nAvailable in  6 colours (Black, Red, Blue, Green, Orange, Purple, Turq)\nNo need to remove your star nut or thread your steerer tube.\nColour matched to our Composite Pedals, Grips and Handlebar Decals.\nRun a single Multi Tool on all your bikes\n\n \nENSURE YOUR FORK IS COMPATIBLE -VERY IMPORTANT\nIncompatible forks: Giant Overdrive 2 Forks. Rock Shock 35 Gold Forks, Cannondale Lefty Forks. Carbon Steerers\nSTEERER TUBE INNER DIAMETER\nThe inner diameter of your steerer tube must be at least 24.1mm. OneUp is not currently aware of any tapered steerer tubes that do not meet this requirement. If fitting unsure, you can check this by inserting the tip of the EDC Lite into the steerer tube above the star nut BEFORE lowering the star nut position.\nSTEERER TUBE LENGTH  \nMost forks are compatible, except for a small number of forks with very short steerer tubes. For the following cases your fork steerer tube length must meet the minimum length requirement.\n\nFox e


<
<
lly-hidden">Hire Lazer Compact Helmet>
>
Hire Lazer Compact Helmet£0.00BlackHire Ortlieb 40L Pannier Bagsa class="product__media product__media--featured" href="/products/hire-ortlieb-40l-pannier-bags" title="Hire Ortlieb 40L Pannier Bags" aria-label="Hire Ortlieb 40L Pannier Bags" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_600x.jpg?v=1741085512)"> span class="visually-hidden">Hire Ortlieb 40L Pannier Bags> Life Systems Pocket First Aid Kit - HIREdiv class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.32_9d81277b-124e-4fdc-8a0f-fbfb40a9343d_600x.png?v=1691610357)">< < a class="product__media product__media--featured" href="/products/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire" title="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" aria-label="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_600x.png?v=1691610428)"> span class="visually-hidden">Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable> oduct__media product__media--featured" href="/products/hire-ortlieb-40l-pannier-bags" title="Hire Ortlieb 40L Pannier Bags" aria-label="Hire Ortlieb 40L Pannier Bags" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_600x.jpg?v=1741085512)">
> ainst rust \u0026amp; corrosion.\u003c\/li\u003e\n\u003cli\u003eSold with 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.16Hire Ortlieb 40L Pannier Bags00205-055400.jpg?v=1638898913"},"aspect_ratio":1.0,"height":648,"media_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.c idth":1062,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/zm_20200205-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 y£0.00
a class="product__media product__media--featured" href="/products/life-systems-pocket-first-aid-kit-hire" title="Life Systems Pocket First Aid Kit - HIRE" aria-label="Life Systems Pocket First Aid Kit - HIRE" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.22_5c0e6e2d-1913-4fd1-a90d-b486895960b6_600x.png?v=1691610357)"> span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE
> >
>
£0.00
Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable
>
£0.00span class="visually-hidden">Hire Ortlieb 40L Pannier Bags
>
>
Hire Ortlieb 40L Pannier Bags
#FeaturedImage--template--15326745395426__1645734801adfd4c07 { --overlay-opacity: 0.2; }£0.00
0131 374 5324
Life Systems Pocket First Aid Kit - HIRE div 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');"> > Location span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE82 Newington RoadBuy Sell Ride Confident> EH9 1QNFAQ Email > [email protected]I'm looking to find out more information about a product, where can I find this?Life Systems Pocket First Aid Kit - HIRE £0.00 Please get in touch with a member of the team either by phone ( 01313745324 [email protected]© 2025, Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cableProjektRide Bike Shop Edinburgh. Website by a class="product__media product__media--featured" href="/products/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire" title="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" aria-label="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_600x.png?v=1691610428)"> 071886719,"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.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_dI'm looking to buy this product, when will it arrive and how much does postage cost?.> t = {"id":7647669453026,"title":"SKS RACEBLADE PRO XL STEALTH SERIES MUDGUARD SET","handle":"sks-raceblade-pro-xl-stealth-series-mudguard-set","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eSKS RACEBLADE PRO XL STEALTH SERIES MUDGUARD SET\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003ePerfect for someone looking for mudguards to fit a road bike that doesn't have any fixing points. The great thing with these is that they only take a couple of minutes to fit so you can remove on sunny days!\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003eThe ultimate clip-on mudguard set for road and cyclocross bikes for tyre width between 25 and 32mm. Its smart, double hinged quick release fitting system also fits aero forks and is also compatible with disc brakes, direct mount brakes and thru axles. Mudguards can be perfectly adapted to the radius of the wheel by adjusting the length of the stays. Its superlight extra long mud flaps give additionaont_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":fals ketConfig.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)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketCock out or clear your cart before adding this 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": OQ - 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 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 elector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selec 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(); } nce Compound Tyre in Black - 700c \/ 38mm","public_title":"700c \/ 38mm","options":["700c \/ 38mm"],"price":4399,"weight":2000,"compare_at_price":4399,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/644386044_1904.jpg?v=1640544077"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/644386044_1904.jpg?v=1640544077","options":["Size"],"media":[{"alt":null,"id":28913845108962,"position":1,"preview_image":{"aspect_ratio":1.089,"height":743,"width":809,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/644386044_1904.jpg?v=1640544077"},"aspect_ratio":1.089,"height":743,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/644386044_1904.jpg?v=1640544077","width":809}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eSize - 700c\u003c\/strong\ tex products.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003e“Anti-Aging” Side Wall.\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eIt now lasts much longer before developing unsightly cracks when subjected to use with too low air pressure.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eE-Bike Ready.\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003c\/strong\u003eThe main sizes are approved and tested for E-bikes up to 50km\/h. Following sizes carry the ECE-R75 mark:\u003cbr data-mce-fragment=\"1\"\u003e20 x 1.75”, 26 x 1.75”, 700 x 35mm and 700 x 38mm\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eSmartGuard\u003c\/strong\u003e\u003cbr data-mce-fragment=\"1\"\u003eMost effective protection belt available for bicycle tyres. A substantial, 5mm thick layer of flexible, special india rubber offers durable protection.div 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');">_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; } // 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('STProjektRiderror) { // 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._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 ||Buy Sell Ride Confident< I'm looking to find out more information about a product, where can I find this?[email protected]) where on of the team will be more than happy to help.ProjektRide Bike Shop Edinburgh
a class="product__media product__media--featured" href="/products/life-systems-pocket-first-aid-kit-hire" title="Life Systems Pocket First Aid Kit - HIRE" aria-label="Life Systems Pocket First Aid Kit - HIRE" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.22_5c0e6e2d-1913-4fd1-a90d-b486895960b6_600x.png?v=1691610357)"> ProjektRide> Edinburgh
Questions and answersdiv class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.32_9d81277b-124e-4fdc-8a0f-fbfb40a9343d_600x.png?v=1691610357)">
) or email ( ) where on of the team will be more than happy to help.ProjektRide
Juan Borges Designsspan class="visually-hidden">Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable9632354,"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","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","countdown_timer_ > ,"sku":"SKMRBPB","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"SKS RACEBLADE PRO XL STEALTH SERIES MUDGUARD SET","public_title":null,"options":["Default Title"],"price":5599,"weight":500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-03-16at16.52.18.png?v=1647449705"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-03-16at16.52.18.png?v=1647449705","options":["Title"],"media":[{"alt":null,"id":29467573387490,"position":1,"preview_image":{"aspect_ratio":1.009,"height":957,"width":966,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-03-16at16.52.18.png?v=1647449705"},"aspect_ratio":1.009,"height":957,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-03-16at16.52.18.png?v=1647449705","width":966}],"requires_selling_plan":false,"selling_pl ve protection kit to avoid damaging the paintwork. * Disc brake compatible: Please be mindful of the brake wire.\u003c\/p\u003e\n\u003cp\u003ecolour:  black matte\u003c\/p\u003e\n\u003cp\u003eweight: 365 g\u003c\/p\u003e\n\u003cp\u003ewheel size: 27,5\" (650b)\", 28 \"\u003c\/p\u003e\n\u003cp\u003etyre width: 25-35 mm\u003c\/p\u003e\n\u003cp\u003elength front fender: 565 mm\u003c\/p\u003e\n\u003cp\u003elength rear fender:730 mm\u003c\/p\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {42603347476706 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {42603347476706 : parseInt("1"),}; window._RestockRocketConfig.variantsPreorderCount = {42603347476706 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {42603347476706 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {42603347476706 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {42603347476706 : null,}; window._RestockRockIf the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to recei cket.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 Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable<
!settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); return settings; } const normalizedLocale = window._RestockRocketConfig.normalize 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, '_'); } £0.00 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; } fet
935995625698,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,439367 1538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2025-12-14T12:16:34Z","market_locations_enabled":false,"market_id":13777305826,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits": timated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_p .restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10pxg_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"updated_at":"2025-08-19T10#FeaturedImage--template--15326745395426__1645734801adfd4c07 { --overlay-opacity: 0.2; }ound:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-dir
u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eThe new Flat-less tyre.\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eAfter 10 years, Schwalbe have thoroughly overhauled the Marathon Plus. The only true flat-less tyre gets a new, dynamic profile and boasts many internal improvements:\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eRolling Resistance.\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eThe patented, 5mm thick SmartGuard layer, when compared to all generic products, has a significant advantage in rolling resistance. Schwalbe further extended its lead in the latest version.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eRecycling.\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eAlso in the SmartGuard, Schwalbe now use a proportion of recycled rubber from old la :40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-ri
2472.jpg?v=1723802055","width":1200}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eSold Singularly\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eA brilliant idea for all-season, all-weather riders: the bike bags in the ORTLIEB High Visibility Line make it easier for other people to see you while you’re out there on the streets. This is because all High Visibility bags not only come with reflectors, but are themselves one big reflector. The waterproof bags are made with a polyurethane coated Cordura fabric that is woven through with a high-luminosity reflective yarn in neon yellow and black.\u003cbr\u003e\u003cbr\u003eThat gives ORTLIEB High Visibility bags an added safety feature in twilight conditions and in the dark of night.\u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e\u003cbr\u003eThe Back-Roller High Visibility is the ideal bike bag for those who prefer the convenience of the roll closure system. T Works also for objects that lodge in the tread. Even a thumbtack won’t harm it.\u003cbr data-mce-fragment=\"1\"\u003eFlat-less\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eIf any more information is needed, please don't hesitate to get in touch with one\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003e of the team:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e \u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003e\u003cmeta charset=\"utf-8\"\u003e\n\u003cspan\u003ePerfect for bike packing, touring and gravel bike adventures! Available online or from our bike shop in Edinburgh\u003c\/span\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eProjektRide Bike shop Edinburgh.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong ontinue 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
stockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`); } // 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.updateCartSelli FAQQuestions and answersx-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14px;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rock
estock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyf
Please get in touch with a member of the team either by phone (01313745324
) or email (
I'm looking to buy this product, when will it arrive and how much does postage cost?
span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE Building Your Bike From the Box
> [email protected]Insure Your Bike 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._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 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(windo w._RestockRocketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`); } // 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 maxRetri