Bike Hire With ProjektRide
Here at ProjektRide, we rent out a range of hybrid, mountain, gravel, road, and electric bikes. These have been built with care and attention to ensure you have an awesome and hassle-free time on your bike trip!
When hiring a bike with ProjektRide, you agree to our .site-footer { --bg: #1f2324; --text: #ffffff; --text-alpha-15: rgba(255, 255, 255, 0.15); --text-alpha-60: rgba(255, 255, 255, 0.6); --text-alpha-85: rgba(255, 255, 255, 0.85); } .footer-content__logo__image { width: 170px; }Bike Hire Terms & Conditions .ue,"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":8743130759394,"title":"AtranVelo Carry AVS Box, With Carry Handles","handle":"atranvelo-carry-avs-box-with-carry-handles","description":"\u003cul class=\"description-overview\"\u003e\n\u003cli\u003eThe CARRY is a solid-sided functional basket with AVS integration. The sealed design will keep your belongings safe and dry if complemented with one of our rain covers.\u003c\/li\u003e\n\u003cli\u003eThis spacious basket also has comfortable handles for easy carrying that conveniently lock into place to prevent rattling while cycling.\u003c\/li\u003e\n\u003cli\u003eThe unique hole pattern design lets you mount it either front-facing or sideways, whatever fits your bike best.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cul cla ss=\"attributesSpecification\"\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eProduct Type\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eBaskets\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eColour\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eBlack\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eSize\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eOne size\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2024-10-26T11:36:26+01:00","created_at":"2024-10-26T11:36:26+01:00","vendor":"AtranVelo","type":"Apparel \u0026 Accessories","tags":["Basket","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":6499,"price_min":6499,"price_max":6499,"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":46081976926434,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"AV031","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"AtranVelo Carry AVS Box, With Carry Handles","public_title":null,"options":["Default Title"],"price":6499,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/av031_02.jpg?v=1729938898","\/\/projektride.co.uk\/cdn\/shop\/files\/av031_03.jpg?v=1729938898","\/\/projektride.co.uk\/cdn\/shop\/files\/av031_04.jpg?v=1729938898","\/\/projektride.co.uk\/cdn\/shop\/files\/av031_05.jpg?v=1729938898","\/\/projektride.co.uk\/cdn\/shop\/files\/av031.jpg?v=1729938898"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/av031_02.jpg?v=1729938898","options":["Title"],"media":[{"alt":null,"id":34865516773602,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/av031_02.jpg?v=1729938898"},"aspect_rat🚲 Your Adventure Starts Here! ⛰️io":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/av031_02.jpg?v=1729938898","width":1800},{"alt":null,"id":34865516806370,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/av031_03.jpg?v=1729938898"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/av031_03.jpg?v=1729938898","width":1800},{"alt":null,"id":34865516839138,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/av031_04.jpg?v=1729938898"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/av031_04.jpg?v=1729938898","width":1800},{"alt":null,"id":34865516871906,"position":4,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/av031_05.jpg?v=1729938898"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/av031_05.jpg?v=1729938898","width":1800},{"alt":null,"id":34865516904674,"position":5,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/av031.jpg?v=1729938898"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/av031.jpg?v=1729938898","width":1800}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cul class=\"description-overview\"\u003e\n\u003cli\u003eThe CARRY is a solid-sided functional basket with AVS integration. The sealed design will keep your belongings safe and dry if complemented with one of our rain covers.\u003c\/li\u003e\n\u003cli\u003eThis spacious basket also has comfortable handles for easy carrying that conveniently lock into place to prevent rattling while cycling.\u003c\/li\u003e\n\u003cli\u003eThe unique hole pattern design lets you mount it either front-facing or sideways, whatever fits your bike best.\u003c\ /li\u003e\n\u003c\/ul\u003e\n\u003cul class=\"attributesSpecification\"\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eProduct Type\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eBaskets\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eColour\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eBlack\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eSize\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eOne size\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {46081976926434 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {46081976926434 : parseInt("1"),}; window._RestockRocketConfig.variantsPreorderCount = {46081976926434 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {46081976926434 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {46081976926434 : parseInt(""),}; window._RestockRocketC
onfig.variantsPreorderMaxCountForMarket = {46081976926434 : null,}; window._RestockRocketConfig.variantsShippingText = {46081976926434 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {46081976926434 : null,}; window._RestockRocketConfig.selected_variant_id = 46081976926434; 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.scriptU rlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = 'https://app.restockrocket.io' const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no translation data in metafield // Metafield hasn't been backfilled yet - force refresh console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); return null; } // TSETTINGS_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 || No matter where you're going, here at ProjektRide, we're here to help!!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?.them e?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;Don't forget to hire equipment!
See the full range of equipment to hire here
We have partnered up with “A Wee Pedal” who provide amazing cycling tours around the historic sites of Edinburgh” Check out their site below.

Blog
Insure Your Bike
Refund policy
Workshop Prices
Email