storefrontCurrency: 'GBP', storefrontCountry: 'GB', storefrontLanguage: 'en', shopDomain: 'projektride.co.uk', variantPrice: '40500', cartPrice: '0', selector: 'shopify-osm-Ac2tTRTlRaTI0R3BZb__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); }
The Beyond 1 serves as the perfect first bike for fledgling adventurists. With tyres as wide as a mountain bike accompanied by a 28 / 40T chainset, this bike will be able to reach wherever you’ve plotted on the map. Leverage-boosting bars provide added control, and an eye-watering selection of mounting points mean you won’t need to leave anything at home. Its simplicity makes it easy to service, too.483f7720-0d6f-4df1-8f00-88ef18379902.jpg?v=1736262975"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44049903812834,"title":"Electric Blue","option1":"Electric Blue","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":72808884928895,"product_id":8082512019682,"position":5,"created_at":"2025-01-07T15:16:15+00:00","updated_at":"2025-01-07T15:16:15+00:00","alt":null,"width":1200,"height":800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ELECTRICBLUE-0_60d89242-0819-493e-afec-ebfb96fd7b62.jpg?v=1736262975","variant_ids":[44049903812834]},"available":false,"name":"Frog 47 - Electric Blue","public_title":"Electric Blue","options":["Electric Blue"],"price":40500,"weight":0,"compare_at_price":45000,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":63810021851519,"position":5,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ELECT0131 374 5324
7d67.jpg?v=1736262975"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44049916428514,"title":"Red","option1":"Red","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":72808884863359,"product_id":8082512019682,"position":3,"created_at":"2025-01-07T15:16:15+00:00","updated_at":"2025-01-07T15:16:15+00:00","alt":null,"width":1200,"height":800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-RED-0.default_60df76ab-6589-450a-b00b-1bc493fb9219.jpg?v=1736262975","variant_ids":[44049916428514]},"available":false,"name":"Frog 47 - Red","public_title":"Red","options":["Red"],"price":40500,"weight":0,"compare_at_price":45000,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":63810021785983,"position":3,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-RED-0.default_60df76ab-6589-450a-b00b-1bc493fb9219.jpg?v=1736262975"}},"requires_sellingheight":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ORANGE-0_6923ef69-c7a7-4cac-8ae5-d000a14cfbd9.jpg?v=1736262975"},"aspect_ratio":1.5,"height":800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ORANGE-0_6923ef69-c7a7-4cac-8ae5-d000a14cfbd9.jpg?v=1736262975","width":1200},{"alt":null,"id":63810021753215,"position":2,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-GRN-0_483f7720-0d6f-4df1-8f00-88ef18379902.jpg?v=1736262975"},"aspect_ratio":1.5,"height":800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-GRN-0_483f7720-0d6f-4df1-8f00-88ef18379902.jpg?v=1736262975","width":1200},{"alt":null,"id":63810021785983,"position":3,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-RED-0.default_60df76ab-6589-450a-b00b-1bc493fb9219.jpg?v=1736262975"},"aspect_ratio":1.5,"heig
:1200},{"alt":null,"id":63810021884287,"position":6,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-SPOTTY-0_19d44467-d15e-4836-b3e5-97f324047d67.jpg?v=1736262975"},"aspect_ratio":1.5,"height":800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-SPOTTY-0_19d44467-d15e-4836-b3e5-97f324047d67.jpg?v=1736262975","width":1200}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"tab general\"\u003e\u003cb\u003eWhy buy a Frog 47? \u003c\/b\u003e\u003c\/div\u003e\n\u003cul\u003e\n\u003cli\u003eSmall, easy-to-reach brake levers for better control and improved rider confidence\u003c\/li\u003e\n\u003cli\u003ePatented Frog cranks for more effortless pedalling, increasing efficiency and comfort\u003c\/li\u003e\n\u003cli\u003eLower bottom bracket to accommodate a greater leg-length ideal for growing kids\u003c\/li\u003e\n\u003cli\u003eHandlebar h| Edinburgh | EH9 1QN"url": "https:\/\/projektride.co.uk\/products\/frog-47-red","image": [ "https:\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ORANGE-0_6923ef69-c7a7-4cac-8ae5-d000a14cfbd9_1200x.jpg?v=1736262975" ],"description": "\nWhy buy a Frog 47? \n\nSmall, easy-to-reach brake levers for better control and improved rider confidence\nPatented Frog cranks for more effortless pedalling, increasing efficiency and comfort\nLower bottom bracket to accommodate a greater leg-length ideal for growing kids\nHandlebar height can be adjusted within a range of 40mm as the young rider grows\nFree 5-year warranty on frame and forks\nReflectors, mudguard and bell included\nSuitable for 4 to 6 years with a recommended inside leg of 43cm-59cm\n\nThe first pedal Frog 47 kids’ bike is a great value 18-inch bike for 4 to 6-year-olds and is perfect for transitioning from a balance bike to pedals. This premium first-pedal children’s bike has a lightweight, sturdy aluminium frame, weighing just 6.75kg making the bike e |
| [email protected] | |
| BOMBTRACK BEYOND travel bar, 31.8 mm, 30° flare< | |
| ProjektRide | .Website by |
| window._RestockRocketConfig = window._RestockRocketConfig || {} // Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us') // This matches the backend's Mobility.normalize_locale behavior // Returns empty string if locale is empty or invalid (matches original behavior) function normalizeLocale(locale) { if (!locale || locale.trim() === '') { return ''; } return locale.toString().toLowerCase().replace(/-/g, '_'); } window._RestockRocketConfig.locale = 'en'; window._RestockRocketConfig.normalizedLocale = normalizeLocale('en'); window._RestockRocketConfig.shop = 'projektride.myshopify.com'; window._RestockRocketConfig.pageType = 'product';window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom'; window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2025-11-11T14:27:02.312Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too","show_button_on_collection":false,"sms_default_country":"us","sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":null,"insert_button_after_selector_type":"afterend","storefront_button_position_type":"float-right","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"This item needs to be purchased separately. Please check out or clear your cart before adding this item.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_but Headsetton_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":null,"push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":""," | search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":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\"] I'm looking to find out more information about a product, where can I find this?","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,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,43936078Sealed external aheadset, 1.1/2'' - 1.1/8'' 037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,43936142426338,43936142459106,43936152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,43936331661538,43936332349666,43936333103330,43936351224034,43936353714402,43936362889442,43936362922210,43936388153570,43936389333218,43936395526370,43936398508258,43936401522914,43936408568034,43936414400738,43936700727522,43936706101474,43936706134242,43936706167010,43936706199778,43936706232546,43936706265314,43938308587746,43938308653282,43938308718818,43938308751586,43938308784354,43938308817122,43938322612450,43938322645218,43938322677986,43981336051938,43981336084706,43981336117474,43981336150242,439813455874 | 26,43981345620194,43981345652962,43981345685730,43981357580514,43981357613282,43981362462946,43981362495714,43981362528482,43981369016546,43981369049314,43981374914786,43981374947554,43981374980322,43981392904418,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140302827746,44140302893282,44140317016290,44155590508770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,5 5569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647],"updated_at":"2025-12-06T04:17:57Z","market_locations_enabled":false,"market_id":382140642,"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-06T04:17:56Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts =
| Leversder straps so you can take them with you at your destination and the ORTLIEB QL System which ensures food and equipment are both protected and easily accessible.\u003c\/span\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-lighter-text\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-lighter-text\"\u003eDurable polyester fabric make this pannier a long lasting touring companion. The waterproof roll closure ensures safe and waterproof storage of food and equipment. With its QL2.1 fixing it is quickly mounted and taken off the bike rack. A shoulder strap provides carrying comfort when taken off the rack.\u003c\/div\u003e\n\u003cdiv class=\"text-lighter-text\"\u003e\u003cstrong\u003e\u003c\/strong\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-lighter-text\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"heading-button flex min-h-[52px] w-full py-2.5 items-center\" type=\"button\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003cbutton class=\"heading-button flex min-h-[52px] w-f) or email ( | ":"Default Title","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":true,"featured_image":null,"available":true,"name":"Hire Ortlieb 40L Pannier Bags","public_title":null,"options":["Default Title"],"price":0,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/resize_width_1000.jpg?v=1741085512"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/resize_width_1000.jpg?v=1741085512","options":["Title"],"media":[{"alt":null,"id":64543150244223,"position":1,"preview_image":{"aspect_ratio":1.215,"height":745,"width":905,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/resize_width_1000.jpg?v=1741085512"},"aspect_ratio":1.215,"height":745,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/resize_width_1000.jpg?v=1741085512","width":905}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cdiv\u003e\n\u003c[email protected]SRAM Apex double tap mechanicd and taken off the bike rack. A shoulder strap provides carrying comfort when taken off the rack.\u003c\/div\u003e\n\u003cdiv class=\"text-lighter-text\"\u003e\u003cstrong\u003e\u003c\/strong\u003e\u003c\/div\u003e\n\u003cdiv class=\"text-lighter-text\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"heading-button flex min-h-[52px] w-full py-2.5 items-center\" type=\"button\"\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003cbutton class=\"heading-button flex min-h-[52px] w-full py-2.5 items-center\" type=\"button\"\u003e\u003cspan class=\"ml-auto inline-block h-6 transition duration-300 rotate-180\"\u003e\u003csvg viewbox=\"0 0 32 32\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"h-full w-4 rotate-90 text-[#D31716]\"\u003e\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.775 16 4.555 7.629l2.89-5.258L24.26 11.62c3.454 1.9 3.454 6.863 0 8.762L7.447 29.63l-2.893-5.26L19.774 16Z\" fill=\"currentColor\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u00) where on of the team will be more than happy to help. | .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; } ProjektRide Bike Shop Edinburgh
| Shifter]; 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 | n(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}`); 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_collectionI'm looking to buy this product, when will it arrive and how much does postage cost?SRAM Apex double tap 2 x 10_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 appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } } function updateCartSellingPlans() { // Wait for the API to be available with retries const maxRetries = 10; const retryDelay = 500; function attemptCartCheck(attempt = 1) { if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSe | <
| We also have a physical store, if you are local please pop in - | ont-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}.restProjektRide Bike Shop EdinburghTRP SPYRE C mechanic disc brakes with 180 mm F / 160 mm R rotorsnot(: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-chec 82 Newington Road, EH91QN, Edinburgh. | ocket-preorder-countdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@media (max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px
| Crankset | BOMBTRACK AMES forged aluminium crank, 24 mm spindle | .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; }
| BB | |
| double wall, TCS 2.0, 32h | |
| Rear rim | © 2025,WTB ST i23 double wall, TCS 2.0, 32hProjektRide | .
| SaddleJuan Borges Designs | .BOMBTRACK ORIGIN saddle |
| Seat post | window._RestockRocketConfig = window._RestockRocketConfig || {} // Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us') // This matches the backend's Mobility.normalize_locale behavior // Returns empty string if locale is empty or invalid (matches original behavior) function normalizeLocale(locale) { if (!locale || locale.trim() === '') { return ''; } return locale.toString().toLowerCase().replace(/-/g, '_'); } window._RestockRocketConfig.locale = 'en'; window._RestockRocketConfig.normalizedLocale = normalizeLocale('en'); window._RestockRocketConfig.shop = 'projektride.myshopify.com'; window._RestockRocketConfig.pageType = 'product';window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom'; window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2025-11-11T14:27:02.312Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too","show_button_on_collection":false,"sms_default_country":"us","sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":null,"insert_button_after_selector_type":"afterend","storefront_button_position_type":"float-right","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"This item needs to be purchased separately. Please check out or clear your cart before adding this item.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":null,"push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selectBOMBTRACK BEECH 27.2 mm x 400 mmor":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":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*=\"/car | t/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,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,
| ty_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_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFFSeat clamp","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"ful | l","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true}];window._RestockRocketConfig.integrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"confi guration":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"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":8082512019682,"title":"Frog 47","handle":"frog-47-red","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"tab general\"\u003e\u003cb\u003eWhy buy a Frog 47? \u003c\/b\u003e\u003c\/div\u003e\n\u003cul\u003e\n\u003cli\u003eSmall, easy-to-reach brake levers for better control and improved rider confidence\u003c\/li\u003e\n\u003cli\u003ePatented Frog cranks for more effortless pedalling, increasing efficiency and comfort\u003c\/li\u003e\n\u003cli\u003eLower bottom bracket to accommodate a greater leg-length ideal for growing kids\u003c\/li\u003e\n\u003cli\u003eHandlebar height can be adjusted within a range of 40mm as the young rider grows\u003c\/li\u003e\n\u003cli\u003eFree 5-year warranty on frame and forks\u003c\/li\u003e\n\u003cli\u003eReflectors, mudguard and bell included\u003c\/li\u003e\n\u003cli\u003eSuitable for 4 to 6 years with a recommended inside leg of 43cm-59cm\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cbr\u003e\u003cspan\u003eThe first pedal Frog 47 kids’ bike is a great value 18-inch bike for 4 to 6-year-olds and is perfect for transitioning from a balance bike to pedals. This premium first-pedal children’s bike has a lightweight, sturdy aluminium frame, weighing just 6.75kg making the bike easy to manoeuvre and easy for parents to carry. \u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e \u003c\/span\u003e\u003cbr\u003e\u003cspan\u003eThe Frog 47 kids’ bike is equipped with high-spec age-specific components, designed for comfort and longevity, including a quick-release child-sized saddle for the perfect riding experience, and Tektro brakes with small, easy-to-reach brake levers, which mBOMBTRACK ORIGIN 29.8 mmeans better control and improved confidence for young riders. It also comes with Kenda small block eight tyres for maximum stability and grip and our patented Frog cranks, for more effortless pedalling, which reduces the distance between the pedals increasing efficiency and comfort for children. \u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e \u003c\/span\u003e\u003cbr\u003e\u003cspan\u003eThe Frog 47 kids’ bike has been optimised to help maximise the lifetime of the bike for a growing child. It offers a lower bracket position to ensure a safer more ergonomic riding experience, which also allows for a greater leg-length range to be accommodated, perfect for growing legs. And the handlebar height can be adjusted within a 40mm range, as a child grows.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eSizing guide: \u003ca href=\"https:\/\/www.frogbikes.co.uk\/fitting\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps:\/\/www.frogbikes.co.uk\/fitting\u003c\/a\u003e\u003c\/span\u003e\u0 | 03c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style=\"color: #404040; background-color: #ffffff;\"\u003eIf any more information is needed, please don't hesitate to get in touch with one of the team:\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style=\"color: #404040; background-color: #ffffff;\"\u003eProjektRide Bike shop Edinburgh.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style=\"color: #404040; background-color: #ffffff;\"\u003eedinburgh@projektride.co.uk\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style=\"color: #404040; background-color: #ffffff;\"\u003eT- 01313745324\u003c\/span\u003e\u003c\/p\u003e","published_at":"2023-04-28T19:21:34+01:00","created_at":"2023-04-27T21:22:28+01:00","vendor":"Frog","type":"Bicycles","tags":["Bike","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":40500,"price_min":40500,"price_max":40500,"available":true,"price _varies":false,"compare_at_price":45000,"compare_at_price_min":45000,"compare_at_price_max":45000,"compare_at_price_varies":false,"variants":[{"id":44049903714530,"title":"Pink","option1":"Pink","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":72808884896127,"product_id":8082512019682,"position":4,"created_at":"2025-01-07T15:16:15+00:00","updated_at":"2025-01-07T15:16:15+00:00","alt":null,"width":1200,"height":800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-PINK-0_30640280-54bb-44e3-8a20-2a7057951e9b.jpg?v=1736262975","variant_ids":[44049903714530]},"available":false,"name":"Frog 47 - Pink","public_title":"Pink","options":["Pink"],"price":40500,"weight":0,"compare_at_price":45000,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":63810021818751,"position":4,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-PINK-0_30640280-54bb-44e3-8a20-2a7
| ":"Red","option1":"Red","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":72808884863359,"product_id":8082512019682,"position":3,"created_at":"2025-01-07T15:16:15+00:00","updated_at":"2025-01-07T15:16:15+00:00","alt":null,"width":1200,"height":800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-RED-0.default_60df76ab-6589-450a-b00b-1bc493fb9219.jpg?v=1736262975","variant_ids":[44049916428514]},"available":false,"name":"Frog 47 - Red","public_title":"Red","options":["Red"],"price":40500,"weight":0,"compare_at_price":45000,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":63810021785983,"position":3,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-RED-0.default_60df76ab-6589-450a-b00b-1bc493fb9219.jpg?v=1736262975"}},"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ORAFront tireNGE-0_6923ef69-c7a7-4cac-8ae5-d000a14cfbd9.jpg?v=1736262975","\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-GRN-0_483f7720-0d6f-4df1-8f00-88ef18379902.jpg?v=1736262975","\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-RED-0.default_60df76ab-6589-450a-b00b-1bc493fb9219.jpg?v=1736262975","\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-PINK-0_30640280-54bb-44e3-8a20-2a7057951e9b.jpg?v=1736262975","\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ELECTRICBLUE-0_60d89242-0819-493e-afec-ebfb96fd7b62.jpg?v=1736262975","\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-SPOTTY-0_19d44467-d15e-4836-b3e5-97f324047d67.jpg?v=1736262975"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ORANGE-0_6923ef69-c7a7-4cac-8ae5-d000a14cfbd9.jpg?v=1736262975","options":["Colour"],"media":[{"alt":null,"id":63810021720447,"position":1,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ORANGE-0_6923ef69-c7a7-4cac | -8ae5-d000a14cfbd9.jpg?v=1736262975"},"aspect_ratio":1.5,"height":800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ORANGE-0_6923ef69-c7a7-4cac-8ae5-d000a14cfbd9.jpg?v=1736262975","width":1200},{"alt":null,"id":63810021753215,"position":2,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-GRN-0_483f7720-0d6f-4df1-8f00-88ef18379902.jpg?v=1736262975"},"aspect_ratio":1.5,"height":800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-GRN-0_483f7720-0d6f-4df1-8f00-88ef18379902.jpg?v=1736262975","width":1200},{"alt":null,"id":63810021785983,"position":3,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-RED-0.default_60df76ab-6589-450a-b00b-1bc493fb9219.jpg?v=1736262975"},"aspect_ratio":1.5,"height":800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-RED-0.default_60df76ab- 6589-450a-b00b-1bc493fb9219.jpg?v=1736262975","width":1200},{"alt":null,"id":63810021818751,"position":4,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-PINK-0_30640280-54bb-44e3-8a20-2a7057951e9b.jpg?v=1736262975"},"aspect_ratio":1.5,"height":800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-PINK-0_30640280-54bb-44e3-8a20-2a7057951e9b.jpg?v=1736262975","width":1200},{"alt":null,"id":63810021851519,"position":5,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ELECTRICBLUE-0_60d89242-0819-493e-afec-ebfb96fd7b62.jpg?v=1736262975"},"aspect_ratio":1.5,"height":800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-ELECTRICBLUE-0_60d89242-0819-493e-afec-ebfb96fd7b62.jpg?v=1736262975","width":1200},{"alt":null,"id":63810021884287,"position":6,"preview_image":{"aspect_ratio":1.5,"height":800,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-SPOTTY-0_19d44467-d15e-4836-b3e5-97f324047d67.jpg?v=1736262975"},"aspect_ratio":1.5,"height":800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-SPOTTY-0_19d44467-d15e-4836-b3e5-97f324047d67.jpg?v=1736262975","width":1200}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"tab general\"\u003e\u003cb\u003eWhy buy a Frog 47? \u003c\/b\u003e\u003c\/div\u003e\n\u003cul\u003e\n\u003cli\u003eSmall, easy-to-reach brake levers for better control and improved rider confidence\u003c\/li\u003e\n\u003cli\u003ePatented Frog cranks for more effortless pedalling, increasing efficiency and comfort\u003c\/li\u003e\n\u003cli\u003eLower bottom bracket to accommodate a greater leg-length ideal for growing kids\u003c\/li\u003e\n\u003cli\u003eHandlebar height can be adjusted within a range of 40mm as the young rider grows\u003c\/li\u003e\n\u003cli\u003eFree 5-year WTB RANGER TCS LIGHT / FAST ROLLING XS - S 27.5'' x 2.0'' / M - XL 29'' x 2.0'', tubeless readywarranty on frame and forks\u003c\/li\u003e\n\u003cli\u003eReflectors, mudguard and bell included\u003c\/li\u003e\n\u003cli\u003eSuitable for 4 to 6 years with a recommended inside leg of 43cm-59cm\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cbr\u003e\u003cspan\u003eThe first pedal Frog 47 kids’ bike is a great value 18-inch bike for 4 to 6-year-olds and is perfect for transitioning from a balance bike to pedals. This premium first-pedal children’s bike has a lightweight, sturdy aluminium frame, weighing just 6.75kg making the bike easy to manoeuvre and easy for parents to carry. \u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e \u003c\/span\u003e\u003cbr\u003e\u003cspan\u003eThe Frog 47 kids’ bike is equipped with high-spec age-specific components, designed for comfort and longevity, including a quick-release child-sized saddle for the perfect riding experience, and Tektro brakes with small, easy-to-reach brake levers, which means better control and improved confidence for young riders. It al | so comes with Kenda small block eight tyres for maximum stability and grip and our patented Frog cranks, for more effortless pedalling, which reduces the distance between the pedals increasing efficiency and comfort for children. \u003c\/span\u003e\u003cbr\u003e\u003cspan\u003e \u003c\/span\u003e\u003cbr\u003e\u003cspan\u003eThe Frog 47 kids’ bike has been optimised to help maximise the lifetime of the bike for a growing child. It offers a lower bracket position to ensure a safer more ergonomic riding experience, which also allows for a greater leg-length range to be accommodated, perfect for growing legs. And the handlebar height can be adjusted within a 40mm range, as a child grows.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eSizing guide: \u003ca href=\"https:\/\/www.frogbikes.co.uk\/fitting\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ehttps:\/\/www.frogbikes.co.uk\/fitting\u003c\/a\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style =\"color: #404040; background-color: #ffffff;\"\u003eIf any more information is needed, please don't hesitate to get in touch with one of the team:\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style=\"color: #404040; background-color: #ffffff;\"\u003eProjektRide Bike shop Edinburgh.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style=\"color: #404040; background-color: #ffffff;\"\u003eedinburgh@projektride.co.uk\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style=\"color: #404040; background-color: #ffffff;\"\u003eT- 01313745324\u003c\/span\u003e\u003c\/p\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {44049903714530 : "deny",44049903747298 : "deny",44049903780066 : "deny",44049903812834 : "deny",44049903845602 : "deny",44049916428514 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {44049903714530 : parseInt("0"),44049903747298 : parseInt("0"),44049903780066
| abled 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 Rear tire< | SETTINGS_CACHE_DURATION) { console.debug('STOQ - settings changed recently, skipp ing 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]; if (value !== null && value !== undefined && value !== '') { settWTB RANGER TCS LIGHT / FAST ROLLING XS - S 27.5'' x 2.0'' / M - XL 29'' x 2.0'', tubeless readyings[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?.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 in itializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); 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._RestockRocketConfig.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' &&
| .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)}.res | |
| 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:transRacklateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}} | - |
| Light | - |
| Weight | 12.9 kg (size M) |
| Weight frameset | 2540 g frame (size M, incl. TA, bolts, seatclamp, hanger) / 1500 g fork (300 mm steerer, incl. TA) |
| Maximum rider weight | 140 kg incl. luggage |
| ASTM riding condition | 2 |

ocketConfig.pageType);
})
if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.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') {
createRestockRock.863 0 8.762L7.447 29.63l-2.893-5.26L19.774 16Z\" fill=\"currentColor\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\u003c\/button\u003e\u003c\/div\u003e","published_at":"2025-03-04T10:55:16+00:00","created_at":"2025-03-04T10:51:12+00:00","vendor":"ortlieb","type":"Bike Hire - Equipment","tags":["spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":0,"price_min":0,"price_max":0,"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":55162210320767,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":true,"featured_image":null,"available":true,"name":"Hire Ortlieb 40L Pannier Bags","public_title":null,"options":["Default Title"],"price":0,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/pr








