Create account
SearchSingularBikes| . | Website by Home | Juan Borges Designs/BUY||
| Passport Bike Packing Frame Bags | RIDE CONFIDENTPassport Bike Packing Frame Bagsfragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eS\/M = 14L total pack capacity (2.0L bladder)\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eL\/XL = 14.5L total pack capacity (2.0L bladder)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eWeights\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eS\/M = 460g\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eL\/XL = 465g\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eMaterials\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eLightweight, breathable 3D mesh construction\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e70D lightweight ripstop with TPU waterproof coating\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eInternal lycra stash pocket\u003c\/li\u003e\n\u00 £34.99 | ||
| ize_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_coloFORK fit for all body shapes. Adjustable sternum straps ensure a comfortable fit, with further side adjustment to ensure there is no unwanted movement while riding. Hydration hose organisation loops and a magnetic clip keep the hose nearby, yet out of the way.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"wrap-details read-more\" data-mce-fragment=\"1\"\u003e\n\u003ch3 data-mce-fragment=\"1\"\u003eTECHNICAL\u003ci class=\"tab-arrow\" data-mce-fragment=\"1\"\u003e\u003c\/i\u003e\n\u003c\/h3\u003e\n\u003cdiv data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003ePrecision Crafted using lightweight, breathable and stretchy materials for enhanced comfort on the bike. The Hydration Backpack uses technical materials and streamlined, ‘less is more’ design principles tailored to the rigours of backcountry riding.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eCapacity\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\ r":"#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","sto | refront_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": mce-fragment=\"1\"\u003eStretch mesh rear side pockets\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eQuick release buckles incorporating magnetic hydration hose clip\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eCare\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eWash by hand, using a mild diluted soap if necessary. Afterwards, let it air dry. Do not machine wash, machine dry, or iron.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"}#ProductTemplate--template--15326745395426__main { background: #ffffff; } .shop-pay-terms { --payment-terms-background-color: #ffffff } 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 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_|||
| } 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.deb < | a class="product__media product__media--featured" href="/collections/accessories/products/hire-smith-convoy-helmet" title="Hire Lazer Compact Helmet" aria-label="Hire Lazer Compact Helmet" style="background-image: url(//projektride.co.uk/cdn/shop/files/my2023_tempo-kineticore-black_right_1400x1011800x600-removebg-preview_1_600x.png?v=1747484784)"> Shimano ES300 or Prowheel BB68+img src="//projektride.co.uk/cdn/shop/products/30203-pm_2048x2048.png?v=1679136097" alt="Brooks Scape Seat Bag" class="mfp-zoom-in-cur" id="31694623408354"> }); } 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-ShopiSelect variant dropdown< | span class="visually-hidden">Hire Lazer Compact Helmet tings = 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 || > 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'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } else if (attempt Small - 2.1 Liter - £34.99 GBP||
| < | a class="product__media product__media--featured" href="/collections/accessories/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)"> Shimano HG400 11-34t 9spd or Microshift Advent X 11-48t << | ||
| Shimano Sora or MicroshiftLife Systems Pocket First Aid Kit - HIRE < | |||
| Shimano Sora or Microshift> < | |||
| Shimano Soradiv 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)"> < | |||
| label for="quantity--template--15326745395426__main">Quantity | < | ||
| < | |||
| < | |||
| HANDLEBAR tems stored in the main front triangle means the bike is more balanced which results in better handling and a more comfortable ride. The bags use a heavy-duty water-resistant material. Therefore all your luggage safe, secure and dry while out on your adventure. These bags are perfect for use on a multitude of bikes and riding styles. | ProjektRideKona RoadBuy Sell Ride ConfidentPASSPORT BIKEPACKING BICYCLE FRAME BAGS SPECIFICATIONS: | ||
| STEMFAQ | QuestioTarpaulin top and bottom main body material aids durabilityWater resistant side zipper | ||
| Internal storage organisation | 3M Reflective logo for added safety. | ||
| ADVNTR.cc gave the Passport Bikepacking Range 9/10, describing the range as " | PERFORMANCE BEYOND THE ASKING PRICE" link to the review | ||
| Offroad.cc described the frame bag as " | Solid frame bag that will start you off nicely in the bikepacking worldHome" link to the review/ | Bags and Transportation||
| Brooks Scape Seat Bag | £134.99 | ||
| SKU: BSB03PLA00401 | |||
| REAR HUB210D Nylon sides panels with 500D Tarpaulin body | Shimano or Formula 142x12mm (centerlock) img src="//projektride.co.uk/cdn/shop/files/logo_header_2048x2048.png?v=1634060673" alt="" class="logo--footer"> | ||
| SPOKES Black | About UsContact Us | Blog||
| Insure Your Bike | Privacy PolicyCookie Policy | Terms of Service||
| SERVICES | Servicing | ||
| Delivery & Returns | |||
| Would you like to add on any eq | |||
| < | ed" href="/collections/best-selling-collection/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 | >> | Hire Ortlieb 40L Pannier Bags | © 2025, £0.00 | Website by ion1":"Mud Green","option2":null,"option3":null,"sku":"BSB03PLA00402","requires_shipping":true,"taxable":true,"featured_image":{"id":39096216781026,"product_id":8055053418722,"position":1,"created_at":"2023-03-18T10:41:34+00:00","updated_at":"2023-03-18T10:41:38+00:00","alt":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30200-pm.png?v=1679136098","variant_ids":[43935991988450]},"available":true,"name":"Brooks Scape Seat Bag - Mud Green","public_title":"Mud Green","options":["Mud Green"],"price":13499,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31694623375586,"position":1,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30200-pm.png?v=1679136098"}},"requires_selling_plan":false,"selling_plan_allocations":[]}], templateName: 'product', shopLocale: 'en', dataKey: 'top-strip-promotion-badge', storefrontCurrency: 'GBLife Systems Pocket First Aid Kit - HIRE | ||||||||||
| span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE | >> | ds to be purchased separately. Please check 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_snabled":false,"preorder_collection_form_selector":"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":"" | 89432546,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,4393670613,44329993568482,44957136584930,44957136781538,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-15T14:52:15Z","market_locations_enabled":false,"market_id":382140642,"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.cachedVariantPreor | div 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)">eorder. 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_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_dis> ","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_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 | "1\"\u003eHydration backpack for mountain biking on technical terrain\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eDesigned for mountain biking and long rides in remote locations where extra water carrying capacity and increased storage are essential, the Backcountry Hydration Backpack adds significant capacity and versatility to mountain bike setups. It features our custom 2L fast-flow bladder, a 12L main storage compartment and an additional 2L of capacity spread across easy-access pockets.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eConstructed from a lightweight, breathable 3D mesh the Backcountry Hydration Backpack features an endurance on-bike anatomic fit for unrivalled stability and all-day comfort. Two rear stretch mesh pockets provide on-the-bike storage and access for food, drinks, and mid-ride essentials, while an additional font mesh pocket and zippered device pocket keeps your smartphone and snacks close to hand. A large, roll-top compartment on the back provand streamlined, ‘less is more’ design principles tailored to the rigours of backcountry riding.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eCapacity\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eS\/M = 14L total pack capacity (2.0L bladder)\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eL\/XL = 14.5L total pack capacity (2.0L bladder)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eWeights\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eS\/M = 460g\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eL\/XL = 465g\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eMaterials\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u0 | isabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":15300,"price_min":15300,"price_max":15300,"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":44140349292770,"title":"Small \/ Medium","option1":"Small \/ Medium","option2":null,"option3":null,"sku":"VBS","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"BACKCOUNTRY HYDRATION BACKPACK - Small \/ Medium","public_title":"Small \/ Medium","options":["Small \/ Medium"],"price":15300,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44140349325538,"title":"Large \/ Extra Large","option1":"Large \/ Extra Large","option2":null,"option3":null,"sku":"VBL","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"BACKCOUNTRY HYDRATION BACKPACK - Large \/ Extra Large","public_titlLife Systems Pocket First Aid Kit - HIRE":31960279220450,"position":2,"preview_image":{"aspect_ratio":1.31,"height":942,"width":1234,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at12.05.22.png?v=1687691253"},"aspect_ratio":1.31,"height":942,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at12.05.22.png?v=1687691253","width":1234},{"alt":null,"id":31960279253218,"position":3,"preview_image":{"aspect_ratio":1.31,"height":942,"width":1234,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at12.05.29.png?v=1687691252"},"aspect_ratio":1.31,"height":942,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at12.05.29.png?v=1687691252","width":1234}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"wrap-details read-more\" data-mce-fragment=\"1\"\u003e\n\u003cdiv data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003e | us storage and features a high-contrast reflective design and a light attachment point for enhanced visibility in all light conditions.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Hydration Backpack is available in two sizes to enable the perfect fit for all body shapes. Adjustable sternum straps ensure a comfortable fit, with further side adjustment to ensure there is no unwanted movement while riding. Hydration hose organisation loops and a magnetic clip keep the hose nearby, yet out of the way.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"wrap-details read-more\" data-mce-fragment=\"1\"\u003e\n\u003ch3 data-mce-fragment=\"1\"\u003eTECHNICAL\u003ci class=\"tab-arrow\" data-mce-fragment=\"1\"\u003e\u003c\/i\u003e\n\u003c\/h3\u003e\n\u003cdiv data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003ePrecision Crafted using lightweight, breathable and stretchy materials for enhanced comfort on the bike. The Hydration Backpack uses technical materials and stream£0.00ight, breathable 3D mesh construction\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e70D lightweight ripstop with TPU waterproof coating\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eInternal lycra stash pocket\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eStretch mesh rear side pockets\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eQuick release buckles incorporating magnetic hydration hose clip\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eCare\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eWash by hand, using a mild diluted soap if necessary. Afterwards, let it air dry. Do not machine wash, machine dry, or iron.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {44140349292770 : "deny",44140349325538 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {44140349292770 : parseInt("100"),4414034932553 | rlProduct = '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; } // Check if translations are enabled but missing from||||||||
| Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cablew._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( | d 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)) { cr{ 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.updateCartSellingPlans() .then(hasUpdates => { | <> ock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#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 | :55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@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 | X(0)}100%{-webkit-transform:translateX(100%)}}Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable | £0.00 | ||||||||||
| #FeaturedImage--template--15326745395426__1645734801adfd4c07 { --overlay-opacity: 0.2; } | 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');"> | >ProjektRide | Buy Sell Ride Confident | ||||||||||||
| I'm looking to find out more information about a product, where can I find this? | Please get in touch with a member of the team either by phone ( | 01313745324 | ) or email ([email protected] | ) where on of the team will be more than happy to help.ProjektRide Bike Shop Edinburgh | |||||||||||
| 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. | Postage is free on orders over £50. Orders under £50, our postage charge is £3.99. | We also have a physical store, if you are local please pop in -ProjektRide Bike Shop Edinburgh | 82 Newington Road, EH91QN, Edinburgh.|||||||||||||
| rugged materials to last, the holster bottom designed to act as a mudguard and protect the internal bag from any rear wheel contact. The dry bag easily compresses thanks to its air valve release mechanism to minimise bulk, and can be rolled smaller when less carrying space is needed. The daisy chain allows attachment of modular bags, and a loop is included to attach a rear light. An additional clip is provided to fix the webbing and avoid any loosening. Made from waterproof material to be prepared for any ride, regardless of conditions.\u003c\/p\u003e\n\u003cp\u003eKey Benefits:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eWaterproof (IP64 Certified and 50,000mm hydrostatic head rating)\u003c\/li\u003e\n\u003cli\u003eLasting performance\u003c\/li\u003e\n\u003cli\u003ePractical functionality\u003c\/li\u003e\n\u003cli\u003eAdaptable \u0026amp; Versatile\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eHolster: \u003c\/p\u003e\n\u003 | cp\u003eHolster: \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ePolyester 600D\u003c\/li\u003e\n\u003cli\u003ePVC Free\u003c\/li\u003e\n\u003cli\u003ePFC Free\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eDryBag:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e420D Nylon fully welded\u003c\/li\u003e\n\u003cli\u003ePVC Free\u003c\/li\u003e\n\u003cli\u003ePFC Free\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDimensions:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eVolume: 8-10L \u003c\/li\u003e\n\u003cli\u003eWidth: 40-60cm \u003c\/li\u003e\n\u003cli\u003eHeight: 18cm \u003c\/li\u003e\n\u003cli\u003eDepth: 14cm \u003c\/li\u003e\n\u003cli\u003eWeight: 500g \u003c\/li\u003e\n\u003cli\u003eMaximum Load: 3kg\u003c\/li\u003e\n\u003cli\u003eDry Bag: 62cmx32cm\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2024-12-08T20:03:48+00:00","created_at":"2023-03-18T10:41:34+00:00","vendor":"ProjektRide","type":"Apparel \u0026 Accessories","tags":["Bags and Transportation","Bt_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/36868-pm.png?v=1679136098"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43935991988450,"title":"Mud Green","option1":"Mud Green","option2":null,"option3":null,"sku":"BSB03PLA00402","requires_shipping":true,"taxable":true,"featured_image":{"id":39096216781026,"product_id":8055053418722,"position":1,"created_at":"2023-03-18T10:41:34+00:00","updated_at":"2023-03-18T10:41:38+00:00","alt":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30200-pm.png?v=1679136098","variant_ids":[43935991988450]},"available":true,"name":"Brooks Scape Seat Bag - Mud Green","public_title":"Mud Green","options":["Mud Green"],"price":13499,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31694623375586,"position":1,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/3020 | ":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30200-pm.png?v=1679136098"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30200-pm.png?v=1679136098","width":776},{"alt":null,"id":31694623408354,"position":2,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30203-pm.png?v=1679136097"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30203-pm.png?v=1679136097","width":776},{"alt":null,"id":31694623441122,"position":3,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30199-pm.png?v=1679136098"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30199-pm.png?v=1679136098","width":776},{"alt":null,"id":31694623473890,"position":4,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektr-pm.png?v=1679136098"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/36868-pm.png?v=1679136098","width":776},{"alt":null,"id":31694623637730,"position":8,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/36869-pm.png?v=1679136106"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/36869-pm.png?v=1679136106","width":776},{"alt":null,"id":31694623670498,"position":9,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/36870-pm.png?v=1679136098"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/36870-pm.png?v=1679136098","width":776},{"alt":null,"id":31694623703266,"position":10,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/36871-pm.png?v=1679136097"},"aspect_ratio | 03eKey Benefits:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eWaterproof (IP64 Certified and 50,000mm hydrostatic head rating)\u003c\/li\u003e\n\u003cli\u003eLasting performance\u003c\/li\u003e\n\u003cli\u003ePractical functionality\u003c\/li\u003e\n\u003cli\u003eAdaptable \u0026amp; Versatile\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eHolster: \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eLateral reflective logo\u003c\/li\u003e\n\u003cli\u003ePlastic buckles with cam lock\u003c\/li\u003e\n\u003cli\u003eAluminium hook to fix the dry bag into the holster\u003c\/li\u003e\n\u003cli\u003eVertical daisy chain for extra bags attachment\u003c\/li\u003e\n\u003cli\u003eReinforced fabric at all points of contact to the seat and wheel \u003c\/li\u003e\n\u003cli\u003eDryhole to drain any water drops or condensation\u003c\/li\u003e\n\u003cli\u003eNylon webbing\u003c\/li\u003e\n\u003cli\u003eLoop for mounting a rear light\u003c\/li\u003e\\u003c\/li\u003e\n\u003cli\u003eHeight: 18cm \u003c\/li\u003e\n\u003cli\u003eDepth: 14cm \u003c\/li\u003e\n\u003cli\u003eWeight: 500g \u003c\/li\u003e\n\u003cli\u003eMaximum Load: 3kg\u003c\/li\u003e\n\u003cli\u003eDry Bag: 62cmx32cm\u003c\/li\u003e\n\u003c\/ul\u003e"} | [] | |||||||||||
| Would you like to add on any equipment? | 130 | INFORMATION< | 190|
Sun: Closed
|
|
72.5EH9 1QN< | a class="product__media product__media--featured"
href="/collections/accessories-bags-and-transportation/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)">
| |||||||||
| CS LENGTH[email protected] | Hire Ortlieb 40L Pannier Bags435 | £0.00435 | 435 | Life Systems Pocket First Aid Kit - HIRE435 | 435© 2025, | < ProjektRidea class="product__media product__media--featured" href="/collections/accessories-bags-and-transportation/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)"><435.span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE | |||||||||
| 10. | BB DROP | < div 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)">74 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 this item.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_back | 3e\" link to the review\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003cstrong data-mce-fragment=\"1\"\u003e\u003cem data-mce-fragment=\"1\"\u003e\u003ca data-mce-fragment=\"1\" href=\"https:\/\/off.road.cc\/content\/review\/bags\/passport-cycles-frame-bag-medium-1386-review\" data-mce-href=\"https:\/\/off.road.cc\/content\/review\/bags\/passport-cycles-frame-bag-medium-1386-review\"\u003ehere\u003c\/a\u003e\u003c\/em\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003ch4 data-mce-fragment=\"1\"\u003eSpecifications\u003c\/h4\u003e\n\u003cul data-mce-fragment=\"1\" class=\"ui-list ui-list-main\"\u003e\n\u003cli data-mce-fragment=\"1\" class=\"ui-list_item\"\u003e\n\u003cspan data-mce-fragment=\"1\" class=\"ui-list-title\"\u003eVolume\u003c\/span\u003e\u003cspan data-mce-fragment=\"1\" class=\"ui-list-info\"\u003eSmall 2.1L, Medium 3.3L, Large 4.8L\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\" class=\"ui-list_item\"\u003e\n\u003cspan data-mce-fragment=\"1\" class=\"ui-list-t | 9,"price_min":3499,"price_max":3499,"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":42514860802274,"title":"Small - 2.1 Liter","option1":"Small - 2.1 Liter","option2":null,"option3":null,"sku":"BAPPFP1X","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Passport Bike Packing Frame Bags - Small - 2.1 Liter","public_title":"Small - 2.1 Liter","options":["Small - 2.1 Liter"],"price":3499,"weight":1000,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42514860835042,"title":"Medium - 3.3 Liter","option1":"Medium - 3.3 Liter","option2":null,"option3":null,"sku":"BAPPFP2X","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Passport Bike Packing Frame Bags - Medium - 3.3 Liter","public_title":"Medium - 3.3 Liter","options":["Medium - 3.3 Liter"]," | 1645566518","\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-02-22at21.45.19.png?v=1645566518","\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-02-22at21.45.28.png?v=1645566518"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-02-22at21.44.47.png?v=1645566518","options":["Size"],"media":[{"alt":null,"id":29317958074594,"position":1,"preview_image":{"aspect_ratio":1.364,"height":802,"width":1094,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-02-22at21.44.47.png?v=1645566518"},"aspect_ratio":1.364,"height":802,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-02-22at21.44.47.png?v=1645566518","width":1094},{"alt":null,"id":29317958107362,"position":2,"preview_image":{"aspect_ratio":1.519,"height":720,"width":1094,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-02-22at21.44.56.png?v=1645566518"},"aspect_ratio":1.519,"height":720,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\|||||||||||
| ]; 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 | w 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 && inype === '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 maxRetries = 10; const retryDela | <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-l | order:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#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- | abel{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-rocket-preorder-countdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@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:n-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}} | |||||||||||
| < | 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');">WHEELBASE | ||||||||||||||
| 400< | |||||||||||||||

| HEIGHT/INCHES82 Newington Road | Edinburgh||||||||
|---|---|---|---|---|---|---|---|---|
| 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 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,"ins48cmert_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_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_contain | er":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/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_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,"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,4393612410950cm026,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,43938308653282,43938308718818,43938308751586,43938308784354,43938308817122,43938322612450,43938322645218,43938322677986,43981336051938,43981336084706,43981336117474,43981336150242,43981345587426,43981345620194,43981345652962,43981345685730,43981357580514,43981357613282,43981362462946,43981362495714, | 43981362528482,43981369016546,43981369049314,43981374914786,43981374947554,43981374980322,43981392904418,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140302827746,44140302893282,44140317016290,44155590508770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,5563 8316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2025-12-15T14:52:15Z","market_locations_enabled":false,"market_id":382140642,"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-15T14:53:22Z","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-15T14:53:22Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569933140351,55569712382335,55569712415103,55569712480639,55569933173119,55570017616255,55569933074815,55570017550719,55569712447871,55569933107583,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","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_descr48cmiption_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_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_pric | e_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","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,"preord er_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: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","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":8055053418722,"title":"Brooks Scape Seat Bag","handle":"brooks-scape-seat-bag","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eMade for gravel and adventure cycling, the Scape Seat Bag is a bike-packing bag made from two separate elements: a holster and a 100% waterproof removable drybag (IP64 Certified). The holster is built from rugged materials to last, the holster bottom designed to act as a mudguard and protect the internal bag from any rear wheel contact. The dry bag easily compresses thanks to its air valve release mechanism to minimise bulk, and can be rolled smaller when less carrying space is needed. The daisy chain allows attachment of modular bags, and a loop is included toN/A attach a rear light. An additional clip is provided to fix the webbing and avoid any loosening. Made from waterproof material to be prepared for any ride, regardless of conditions.\u003c\/p\u003e\n\u003cp\u003eKey Benefits:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eWaterproof (IP64 Certified and 50,000mm hydrostatic head rating)\u003c\/li\u003e\n\u003cli\u003eLasting performance\u003c\/li\u003e\n\u003cli\u003ePractical functionality\u003c\/li\u003e\n\u003cli\u003eAdaptable \u0026amp; Versatile\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eHolster: \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eLateral reflective logo\u003c\/li\u003e\n\u003cli\u003ePlastic buckles with cam lock\u003c\/li\u003e\n\u003cli\u003eAluminium hook to fix the dry bag into the holster\u003c\/li\u003e\n\u003cli\u003eVertical daisy chain for extra bags attachment\u003c\/li\u003e\n\u003cli\u003eReinforced fabric at all points of contact to the seat and whe | el \u003c\/li\u003e\n\u003cli\u003eDryhole to drain any water drops or condensation\u003c\/li\u003e\n\u003cli\u003eNylon webbing\u003c\/li\u003e\n\u003cli\u003eLoop for mounting a rear light\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eDryBag:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e420D Nylon fully welded\u003c\/li\u003e\n\u003cli\u003eWaterproof (IP64 Certified)\u003c\/li\u003e\n\u003cli\u003eRoll closure \u003c\/li\u003e\n\u003cli\u003eReflective print\u003c\/li\u003e\n\u003cli\u003eAir pressure valve to minimize the space\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eMaterials:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eHolster: \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ePolyester 600D\u003c\/li\u003e\n\u003cli\u003ePVC Free\u003c\/li\u003e\n\u003cli\u003ePFC Free\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eDryBag:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e420D Nylon fully welded\u003c\/li\u003e\n\u003cli\u003ePVC Free\u003c\/li\u003e\n\u003cli\u003ePFC Fr ee\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDimensions:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eVolume: 8-10L \u003c\/li\u003e\n\u003cli\u003eWidth: 40-60cm \u003c\/li\u003e\n\u003cli\u003eHeight: 18cm \u003c\/li\u003e\n\u003cli\u003eDepth: 14cm \u003c\/li\u003e\n\u003cli\u003eWeight: 500g \u003c\/li\u003e\n\u003cli\u003eMaximum Load: 3kg\u003c\/li\u003e\n\u003cli\u003eDry Bag: 62cmx32cm\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2024-12-08T20:03:48+00:00","created_at":"2023-03-18T10:41:34+00:00","vendor":"ProjektRide","type":"Apparel \u0026 Accessories","tags":["Bags and Transportation","Bike Packing","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":13499,"price_min":13499,"price_max":13499,"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":43935991955682,"title":"Black","option1":"Black","option2":null,"option3":null,"sku":"BSB03PLA00401","requires_shipping":true,"taxable":true,"featured_image":{"id":39096216748258,"product_id":8055053418722,"position":7,"created_at":"2023-03-18T10:41:34+00:00","updated_at":"2023-03-18T10:41:38+00:00","alt":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/36868-pm.png?v=1679136098","variant_ids":[43935991955682]},"available":true,"name":"Brooks Scape Seat Bag - Black","public_title":"Black","options":["Black"],"price":13499,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31694623572194,"position":7,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/36868-pm.png?v=1679136098"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43935991988450,"title":"Mud Green","option1":"Mud Green","option2":null,"option3":null,"sku":"BSB03PLA00402","requires_shipping":true,"taxable":true,"featured_image":{"id":390962XS16781026,"product_id":8055053418722,"position":1,"created_at":"2023-03-18T10:41:34+00:00","updated_at":"2023-03-18T10:41:38+00:00","alt":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30200-pm.png?v=1679136098","variant_ids":[43935991988450]},"available":true,"name":"Brooks Scape Seat Bag - Mud Green","public_title":"Mud Green","options":["Mud Green"],"price":13499,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31694623375586,"position":1,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30200-pm.png?v=1679136098"}},"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/30200-pm.png?v=1679136098","\/\/projektride.co.uk\/cdn\/shop\/products\/30203-pm.png?v=1679136097","\/\/projektride.co.uk\/cdn\/shop\/products\/30199-pm.png?v=1679136098","\/\/projektride.co.uk\/cdn\/shop\/products\/30202 | -pm.png?v=1679136096","\/\/projektride.co.uk\/cdn\/shop\/products\/30201-pm.png?v=1679136097","\/\/projektride.co.uk\/cdn\/shop\/products\/36867-pm.png?v=1679136097","\/\/projektride.co.uk\/cdn\/shop\/products\/36868-pm.png?v=1679136098","\/\/projektride.co.uk\/cdn\/shop\/products\/36869-pm.png?v=1679136106","\/\/projektride.co.uk\/cdn\/shop\/products\/36870-pm.png?v=1679136098","\/\/projektride.co.uk\/cdn\/shop\/products\/36871-pm.png?v=1679136097"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/30200-pm.png?v=1679136098","options":["Color"],"media":[{"alt":null,"id":31694623375586,"position":1,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30200-pm.png?v=1679136098"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30200-pm.png?v=1679136098","width":776},{"alt":null,"id":31694623408354,"position":2,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/proje||||
| olster and a 100% waterproof removable drybag (IP64 Certified). The holster is built from rugged materials to last, the holster bottom designed to act as a mudguard and protect the internal bag from any rear wheel contact. The dry bag easily compresses thanks to its air valve release mechanism to minimise bulk, and can be rolled smaller when less carrying space is needed. The daisy chain allows attachment of modular bags, and a loop is included to attach a rear light. An additional clip is provided to fix the webbing and avoid any loosening. Made from waterproof material to be prepared for any ride, regardless of conditions.\u003c\/p\u003e\n\u003cp\u003eKey Benefits:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eWaterproof (IP64 Certified and 50,000mm hydrostatic head rating)\u003c\/li\u003e\n\u003cli\u003eLasting performance\u003c\/li\u003e\n\u003cli\u003ePractical functionality\u003c\/li\u003e\n\u003cli\u003eAdaptable \u0026amp; Versatile\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eF5'0"-5'3"eatures:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eHolster: \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eLateral reflective logo\u003c\/li\u003e\n\u003cli\u003ePlastic buckles with cam lock\u003c\/li\u003e\n\u003cli\u003eAluminium hook to fix the dry bag into the holster\u003c\/li\u003e\n\u003cli\u003eVertical daisy chain for extra bags attachment\u003c\/li\u003e\n\u003cli\u003eReinforced fabric at all points of contact to the seat and wheel \u003c\/li\u003e\n\u003cli\u003eDryhole to drain any water drops or condensation\u003c\/li\u003e\n\u003cli\u003eNylon webbing\u003c\/li\u003e\n\u003cli\u003eLoop for mounting a rear light\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eDryBag:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e420D Nylon fully welded\u003c\/li\u003e\n\u003cli\u003eWaterproof (IP64 Certified)\u003c\/li\u003e\n\u003cli\u003eRoll closure \u003c\/li\u003e\n\u003cli\u003eReflective print\u003c\/li\u003e\n\u003cli\u003eAir pressure valve to minimize the space\u003c\/li\u003e\n\u003c\/ul\ | u003e\n\u003cp\u003e\u003cstrong\u003eMaterials:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eHolster: \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ePolyester 600D\u003c\/li\u003e\n\u003cli\u003ePVC Free\u003c\/li\u003e\n\u003cli\u003ePFC Free\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eDryBag:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e420D Nylon fully welded\u003c\/li\u003e\n\u003cli\u003ePVC Free\u003c\/li\u003e\n\u003cli\u003ePFC Free\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDimensions:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eVolume: 8-10L \u003c\/li\u003e\n\u003cli\u003eWidth: 40-60cm \u003c\/li\u003e\n\u003cli\u003eHeight: 18cm \u003c\/li\u003e\n\u003cli\u003eDepth: 14cm \u003c\/li\u003e\n\u003cli\u003eWeight: 500g \u003c\/li\u003e\n\u003cli\u003eMaximum Load: 3kg\u003c\/li\u003e\n\u003cli\u003eDry Bag: 62cmx32cm\u003c\/li\u003e\n\u003c\/ul\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {43935991955682 : "continue", 43935991988450 : "continue",}; window._RestockRocketConfig.variantsInventoryQuantity = {43935991955682 : parseInt("4"),43935991988450 : parseInt("4"),}; window._RestockRocketConfig.variantsPreorderCount = {43935991955682 : parseInt(""),43935991988450 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {43935991955682 : null,43935991988450 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {43935991955682 : parseInt(""),43935991988450 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {43935991955682 : null,43935991988450 : null,}; window._RestockRocketConfig.variantsShippingText = {43935991955682 : "",43935991988450 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {43935991955682 : null,43935991988450 : null,}; window._RestockRocketConfig.selected_variant_id = 43935991955682; window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = 'https://app.restockrocket.io' const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console152-160cm.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, | 26"-29"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._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._Resto66-74cmckRocketConfig.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(window._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 maxRetries = 10; const retryDelay = 500; function attemptCartCheck(attempt = 1) { if (window._RestockRocket && window._Res tockRocket.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<48-50cm 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(); } | 50cm | .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:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wra48-50cmp;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#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: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 (ma x-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@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;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-oSmallut-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}} | Small |
| 5'2"-5'7" | 157-170cm | 27"-30" | 69-76cm | 48-52cm | 50-52cm | 48-52cm | Small, Medium | Small, Medium |
| 5'6"-5'10" | 168-178cm | 29"-31" | 74-79cm | 52-54cm | 52-54cm | 52-54cm | Medium | Medium |
| 5'9"-6'0" | 175-183cm | 30"-33" | 76-84cm | 52-56cm | 54-56cm | 54-56cm | Medium, Large | Medium, Large |
| 5'11"-6'2" | 180-188cm | 32"-35" | 81-89cm | 54-58cm | 54-58cm | 54-58cm | Large, XL | Large |
| 6'1"-6'5" | 185-196cm | 33"-36" | 84-91cm | 56-58cm | 58cm | 56-58cm | XL | N/A |
Thanks for considering ProjektRide for your next purchase. All bikes are fully assembled and test rode before leaving our bike shop in Edinburgh. Please allow 5-7 days for bicycle delivery although we aim to post bikes out the same day.
If any purchases are to be made using any cycle to work schemes, please either pop into the shop or get in touch via email/phone to get the ball rolling. If you are not 100% sure with bike sizing, please feel free to contact us to double check.
All bike sales include a free running in service after 6-10 weeks.
Please get in touch with a member of the team either by phone (01313745324) or email ([email protected]) where on of the team will be more than happy to help.
ProjektRide Bike Shop Edinburgh
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.
Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.
We also have a physical store, if you are local please pop in -
ProjektRide Bike Shop Edinburgh