Please get in touch with a member of the team either by phone (

01313745324

) or email (
[email protected]
enabled but no translation data in cache, fetching fresh'); return null; } // Translations object exists in metafield - cache is valid // If current locale isn't translated, applyTranslations will gracefully use default locale from base fields if (window._RestockRocketConfig.normalizedLocale && !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } // Don't return null - continue using cache even for untranslated locales } const updatedAt = new Date(settings.updated_at); if (isNaN(updatedAt.getTime())) { console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const age = Date.now() - updatedAt.getTime(); if (age
  • SETTINGS_CACHE_DURATION) { console.debug('STOQ - settings changed recently, skgs.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 !== '') { s 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.Shopif
    < img src="//projektride.co.uk/cdn/shop/files/aer018_04_2048x2048.jpg?v=1729934828" alt="Aeroe 12 Litre Dry Bag Dry" class="mfp-zoom-in-cur" id="34865407557858">
  • Parts & Components
    < 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)">
  • < span class="visually-hidden">Hire Ortlieb 40L Pannier Bags
  • Contact Us Hire Ortlieb 40L Pannier Bags
  • Finance£0.00
  • < 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)">
    Life Systems Pocket First Aid Kit - HIRE
    Congratulations! Your order qualifies for free shipping

    Life Systems Pocket First Aid Kit - HIRE
    £0.00
    Header ImageNew Bikes
    See More
    Road / Gravel / Touring Bikes
    Hybrid / City Bikes
    Kids Bikes

    Amflow

    Yeti

    Ridgeback
    Brother
    Genesis
    Enigma
    Frog Kona
    Cart UTO (ex Eovolt) Close
    Early Rider
    Spend
    Shop All Second-Hand See More
    Road / Gravel / Touring Bikes
    Custom Builds

    Hybrid / City Bikes

    Product Details Cycle To Work Schemes

    ALTURA NEVIS NIGHTVISION MEN'S JACKET Mountain Bikes

    OUR POPULAR COMMUTING AND CITY CYCLING JACKET THAT PROVIDES PROTECTION FROM THE ELEMENTS AND VISIBILITY FOR THE URBAN CYCLIST Insure Your Bike

    Electric Bikes

    FEATURES

      Kids Bikes
    • Fully waterproof Parts & Components
    • Reflective detailingFramesSee More
    • Large zippered chest pocket plus 2 side-zip pockets
    • 10/10 waterproof and breathability
    • Shop by BrandBrands
    • Relaxed fit See More
    • Gloria
    • 100% Polyester
    TrekHope

    If any more information is needed, please don't hesitate to get in touch with one of the team:

    ProjektRide Bike shop Edinburgh.AmflowEnve

    [email protected]

    Yeti

    T- 01313745324 Cockpit

    See More

     Ridgeback

    BrotherHandlebars
    Frog
    Headsets

    FAQ

    Questions and answersEssentials

    See More
    Brakes
    • Complete Brakes
    • Create account
    Search
    Finishing Kit
    Tyres