ProjektRide Merchandise < < < Open navigation menu
< < Open search bar
<

Open search bar img src="//projektride.co.uk/cdn/shop/files/MediumBagel-1000dBlack_e93e5742-98ec-49fc-a228-4e6b779f3781_1800x1800-removebg-preview_2048x2048.png?v=1747481439" alt="HIRE - BIKE PACKING BUNDLE" class="mfp-zoom-in-cur" id="65817992954239"> < Close search barClose search barimg src="//projektride.co.uk/cdn/shop/files/71BUhqY7apL._AC_UF894_1000_QL80_-removebg-preview_2048x2048.png?v=1747481437" alt="HIRE - BIKE PACKING BUNDLE" class="mfp-zoom-in-cur" id="65817992462719">
span>{{ it.product.badgeText | safe }}Home < <
<
Header Image
<
SELL
RIDE CONFIDENT
  • #ProductTemplate--template--15326745395426__main { background: #ffffff; } .shop-pay-terms { --payment-terms-background-color: #ffffff }
  • label for="quantity--template--15326745395426__main">Quantity<
> input type="number" name="quantity" id="quantity--template--15326745395426__main" value="1" min="1"> <

Quantity:

1
  • Decrease quantity Increase quantity
label for="quantity--template--15326745395426__main">Quantity>
1 1+

a our multi-hire day bikes?expedition, Choose our bikepacking kit add-on at
no extra cost and get fully equipped for the journey ahead. With this option, you’ll receive handlebar bag, a saddle bag, and a equipped <We for We <also the also journey include

a Your <saddle kit <bagwill , come your you're <trip.prepared < for basic We basic exploring. bike Whether hire, Whether you're so you're heading you’re heading off never off for caught for off a

guard.

Your kit will multi-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)">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)">day > > expedition, we've , tyre levers, and a multitool, ensuring you're prepared for basic roadside the road <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');">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');">with > > confidence!

    []<

    <

    I'm looking to find out more information about a product, where can I find this?I'm looking to find out more information about a product, where can I find this? { "@context": "http://schema.org/", "@type": "Product", "name": "HIRE - BIKE PACKING BUNDLE", "url": "https:\/\/projektride.co.uk\/products\/hire-bike-packing-bundle","image": [ "https:\/\/projektride.co.uk\/cdn\/shop\/files\/Yourparagraphtext_2245x.png?v=1747481130" ],"description": "Planning a bikepacking adventure with one of our hire bikes?Choose our bikepacking kit add-on at no extra cost and get fully equipped for the journey ahead. With this option, you’ll receive two spacious panniers, a handlebar bag, a saddle bag, and a frame bag – perfect for carrying everything you need for your trip.\nWe also include essential tools and spares with every bike hire, so you’re never caught off guard. Your kit will come with inner tubes, tyre levers, and a multitool, ensuring you're prepared for basic roadside repairs and maintenance while you're out exploring.\nWhether you're heading off for a weekend escape or a multi-day expedition, we've got your back. Just select the bikepacking kit when booking your hire, and hit the road with confidence!\n \nProjektRide Bike Hire Edinburgh.\n\n ","brand": { "@type": "Thing", "name": "ProjektRide" },"gtin8": "","offers": [{ "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 0.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/hire-bike-packing-bundle?variant=55470310752639" } ] }
    £0.00

    eIn_m1hgl_8\"\u003etrip.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-end=\"686\" data-start=\"413\"\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eWe \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ealso \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003einclude \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eessential \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003etools \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eand \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003espares \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ewith \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eevery \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ebike \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ehire, \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eso \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eyou’re \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003enever \u003c\/spa

    eIn_m1hgl_8\"\u003e, \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eand \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ea \u003c\/span\u003e\u003cstrong data-end=\"589\" data-start=\"576\"\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003emultitool\u003c\/span\u003e\u003c\/strong\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003e, \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eensuring \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eyou're \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eprepared \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003efor \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ebasic \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eroadside \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003erepairs \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eand \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003emaintenance \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ewhil

    "_fadeIn_m1hgl_8\"\u003eday \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eexpedition, \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ewe've \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003egot \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eyour \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eback. \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eJust \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eselect \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ethe \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ebikepacking \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ekit \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ewhen \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ebooking \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eyour \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003ehire, \u003c\/span\u003e\u003cspan class=\"_fadeIn_m1hgl_8\"\u003eand \u0
    = {55470310752639 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {55470310752639 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {55470310752639 : null,}; window._RestockRocketConfig.variantsShippingText = {55470310752639 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {55470310752639 : null,}; window._RestockRocketConfig.selected_variant_id = 55470310752639; 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/019cd40b-736e-74a5-adbe-431365bfd910/restockrocket-1-465/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019cd40b-736e-74a5-adbe-431365bfd910/restockrocket-1-465/assets/restockrocket-collection.js' w
    eAge
    • 0) { console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else if (liquidCacheAge age = Date.now() - updatedAt.getTime(); if (age
    .riantsPreorderMaxCountForMarket = {55470310752639 : null,}; window._RestockRocketConfig.variantsShippingText = {55470310752639 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {55470310752639 : null,}; window._RestockRocketConfig.selected_variant_id = 55470310752639; 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/019cd40b-736e-74a5-adbe-431365bfd910/restockrocket-1-465/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019cd40b-736e-74a5-adbe-431365bfd910/restockrocket-1-465/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf(
    <<
    !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[keyled for ${window._RestockRocketConfig.pageType}`); } // Dispatch custom event when app is loaded // Cart selling plan updates will be triggered by stoq:inventory-data-loaded event const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings, preorderEnabled: settings.preorder_enabled } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } } ]; 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 && 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.S 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(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}`); // 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._RestockRocketCon 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