Handlebars

Stems

; 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 { Decrease quantity
Increase quantity
> input type="number" name="quantity" id="quantity--template--15326745395426__main" value="1" min="1">
Submit
Suitable for 4 to 5 years with a recommended inside leg of 40cm-53cm    
The data obtained during our child-specific frame design research has helped us create a helpful kids’ bike sizing app. View our 
bike sizing guide
local stockists
 about our children’s bike range. 
Header ImagePlease note, that while not pictured, all Frog First Pedal bikes are supplied with chain guards installed to comply with ISO8098 safety standards.
 

"1\"\u003e\u003cspan data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eGet sized for cycling success\u003c\/strong\u003e\u003c\/span\u003e \u003cbr data-mce-fragment=\"1\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eThe Frog 40 first pedal bike is suitable for 3 to 4 years with a recommended inside leg measurement of 36cm-46cm.\u003c\/span\u003e \u003cbr data-mce-fragment=\"1\"\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e \u003cbr data-mce-fragment=\"1\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eOne of the biggest temptations is to buy a child's first bike that they will grow into. However, this will likely have the opposite effect and put your child off bikes and cycling altogether! Another common mistake is to purchase a budget kids' bike but these models are often as heavy as a child which can lead to frustration at not being able to cycle. That’s why Frog bikes are lightweight and designed to specifically accommodate the anatomy of children.\u003c\/span\ul,54939168473471 : null,54939168506239 : null,54939168539007 : null,}; window._RestockRocketConfig.variantsShippingText = {54939168375167 : "",54939168407935 : "",54939168440703 : "",54939168473471 : "",54939168506239 : "",54939168539007 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {54939168375167 : null,54939168407935 : null,54939168440703 : null,54939168473471 : null,54939168506239 : null,54939168539007 : null,}; window._RestockRocketConfig.selected_variant_id = 54939168407935; 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/019af0d1-c518-7a22-bdbf-9ceff49063ad/restockrocket-1-402/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019af0d1-c518-7a22-bdbf-9ceff4
ld hasn't been backfilled yet - force refresh console.debug('STOQ - multi-language 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 (Brake Pads
< !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
Forks .restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#ebebeb;height:25px;line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-
Tubes
Saddles Pedals
Components
Wheels
Bottles and CagesMudguardsBike Packing, air suspension forks, and a 9-speed drivetrain to deliver the ultimate in off-road riding.\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Frog MTB 69 has been awarded the Red Dot Award for high-quality design. Award criteria include innovation, functionality, formal quality, ergonomics, and durability.\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Frog MTB 69 junior mountain bike, which is part of our Push The Limits range, is perfect for kids to make trail riding fun and easy. It’s kitted out with high-spec, age-specific components, designed for ease and comfort to help them build confidence and progress like a pro! They can experience smoother downhill control with the hydraulic disc brakes and impactful suspension forks, and tackle uphill climbs like a champ, thanks to the ultra-lightweight aluminium, chi \/cdn\/shop\/files\/1.jpg?v=1736263176","\/\/projektride.co.uk\/cdn\/shop\/files\/11.jpg?v=1736263176"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/1.jpg?v=1736263176","options":["Color"],"media":[{"alt":null,"id":63810041774463,"position":1,"preview_image":{"aspect_ratio":1.364,"height":880,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/1.jpg?v=1736263176"},"aspect_ratio":1.364,"height":880,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/1.jpg?v=1736263176","width":1200},{"alt":null,"id":63810041807231,"position":2,"preview_image":{"aspect_ratio":1.364,"height":880,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/11.jpg?v=1736263176"},"aspect_ratio":1.364,"height":880,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/11.jpg?v=1736263176","width":1200}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong
3c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eSuitable for 10 to 12 years with a recommended inside leg of 63cm-75cm\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eWith the awesome award-winning Frog MTB 69 kids' mountain bike, 10 to 12-year-old multi-terrain adventurers will be able to hit the trails, pump tracks and streets in style. The lightweight aluminium MTB weighs just 11.4 kg and is equipped with hydraulic disk brakes, air suspension forks, and a 9-speed drivetrain to deliver the ultimate in off-road riding.\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Frog MTB 69 has been awarded the Red Dot Award for high-quality design. Award criteria include innovation, functionality, formal quality, ergonomics, and durability.\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u00
003cp\u003e\u003cstrong\u003eComponents\u003c\/strong\u003e\u003cbr\u003eSeatpost    Not included\u003cbr\u003eRotor size    Max brake rotor sizes: 160mm front \u0026amp; rear\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAccessories\u003c\/strong\u003e\u003cbr\u003eBag\u003cstrong\u003e \u003c\/strong\u003e   Bontrager BITS Internal Frame Storage Bag\u003cbr\u003eWe reserve the right to make changes to the product information contained on this site at any time without notice, including with respect to equipment, specifications, models, colours, materials and pricing. Due to supply chain issues, compatible parts may be substituted at any time without notice.\u003c\/p\u003e\n\u003cp\u003eBike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","published_at":"2025-01-11T12:36:09+00:00","created_at":"2025-01-11T12:36:09+00:00","vendor":"Trek","type":"Bicycles","tags":["Domane"],"pr
e_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":63841765622143,"position":2,"preview_image":{"aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DomaneSLRDiscFrameset_22_33101_B_Primary.webp?v=1736598701"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945351663999,"title":"Lithium Grey\/Trek Black \/ 50","option1":"Lithium Grey\/Trek Black","option2":"50","option3":null,"sku":"1045753","requires_shipping":true,"taxable":true,"featured_image":{"id":72853055275391,"product_id":14907866546559,"position":2,"created_at":"2025-01-11T12:31:39+00:00","updated_at":"2025-01-11T12:31:41+00:00","alt":null,"width":1920,"height":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DomaneSLRDiscFrameset_22_33101_B_Primary.webp?v=1736598701","variant_ids":[54945351631231,54945351663999,54945351696767,54945351729535,54945351762303,54945351795071]},"available":true,"name":"Trek Domane SLR Disc Frameset Gen 3 - L
54945351631231,54945351663999,54945351696767,54945351729535,54945351762303,54945351795071]},"available":false,"name":"Trek Domane SLR Disc Frameset Gen 3 - Lithium Grey\/Trek Black \/ 54","public_title":"Lithium Grey\/Trek Black \/ 54","options":["Lithium Grey\/Trek Black","54"],"price":350000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":63841765622143,"position":2,"preview_image":{"aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DomaneSLRDiscFrameset_22_33101_B_Primary.webp?v=1736598701"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945351729535,"title":"Lithium Grey\/Trek Black \/ 56","option1":"Lithium Grey\/Trek Black","option2":"56","option3":null,"sku":"1045756","requires_shipping":true,"taxable":true,"featured_image":{"id":72853055275391,"product_id":14907866546559,"position":2,"created_at":"2025-01-11T12:31:39+00:00","updated_at":"2025-01-11T12:31:41+00:00","altHire Lazer Compact Helmet
tured_image":{"id":72853055275391,"product_id":14907866546559,"position":2,"created_at":"2025-01-11T12:31:39+00:00","updated_at":"2025-01-11T12:31:41+00:00","alt":null,"width":1920,"height":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DomaneSLRDiscFrameset_22_33101_B_Primary.webp?v=1736598701","variant_ids":[54945351631231,54945351663999,54945351696767,54945351729535,54945351762303,54945351795071]},"available":true,"name":"Trek Domane SLR Disc Frameset Gen 3 - Dark Prismatic\/Trek Black \/ 47","public_title":"Dark Prismatic\/Trek Black \/ 47","options":["Dark Prismatic\/Trek Black","47"],"price":415000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":63841765622143,"position":2,"preview_image":{"aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DomaneSLRDiscFrameset_22_33101_B_Primary.webp?v=1736598701"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945351795071,"title
n\/shop\/files\/DomaneSLRDiscFrameset_22_33101_B_Primary.webp?v=1736598701"}},"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/DomaneSLRDiscFrameset_21_33101_A_Primary.webp?v=1736598691","\/\/projektride.co.uk\/cdn\/shop\/files\/DomaneSLRDiscFrameset_22_33101_B_Primary.webp?v=1736598701","\/\/projektride.co.uk\/cdn\/shop\/files\/DomaneSLRDiscFrameset_21_33101_A_Alt1.webp?v=1736598710"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/DomaneSLRDiscFrameset_21_33101_A_Primary.webp?v=1736598691","options":["Colour","Size"],"media":[{"alt":null,"id":63841765163391,"position":1,"preview_image":{"aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DomaneSLRDiscFrameset_21_33101_A_Primary.webp?v=1736598691"},"aspect_ratio":1.333,"height":1440,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DomaneSLRDiscFrameset_21_33101_A_Primary.webp?v=1736598691","width":1920},{"alt":null,"id":£0.00

border-gray-10\"\u003e\n\u003cp data-v-e224ae82=\"\"\u003eThe award-winning Domane SLR Disc Frame Set is built with 700 Series OCLV Carbon and has both Front and Adjustable Rear IsoSpeed so you can fine-tune your compliance. This is the lightest endurance road bike frame we make. It's designed for flat-mount disc brakes, has an internal storage compartment, and includes a head set, 12 mm thru axles and a Domane Disc full carbon fork.\u003c\/p\u003e\n\u003cp\u003e*Please note – spec applies to all sizes unless listed separately\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003cstrong\u003eFrameset\u003c\/strong\u003e\u003cbr\u003eFrame    700 Series OCLV Carbon, front IsoSpeed, adjustable rear IsoSpeed, internal storage, tapered head tube, internal cable routing, 3S chain keeper, DuoTrap S-compatible, mudguard mounts, flat-mount disc, 142x12 mm thru axle\u003cbr\u003eFork    Domane SLR carbon, tapered carbon steerer, internal brake routing, mudguard mounts, flat-mount disc, carbon dropouts, 12x100 mm thru

026amp; rear\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAccessories\u003c\/strong\u003e\u003cbr\u003eBag\u003cstrong\u003e \u003c\/strong\u003e   Bontrager BITS Internal Frame Storage Bag\u003cbr\u003eWe reserve the right to make changes to the product information contained on this site at any time without notice, including with respect to equipment, specifications, models, colours, materials and pricing. Due to supply chain issues, compatible parts may be substituted at any time without notice.\u003c\/p\u003e\n\u003cp\u003eBike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {54945351631231 : "deny",54945351663999 : "deny",54945351696767 : "deny",54945351729535 : "deny",54945351762303 : "deny",54945351795071 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {54945351631231 : parseInt("3"),549453Black
95071 : null,}; window._RestockRocketConfig.variantsShippingText = {54945351631231 : "",54945351663999 : "",54945351696767 : "",54945351729535 : "",54945351762303 : "",54945351795071 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {54945351631231 : null,54945351663999 : null,54945351696767 : null,54945351729535 : null,54945351762303 : null,54945351795071 : null,}; window._RestockRocketConfig.selected_variant_id = 54945351631231; 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/019af0d1-c518-7a22-bdbf-9ceff49063ad/restockrocket-1-402/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019af0d1-c518-7a22-bdbf-9ceff49063ad/restockrocket-1-402/assets/restockrocket-collect
< console.debug('STOQ - multi-language 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
    Gloves Lightweight 16-inch kids’ bike that is easy to manoeuvre and easy for parents to carry © 2025, < 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 !== undefHire Ortlieb 40L Pannier Bagsme-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) { co
  • ckRocketConfig.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 enabled for ${window._RestockRocketConfig.pageType}`); } // Check and update cart selling plans after scripts are loaded if (settings.preorder_enabled) { updateCartSellingPlans(); } // Dispatch custom event when app is loaded const app
  • r); }); } else if (attempt
  • maxRetries) { console.debug(`STOQ - API not ready, retry ${attempt}/${maxRetries}`); setTimeout(() => attemptCartCheck(attempt + 1), retryDelay); } else { console.debug('STOQ - API not loaded after max retries, skipping cart selling plan check'); } } attemptCartCheck(); } 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)">
  • span class="visually-hidden">Hire Ortlieb 40L Pannier Bags
  • >
  • .restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:>
  • Hire Ortlieb 40L Pannier Bags















For young lighter riders, we created custom suspension forks to ensure that our Push the Limits mountain bikes perform perfectly regardless of a rider’s weight. Learn more about how our forks are designed to work with a child's weight and Submit your search requestBuy Sell Ride Confidenthow to adjust the sag here >>
82 Newington Road £0.00 Edinburghimg src="//projektride.co.uk/cdn/shop/files/Screenshot2024-01-09at15.34.59_2048x2048.png?v=1736263065" alt="Frog 40" class="mfp-zoom-in-cur" id="63810031812991">
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.32_9d81277b-124e-4fdc-8a0f-fbfb40a9343d_600x.png?v=1691610357)">

>

img src="//projektride.co.uk/cdn/shop/files/Screenshot2024-01-09at15.35.19_2048x2048.png?v=1736263065" alt="Frog 40" class="mfp-zoom-in-cur" id="63810031911295">
Life Systems Pocket First Aid Kit - HIRE
  • . :true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"
  • /cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":"","preorder_payment_insert_selector_type":"afterend","preorder_price_container_selector":"","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":"","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug": > false,"inline_form_enabled":false,"inline_form_selector":null,"inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"market_setup_type":"single_market","shopify_app_id":5940125,"cache":true,"cached_at":"2025-11-11T14:27:02.333Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43590980075746,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,43936142426338,434703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647],"updated_at":"2025-12-07T18:01:19Z","market_locations_enabled":false,"market_id":13777305826,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2025-12-07T18:03:14Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2025-12-07T18:03:14Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shippin g_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569933140351,55569712382335,55569712415103,55569712480639,55569933173119,55570017616255,55569933074815,55570017550719,55569712447871,55569933107583,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_ of our Push The Limits range, is perfect for kids to make trail riding fun and easy. It’s kitted out with high-spec, age-specific components, designed for ease and comfort to help them build confidence and progress like a pro! They can experience smoother downhill control with the hydraulic disc brakes and impactful suspension forks, and tackle uphill climbs like a champ, thanks to the ultra-lightweight aluminium, child-specific frames. \u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThis agile bike also features an oversized handlebar and stem to reduce flex, giving your little shredder better control. It also features Kenda MTB tyres for maximum grip and comfort in all weather conditions and terrains. And our patented Frog cranks let kids pedal more efficiently, keeping them fast, nimble, and ahead of the game.\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003c\/p\ u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eCustom kids’ mountain bike forks\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eFor young lighter riders, we created custom suspension forks to ensure that our Push the Limits mountain bikes perform perfectly regardless of a rider’s weight. Learn more about how our forks are designed to work with a child's weight and\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/www.frogbikes.co.uk\/fork-tuning\" data-mce-fragment=\"1\" data-mce-href=\"https:\/\/www.frogbikes.co.uk\/fork-tuning\"\u003ehow to adjust the sag here \u0026gt;\u0026gt;\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eGet sized for cycling success\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Frog MTB 69 mountain bike i
s suitable for 10 to 12 years with a recommended inside leg measurement of 63cm-75cm.\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eOne of the biggest temptations is to buy a child's bike that they will grow into. However, this will likely have the opposite effect and put your child off cycling altogether! Another common mistake is to purchase a budget kids' bike but these models are often as heavy as a child which can lead to frustration. That’s why Frog bikes are lightweight and designed to specifically accommodate the anatomy of children.\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe data obtained during our child-specific frame design research has helped us create a helpful kids’\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/www.frogbikes.co.uk\/fitting\" data-mce-fragm ent=\"1\" data-mce-href=\"https:\/\/www.frogbikes.co.uk\/fitting\"\u003ebike sizing guide\u003c\/a\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eto discover the best-sized bike for your child.Alternatively, speak to a\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/www.frogbikes.co.uk\/frogbikes-stores\" data-mce-fragment=\"1\" data-mce-href=\"https:\/\/www.frogbikes.co.uk\/frogbikes-stores\"\u003elocal stockist\u003c\/a\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eabout our children’s bike range.\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eAvailable colours*\u003c\/strong\u003e: Metallic grey \u0026amp; neon green and Metallic grey \u0026amp; neon red\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003csmall data-mce-fragment=\"1\"\u003e*Actual colours may vary. This is due to the fact t
hat every computer monitor has a different capability to display colours and that everyone sees these colours differently. Our photos show the samples as life-like as possible,\u003c\/small\u003e\u003c\/p\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {54939171291519 : "deny",54939171324287 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {54939171291519 : parseInt("0"),54939171324287 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {54939171291519 : parseInt(""),54939171324287 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {54939171291519 : null,54939171324287 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {54939171291519 : parseInt(""),54939171324287 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {54939171291519 : null,54939171324287 : null,}; window._RestockRocketConfig.variantsShippingText = {54939171291519 : "",54939171324287 : "",}; #FeaturedImage--template--15326745395426__1645734801adfd4c07 { --overlay-opacity: 0.2; } window._RestockRocketConfig.variantsShippingTextForMarket = {54939171291519 : null,54939171324287 : null,}; window._RestockRocketConfig.selected_variant_id = 54939171324287; 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/019af0d1-c518-7a22-bdbf-9ceff49063ad/restockrocket-1-402/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019af0d1-c518-7a22-bdbf-9ceff49063ad/restockrocket-1-402/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.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; } // Translations object exists in metafield - cache is valid // If current locale isn't translated, applyTranslations will gracefully use d efault 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, skipping cache'); return null; } return settings; } catch (error) { console.debug('STOQ - Error checking settings cache:', error); return null; } } function createRestockRocketContainer() { const resto
Working Hours
< input type="number" name="quantity" id="quantity--template--15326745395426__main" value="1" min="1">
© 2025,