AmflowHome
Close

This site has limited support for your browser. We recommend switching to Edge, Chrome, Safari, or Firefox. ServicesServicesServices Hire

YetiHire
See MoreSee MoreSee MoreHome
Early RiderHybrid / City BikesEarly Rider Congratulations! Your order qualifies for free shippingEarly Rider
Cart Congratulations! Your order qualifies for free shipping
AccessoriesSpend Second-Hand Bikes Second-Hand Bikes Maintenance Second-Hand Bikes
Electric Bikes Congratulations! Your order qualifies for free shipping
Custom BuildsFramesCustom Builds Custom Builds

Custom Builds for sale Custom Builds for sale Contact Us Custom Builds for sale
<
<1<
img src="//projektride.co.uk/cdn/shop/files/PRSBA0064_2048x2048.webp?v=1747481972" alt="HIRE - BIKE PACKING BUNDLE" class="mfp-zoom-in-cur" id="65818065994111">
<
<
£0.00
Submit
window.appBlockPlacements ||= []; if (window.klarnaAppBlocksManager) { window.klarnaAppBlocksManager.push({ productVariants: [{"id":55470310752639,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"","requires_shipping":false,"taxable":true,"featured_image":null,"available":true,"name":"HIRE - BIKE PACKING BUNDLE","public_title":null,"options":["Default Title"],"price":0,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}], templateName: 'product', dataKey: 'top-strip-promotion-badge', storefrontCurrency: 'GBP', storefrontCountry: 'GB', storefrontLanguage: 'en', shopLocale: 'en', shopDomain: 'projektride.co.uk', variantPrice: '0', cartPrice: '0', selector: 'shopify-osm-ASUorQUNvQS9uckFQO__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); } else { window.appBlockPlacements.push({ productVariants: [{"id":55470310752639,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"","requires_shipping":false,"taxable":true,"featured_image":null,"available":true,"name":"HIRE - BIKE PACKING BUNDLE","public_title":null,"options":["Default Title"],"price":0,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}], templateName: 'product', shopLocale: 'en', dataKey: 'top-strip-promotion-badge', storefrontCurrency: 'GBP', storefrontCountry: 'GB', storefrontLanguage: 'en', shopDomain: 'projektride.co.uk', variantPrice: '0', cartPrice: '0', selector: 'shopify-osm-ASUorQUNvQS9uckFQO__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); }
Decrease quantity
Increase quantity

label for="quantity--template--15326745395426__main">Quantity

>
Submit window.appBlockPlacements ||= []; if (window.klarnaAppBlocksManager) { window.klarnaAppBlocksManager.push({ productVariants: [{"id":55470310752639,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"","requires_shipping":false,"taxable":true,"featured_image":null,"available":true,"name":"HIRE - BIKE PACKING BUNDLE","public_title":null,"options":["Default Title"],"price":0,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}], templateName: 'product', dataKey: 'top-strip-promotion-badge', storefrontCurrency: 'GBP', storefrontCountry: 'GB', storefrontLanguage: 'en', shopLocale: 'en', shopDomain: 'projektride.co.uk', variantPrice: '0', cartPrice: '0', selector: 'shopify-osm-ASUorQUNvQS9uckFQO__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); } else { window.appBlockPlacements.push({ productVariants: [{"id":55470310752639,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"","requires_shipping":false,"taxable":true,"featured_image":null,"available":true,"name":"HIRE - BIKE PACKING BUNDLE","public_title":null,"options":["Default Title"],"price":0,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}], templateName: 'product', shopLocale: 'en', dataKey: 'top-strip-promotion-badge', storefrontCurrency: 'GBP', storefrontCountry: 'GB', storefrontLanguage: 'en', shopDomain: 'projektride.co.uk', variantPrice: '0', cartPrice: '0', selector: 'shopify-osm-ASUorQUNvQS9uckFQO__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); } receive two spacious panniersProduct Details, Planning a handlebar bag, a saddle bag, and a frame bagperfect for carrying span class="visually-hidden">Hire Lazer Compact Helmetyou > > > need > > > for your trip.Hire Lazer Compact HelmetHire Lazer Compact HelmetHire Lazer Compact Helmet We £0.00£0.00£0.00also include BlackBlack

Blackessential

tools and spares Hire Ortlieb 40L Pannier BagsHire Ortlieb 40L Pannier BagsHire Ortlieb 40L Pannier Bagswith every bike hire, a class="product__media product__media--featured" href="/products/hire-ortlieb-40l-pannier-bags" title="Hire Ortlieb 40L Pannier Bags" aria-label="Hire Ortlieb 40L Pannier Bags" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_600x.jpg?v=1741085512)"> a class="product__media product__media--featured" href="/products/hire-ortlieb-40l-pannier-bags" title="Hire Ortlieb 40L Pannier Bags" aria-label="Hire Ortlieb 40L Pannier Bags" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_600x.jpg?v=1741085512)"> a class="product__media product__media--featured" href="/products/hire-ortlieb-40l-pannier-bags" title="Hire Ortlieb 40L Pannier Bags" aria-label="Hire Ortlieb 40L Pannier Bags" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_600x.jpg?v=1741085512)"> so span class="visually-hidden">Hire Ortlieb 40L Pannier Bagsspan class="visually-hidden">Hire Ortlieb 40L Pannier Bagsspan class="visually-hidden">Hire Ortlieb 40L Pannier Bagsyou’re > > > never > > > caught off guard. Hire Ortlieb 40L Pannier BagsHire Ortlieb 40L Pannier BagsHire Ortlieb 40L Pannier BagsYour kit £0.00£0.00£0.00will come with inner Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cableHire Kryptolok Standard U-Lock & 4 foot Kryptoflex cableHire Kryptolok Standard U-Lock & 4 foot Kryptoflex cabletubes , tyre leversa class="product__media product__media--featured" href="/products/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire" title="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" aria-label="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_600x.png?v=1691610428)"> a class="product__media product__media--featured" href="/products/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire" title="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" aria-label="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_600x.png?v=1691610428)"> a class="product__media product__media--featured" href="/products/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire" title="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" aria-label="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_600x.png?v=1691610428)"> , span class="visually-hidden">Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cablespan class="visually-hidden">Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cablespan class="visually-hidden">Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cableand > > > a > > > multitool , ensuring Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cableHire Kryptolok Standard U-Lock & 4 foot Kryptoflex cableHire Kryptolok Standard U-Lock & 4 foot Kryptoflex cableyou're prepared £0.00£0.00£0.00for basic roadside repairs and HIRE - BIKE PACKING BUNDLE maintenance while you're out a class="product__media product__media--featured" href="/products/hire-bike-packing-bundle" title="HIRE - BIKE PACKING BUNDLE" aria-label="HIRE - BIKE PACKING BUNDLE" style="background-image: url(//projektride.co.uk/cdn/shop/files/Yourparagraphtext_600x.png?v=1747481130)"> exploring.span class="visually-hidden">HIRE - BIKE PACKING BUNDLE> >

div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_1296x_d1ffd242-63bc-4a9f-85e2-400f274532d7_600x.jpg?v=1747481423)">> HIRE - BIKE PACKING BUNDLE £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');">> ProjektRideBuy Sell Ride Confident FAQQuestions and answers

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 (
    ) where on of the team will be more than happy 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[keyn\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ecaught \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eoff \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eguard. \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eYour \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ekit \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ewill \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ecome \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ewith \u003c\/span\u003e\u003cstrong data-end=\"551\" data-start=\"536\"\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003einner \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003etubes\u003c\/span\u003e\u003c\/strong\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003e, \u003c\/span\u003e\u003cstrong data-end=\"568\" data-start=\"553\"\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003etyre \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003elevers\u003c\/span\u003e\u003c\/strong\u003e\u003cspan class=\"_fadEH9 1QN 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 && 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.Se \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eyou're \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eout \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eexploring.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-end=\"873\" data-start=\"688\"\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eWhether \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eyou're \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eheading \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eoff \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003efor \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ea \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eweekend \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eescape \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eor \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ea \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003emulti-\u003c\/span\u003e\u003cspan class=\ ]; 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 © 2026, .