Enigma
Product DetailsHire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable
The District+ 4 is a sleek and capable city e-bike with rugged durability and top-end comfort. Its frame semi-integrates the batteries inside the downtube and comes with four battery capacity options ranging from 400 to 800 Wh, so you can choose what's right for your commute. This District+ features coaster-actuated hydraulic disc brakes for effortless and reliable stopping power. Bosch's new smart system allows your bike to pair with your smartphone for tracking activities, mapping rides and more.
£0.00Frog*Please note – spec applies to all sizes unless listed separately
KonaFrameset
Surly
#FeaturedImage--template--15326745395426__1645734801adfd4c07 { --overlay-opacity: 0.2; }
| Frame | High-performance hydroformed alloy, Removable Integrated Battery, internal cable routing, Motor Armour, post-mount discProjektRideSecond-Hand Bikes | Buy Sell Ride Confident
|---|---|
| Fork | FAQSR Suntour NVX30, coil spring, preload adjuster, 100 mm QR, 60 mm travelQuestions and answers | Custom Builds
| ChargerKids Bikes | CockpitBosch standard 4A, 230V, smart system | HandlebarsFramesWorking Hours
|---|---|
| ControllerStems Sat: 9:00 - 16:00 | Shop by Brand Sun: ClosedBosch Intuvia 100, smart system See More | Grips & Bar-Tape
| ComputerHeadsetsGloria | 0131 374 5324Bosch LED remote, smart system | Trek
| Motor Amflow | Complete Brakes 82 Newington RoadBosch Performance Line, 250 W, 75 Nm, 20 mph (25 km/h in Europe) Edinburgh | YetiEH9 1QN
Brake Spares
Forks
Singular
Front Suspension
Enigma
© 2026,
Workshop Prices| Shifter .Frog | Shimano Nexus C7000, 5-speed Website by | Juan Borges DesignsKona
|---|---|
| *CrankTyres Surly |
Size:TubesUTO (ex Eovolt)
XS, S, M
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-12-28T14:44:23.508Z","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_butto n_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":{"disableDebugLoggingForNonPreorderItem":false},"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,"foProWheel alloy, 170 mm lengthTubelessEarly Riderrm_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_allowed_countries":[],"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,"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","inse rt_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"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\"]","preo | rder_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_in
sert_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,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":0,"market_setup_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":null,"preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":null,"countdown_timer_i
| _selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorde
See Morer_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#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,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_colorSize:Seat Posts & Clamps
":"#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,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}];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":8743102644450,"title":"Aeroe Spider Rear Pannier Rack","handle":"aeroe-spider-rear-pannier-rack","description":"\u003cp\u003eThe newest addition to our Spider series, this rack is the base layer of your aeroe system and designed to be compatible with any brand’s pannier bags. With in-built top rails and a lower anti-sway pannier catch, your panniers are kept secure enough for both weekday commutes and weekend trails. Feel the freedom of taking the long way home from your commute, or on the trails, with the
peace of mind your cargo is safe no matter the bumps on the way. The base rack is also compatible with all other aeroe accessories. Swap out your pannier receiver for a Spider Rear Cradle or Quick Mount Pod for a weekend ride, or transfer the quick release rack between bikes, and you’re ready to ride your way\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake any eMTB or MTB bike commute or adventure-ready, no need for inbuilt mounts or fiddly axle mounting\u003c\/li\u003e\n\u003cli\u003eCompatible with any brand of pannier you want to carry\u003c\/li\u003e\n\u003cli\u003ePositions to work with small, full suspension frames and dropper posts\u003c\/li\u003e\n\u003cli\u003eMade for everyday commuting as well as tough mountain biking\u003c\/li\u003e\n\u003cli\u003eSwap out accessories and cradles to suit the adventure ahead\u003c\/li\u003e\n\u003cli\u003eYour gear and rack are secure and stable, no matter the ride\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003ciframe title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/jDjMzBYUQSU?si=qn77iyHY14wJ9-BH\" height=\"315\" width=\"560\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" frameborder=\"0\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e","published_at":"2024-10-26T09:51:05+01:00","created_at":"2024-10-26T09:51:05+01:00","vendor":"Aeore","type":"Apparel \u0026 Accessories","tags":["Rear Rack","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":46081901887714,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"AERRACKRPR","requires_shipping":true,"taxable":true,"featured_image":null,"L, XL
available":true,"name":"Aeroe Spider Rear Pannier Rack","public_title":null,"options":["Default Title"],"price":13499,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_01.jpg?v=1729932602","\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_02.jpg?v=1729932602","\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_03.jpg?v=1729932602","\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_04.jpg?v=1729932602","\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_05.jpg?v=1729932602","\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_06.jpg?v=1729932602","\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_07.jpg?v=1729932602","\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr.jpg?v=1729932602"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_01.jpg?v=1729932602","options":["Title"],"media":[{"alt":null,"id":34865326719202,"position": 1,"preview_image":{"aspect_ratio":1.5,"height":1200,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_01.jpg?v=1729932602"},"aspect_ratio":1.5,"height":1200,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_01.jpg?v=1729932602","width":1800},{"alt":null,"id":34865326751970,"position":2,"preview_image":{"aspect_ratio":1.495,"height":1204,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_02.jpg?v=1729932602"},"aspect_ratio":1.495,"height":1204,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_02.jpg?v=1729932602","width":1800},{"alt":null,"id":34865326784738,"position":3,"preview_image":{"aspect_ratio":1.5,"height":1200,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_03.jpg?v=1729932602"},"aspect_ratio":1.5,"height":1200,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_03.jpg?v=1729932602","width":1800},{"alt":null,"id":34865326817506,"position":4,"previeProWheel alloy, 175 mm lengthPedalsShop All Second-Handw_image":{"aspect_ratio":1.55,"height":1161,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_04.jpg?v=1729932602"},"aspect_ratio":1.55,"height":1161,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_04.jpg?v=1729932602","width":1800},{"alt":null,"id":34865326850274,"position":5,"preview_image":{"aspect_ratio":1.5,"height":1200,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_05.jpg?v=1729932602"},"aspect_ratio":1.5,"height":1200,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_05.jpg?v=1729932602","width":1800},{"alt":null,"id":34865326883042,"position":6,"preview_image":{"aspect_ratio":1.5,"height":1200,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_06.jpg?v=1729932602"},"aspect_ratio":1.5,"height":1200,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_06.jpg?v=1729932602","width":1800},{"alt":null,"id":34865326915810,"position":7,"preview_image":{"aspect_ratio":1.5,"height":1200,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_07.jpg?v=1729932602"},"aspect_ratio":1.5,"height":1200,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr_07.jpg?v=1729932602","width":1800},{"alt":null,"id":34865326948578,"position":8,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr.jpg?v=1729932602"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/aerrackrpr.jpg?v=1729932602","width":1800}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eThe newest addition to our Spider series, this rack is the base layer of your aeroe system and designed to be compatible with any brand’s pannier bags. With in-built top rails and a lower anti-sway pannier catch, your panniers are kept secure enough for both weekday commutes and weekend trails. Feel the freedom of taking the long way h ome from your commute, or on the trails, with the peace of mind your cargo is safe no matter the bumps on the way. The base rack is also compatible with all other aeroe accessories. Swap out your pannier receiver for a Spider Rear Cradle or Quick Mount Pod for a weekend ride, or transfer the quick release rack between bikes, and you’re ready to ride your way\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake any eMTB or MTB bike commute or adventure-ready, no need for inbuilt mounts or fiddly axle mounting\u003c\/li\u003e\n\u003cli\u003eCompatible with any brand of pannier you want to carry\u003c\/li\u003e\n\u003cli\u003ePositions to work with small, full suspension frames and dropper posts\u003c\/li\u003e\n\u003cli\u003eMade for everyday commuting as well as tough mountain biking\u003c\/li\u003e\n\u003cli\u003eSwap out accessories and cradles to suit the adventure ahead\u003c\/li\u003e\n\u003cli\u003eYour gear and rack are secure and stable, no matter the ride\u003c\/li\u003 | e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003ciframe title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/jDjMzBYUQSU?si=qn77iyHY14wJ9-BH\" height=\"315\" width=\"560\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" frameborder=\"0\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {46081901887714 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {46081901887714 : parseInt("1"),};
window._RestockRocketConfig.variantsPreorderCount = {46081901887714 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {46081901887714 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {46081901887714 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {46081901887714 : null,};
window._Restoc
kRocketConfig.variantsShippingText = {46081901887714 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {46081901887714 : null,};
window._RestockRocketConfig.selected_variant_id = 46081901887714;
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/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
window._RestockRocketConfig.host = 'https://app.rest|
| !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[keyChainringGears & DrivetrainSee More]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translation | s; return settings; } catch (e) { console.debug('STOQ - error applying translations:', e); return settings; } } // Setup event listener for cart selling plan updates // This must be called before any scripts are loaded to avoid race conditions function setupCartSellingPlanUpdater(settings) { if (!settings || !settings.preorder_enabled) { return; } // Listen for stoq:preorder-api-ready event dispatched by preorder.js window.addEventListener('stoq:preorder-api-ready', function(event) { console.debug('STOQ - Preorder API ready, updating cart selling plans'); 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); }); } }); } // 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._ProWheel 38T narrow/wide steel, w/alloy guardComponents RestockRocketConfig.pageType}`); // Setup cart selling plan updater BEFORE loading any scripts to avoid race conditions setupCartSellingPlanUpdater(settings); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); }) if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preord | er_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}`); } // Dispatch custom event when app is loaded // Cart selling plan updates will be triggered by stoq:preorder-api-ready event const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enabl e_app, settings: settings, preorderEnabled: settings.preorder_enabled } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } }
| Cassette .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: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;paddin | g: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 Custom Build Inspiration -content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14px;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-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-righShimano C7000 sprocket for Nexus, 27T t.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}.restock-rocket-preorder-progress-bar{padding:12px 15px;margin-bottom:20px;font-family:inherit;}.restock-rocket-preorder-progress-bar .preorder-progress-text{margin-bottom:8px;}.restock-rocket-preorder-progress-bar .preorder-progress-bar-row{display:flex;align-items:center;gap:10px;}.restock-rocket-preorder-progress-bar .preorder-progress-track{flex:1;height:12px;overflow:hidden;}.restock-rocket-preorder-progress-bar |
| ChainComplete Wheels | ServicesShimano HG40, 6/7/8-speed | See More
| Workshop | See More
Book a Service
Track Your Service
OtherSee More
Forks
| Custom Builds | |
|---|---|
| Insure Your Bike | |
| Parts & Components | See More |
| Brands | See More|
| Hope |
Enve
| Cockpit
|
Handlebars
Stems |
|
| Headsets | |
| Brakes | See More
Trek Loft 7i EQ Step-Thru – ProjektRide
Complete Brakes |
|
Brake Pads
Brake Spares |
| < | << | <
|---|---|
| < < | |
Custom Builds
Components
Custom Build Inspiration
Black
Complete Wheels
span class="visually-hidden">Hire Ortlieb 40L Pannier Bags
FAQ
Questions and answersServices a class="product__media product__media--featured" href="/collections/all-products/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)">
>
Tubeless
>
See More- Tools & Maintenance WorkshopHire Ortlieb 40L Pannier BagsClothing and Protection
- a class="product__media product__media--featured" href="/collections/all-products/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)"> >
img src="//projektride.co.uk/cdn/shop/files/aerrackrpr_01_2048x2048.jpg?v=1729932602" alt="Aeroe Spider Rear Pannier Rack" class="mfp-zoom-in-cur" id="34865326719202">

