span class="visually-hidden">Hire Ortlieb 40L Pannier Bags> > Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable
Header Image

,"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_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,"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","<
y is empty/has no timestamps, or cached is newer // Parse dates for comparison to handle format differences (+00:00 vs .000Z) const cachedDate = new Date(cachedData.cached_at); const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null; const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate)); if (useCached) { if (Array.isArray(cachedData.plans)) { window._RestockRocketConfig.sellingPlans = cachedData.plans; // Only use disabled_plan_ids when using cached plans window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || []; console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')'); } } else { // When using old format (stale cache), don't trust disabled_plan_ids window._RestockRocketConfig.disabledSellingPlanIds = []; console.debug('[RR] Us
Terms of Service Building Your Bike From the Box
Refund policy Insure Your Bike<

hopify.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(cac
fig.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 enab
img src="//projektride.co.uk/cdn/shop/files/logo_header_2048x2048.png?v=1634060673" alt="" class="logo--footer">

QUICK LINKS

About UsBike Hire With ProjektRide

Contact Us
Blog
Track Service ProgressHere at ProjektRide, we rent out our in-house built Surly and Brothers bike packing bikes. These have been custom-built with care and attention to ensure you have an awesome and hassle-free time on your bike trip!
Building Your Bike From the Box
Insure Your Bike
Cookie Policy
Terms of Service
Refund policy#IconsRow--template--16831240536290__f0311d59-64f2-4e56-9090-3c1d25778355 { --bg: #fafafa }#IconsRow--template--16831240536290__f0311d59-64f2-4e56-9090-3c1d25778355 { --text: #333333; --text-lighten: #333333; }#IconsRow--template--16831240536290__f0311d59-64f2-4e56-9090-3c1d25778355 .icon { height: 70px; } #IconsRow--template--16831240536290__f0311d59-64f2-4e56-9090-3c1d25778355 .icons-row__icon { width: 70px; }

Servicing

Workshop Pricesimg src="//projektride.co.uk/cdn/shop/files/bike_490f99ba-a097-4bd4-9ba6-e1e4b7c61178_512x512.png?v=1690612629" alt="" class="icons-row__image">

Cycle to Work Delivery & Returns1. Choose Bike

INFORMATION

img src="//projektride.co.uk/cdn/shop/files/equipment_512x512.png?v=1690612532" alt="" class="icons-row__image">

2. Choose Equipment (Optional) 3. Pay Online or In-Store

3. Pay Online or In-Store Checkout the hire items in your basket and pay with all major credit cards, PayPal or Klarna. Payments can be made in store without going through the online shop. Please call the shop to book out in-person. Mon - Fri: 09:00 - 18:30

Checkout the hire items in your basket and pay with all major credit cards, PayPal or Klarna. Payments can be made in store without going through the online shop. Please call the shop to book out in-person.img src="//projektride.co.uk/cdn/shop/files/pay_512x512.png?v=1690612532" alt="" class="icons-row__image"> Sat: 9:00 - 16:00

Sun: Closed 3. Pay Online or In-Store 4. Wait For ConfirmationTel

4. Wait For Confirmation Wait for one of the team to confirm your booking. This is separate from the payment confirmation. A confirmation email will be sent within 24 hours, during shop opening times.

Wait for one of the team to confirm your booking. This is separate from the payment confirmation. A confirmation email will be sent within 24 hours, during shop opening times.img src="//projektride.co.uk/cdn/shop/files/confirmation_512x512.png?v=1690612532" alt="" class="icons-row__image"> 0131 374 5324

4. Wait For Confirmation 5. Collect In Store

5. Collect In Store Collect your bike in store alongside all optional equipment. Please bring a form of identification (Driver's licence or Passport) to complete the booking.82 Newington Road

Collect your bike in store alongside all optional equipment. Please bring a form of identification (Driver's licence or Passport) to complete the booking.img src="//projektride.co.uk/cdn/shop/files/collection_512x512.png?v=1690612759" alt="" class="icons-row__image"> Edinburgh

EH9 1QN

6. Ride Confident!Enjoy your bike for the hire period! The bike must be returned to the store during opening hours of the return date. <

Juan Borges Designs
.= LIQUID_CACHE_MAX_AGE) { console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`); window._RestockRocketConfig.isLiquidCacheFresh = false; } } function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no age = Date.now() - updatedAt.getTime(); if (age ]; 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; } } // Setup event listener for cart selling plan updates // This must be called before any scripts are loaded to avoid race conditions function setupCartSellingPlanUpdater(settings) { // Setup listener regardless - updateCartSellingPlans has its own guards // This ensures cleanup happens even when preorders are disabled globally // Listen for stoq:inventory-data-loaded event dispatched by api.js window.addEventListener('stoq:inventory-data-loaded', function(event) { console.debug('STOQ - Inventory data loaded, updating cart selling plans'); if (window._RestockRocket
hopify.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(cac