See More
Custom Builds

Brakes
See More Cycle To Work Schemes
    • FramesSingular
      • Frog
      • Kona div class="product-feature__image-bg product-feature__image-bg--square" style="background-image: url(//projektride.co.uk/cdn/shop/files/F731D4A9-90BD-4DCB-A44F-A97B9E7E3A28_1024x.jpg?v=1678138464);">
      • Surly>
  • 4
    img src="//projektride.co.uk/cdn/shop/files/Screenshot_2024-06-21_at_20.21.13_98x.png?v=1718997714" alt="" class="product-single__thumbnail-img"> 5+
    Header Image
    Decrease quantity
    img src="//projektride.co.uk/cdn/shop/files/Screenshot_2024-06-21_at_20.21.15_98x.png?v=1718997714" alt="" class="product-single__thumbnail-img">
    img src="//projektride.co.uk/cdn/shop/files/Screenshot_2024-06-21_at_20.21.18_98x.png?v=1718997715" alt="" class="product-single__thumbnail-img"> label for="quantity--template--15326745395426__main">Quantity
    > £2,700.00
       

    56cm

    58cm
    Select variant dropdown 50cm - £2,700.00 GBP
    52cm - £2,700.00 GBP
    54cm - £2,700.00 GBP58cm - £2,700.00 GBP
    60cm - £2,700.00 GBP
    Quantity:
    img src="//projektride.co.uk/cdn/shop/files/L-FH47_media-RED-0.default_60df76ab-6589-450a-b00b-1bc493fb9219_2048x2048.jpg?v=1736262975" alt="Frog 47" class="mfp-zoom-in-cur" id="63810021785983"> 2
    Max. 700c x 47mm w/o guards
    < < {"id":8597986312418,"title":"Enigma Titanium Gravel Edge Frameset","handle":"enigma-gravel-edge-frameset","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ePlease note, this price is for the Frame, fork and headset. Available for custom builds, please get in touch for further information.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEnigma Bikes\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEDGE stands proudly as a cornerstone of our high-performance gravel bike lineup, handcrafted from Gr9 3AL 2.5 DB titanium to offer unrivalled strength and durability for the ultimate.\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cbutton class=\"accordion active\"\u003eFRAME SPECIFICATION\u003csvg class=\"icon icon-minus\" aria-hidden=\"true\"\u003e\u003cuse xlink:href=\"#icon-minus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/button\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv class=\"panel\"\u003e\n\u003cdiv class=\"bike__tech-spec\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eFRAME MATERIAL\u003c\/span\u003e\u003cspan\u003eCustom butted, size specific, grade 9 3Al 2.5V CWSR Ti tube set\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eFRAME FINISH\u003c\/span\u003e\u003cspan\u003eIncluded - hand brushed with satin bead logos\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHANGER\u003c\/span\u003e\u003cspan\u003eEnigma type 10\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eBOTTOM BRACKET\u003c\/span\u003e\u003cspan\u003eInvestment cast T47 68mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eAXLE DIMS.\u003c\/span\u003e\u003cspan\u003eThru axle | 12mm x 100mm front, 12 x 142mm rear\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADTUBE\u003c\/span\u003e\u003cspan\u003eCNC machined 44mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eCABLE ROUTING\u003c\/span\u003e\u003cspan\u003eInternal via custom entry ports\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eBRAKE MOUNT\u003c\/span\u003e\u003cspan\u003e160 front \/ 140 rear flat mount\u003c\/span\u003e\n\u003c\/li\u00
    e Frameset - 50cm","public_title":"50cm","options":["50cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939121890,"title":"52cm","option1":"52cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 52cm","public_title":"52cm","options":["52cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939154658,"title":"54cm","option1":"54cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 54cm","public_title":"54cm","options":["54cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":,"price":270000,"price_min":270000,"price_max":270000,"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":45610939089122,"title":"50cm","option1":"50cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 50cm","public_title":"50cm","options":["50cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939121890,"title":"52cm","option1":"52cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 52cm","public_title":"52cm","options":["52cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"t":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ePlease note, this price is for the Frame, fork and headset. Available for custom builds, please get in touch for further information.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEnigma Bikes\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEDGE stands proudly as a cornerstone of our high-performance gravel bike lineup, handcrafted from Gr9 3AL 2.5 DB titanium to offer unrivalled strength and durability for the ultimate.\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cbutton class=\"accordion active\"\u003eFRAME SPECIFICATION\u003csvg class=\"icon icon-minus\" aria-hidden=\"true\"\u003e\u003cuse xlink:href=\"#icon-minus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/button\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv class=\"panel\"\u003e\n\u003cdiv class=\"bike__tech-spec\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u0
    e\n\u003cli\u003e\n\u003cspan\u003eBRAKE MOUNT\u003c\/span\u003e\u003cspan\u003e160 front \/ 140 rear flat mount\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSEAT TUBE\u003c\/span\u003e\u003cspan\u003eExternal 34.9mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSEAT POST\u003c\/span\u003e\u003cspan\u003e31.6mm or 27.2mm with shim\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eFRONT DERAILLEUR\u003c\/span\u003e\u003cspan\u003e34.9mm band-on\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADSET\u003c\/span\u003e\u003cspan\u003eIntegral ZS44 upper \/ EC44 lower (Chris King Inset 7\/8)\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eTYRE SIZE\u003c\/span\u003e\u003cspan\u003eMax. 700c x 47mm w\/o guards\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!----\u003e"}
    []

    Product Details /s, please get in touch for further information.

    Boardman URB 8.9 - SmallAll Products { "@context": "http://schema.org/", "@type": "Product", "name": "Enigma Titanium Gravel Edge Frameset", "url": "https:\/\/projektride.co.uk\/products\/enigma-gravel-edge-frameset","image": [ "https:\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49_1804x.png?v=1718997711" ],"description": "Please note, this price is for the Frame, fork and headset. Available for custom builds, please get in touch for further information.\nEnigma Bikes\nEDGE stands proudly as a cornerstone of our high-performance gravel bike lineup, handcrafted from Gr9 3AL 2.5 DB titanium to offer unrivalled strength and durability for the ultimate.\n FRAME SPECIFICATION\n\n\n\n\nFRAME MATERIALCustom butted, size specific, grade 9 3Al 2.5V CWSR Ti tube set\n\n\nFRAME FINISHIncluded - hand brushed with satin bead logos\n\n\nHANGEREnigma type 10\n\n\nBOTTOM BRACKETInvestment cast T47 68mm\n\n\nAXLE DIMS.Thru axle | 12mm x 100mm front, 12 x
    142mm rear\n\n\nHEADTUBECNC machined 44mm\n\n\nCABLE ROUTINGInternal via custom entry ports\n\n\nBRAKE MOUNT160 front \/ 140 rear flat mount\n\n\nSEAT TUBEExternal 34.9mm\n\n\nSEAT POST31.6mm or 27.2mm with shim\n\n\nFRONT DERAILLEUR34.9mm band-on\n\n\nHEADSETIntegral ZS44 upper \/ EC44 lower (Chris King Inset 7\/8)\n\n\nTYRE SIZEMax. 700c x 47mm w\/o guards\n\n\n\n\n","brand": { "@type": "Thing", "name": "ProjektRide" },"gtin8": "","offers": [{ "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 2700.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/enigma-gravel-edge-frameset?variant=45610939089122" }, { "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 2700.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/enigma-gravel-edge-frameset?variant=45610939121890" }, { "@type" : "Offer","availability" : "http://schema.org/In ★★★★★ /Enigma BikesStock", "price" : 2700.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/enigma-gravel-edge-frameset?variant=45610939154658" }, { "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 2700.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/enigma-gravel-edge-frameset?variant=45610939187426" }, { "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 2700.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/enigma-gravel-edge-frameset?variant=45610939220194" }, { "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 2700.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/enigma-gravel-edge-frameset?variant=45610939252962" } ] }
    These fantastic guys saved our holiday. We were bike trekking around Scotland, and after 3 days, we had serious brake problems. The oil was coming out of the calliper. I called 2 days before our arrival, and they promised to make some time for us. They fixed the problem very fast and they totally didn't take advantage of our situation. I know the prices very well, because I have done all my maintenance myself for many years, and I was surprised by the low cost. Thanks a lot guys. Frog 47
    When riding your bike, you want a few simple things. Comfort, function, and control are at the top of the list, so we built the Dew Plus with all three in mind. The Dew Plus features a 10-speed drivetrain for smooth shifting and a broad gear range. Hydraulic disc brakes keep the bike in control in tricky conditions. With geometry that keeps the rider comfortable on rides long or short and a kickstand, it’s a great choice for commutes.Wim Lintermans Frog 47EDGE stands proudly as a cornerstone of our high-performance gravel bike lineup, handcrafted from Gr9 3AL 2.5 DB titanium to offer unrivalled strength and durability for the ultimate.
    a class="product__media product__media--featured" href="/collections/second-hand-bikes/products/boardman-urb-8-9-small" title="Boardman URB 8.9 - Small" aria-label="Boardman URB 8.9 - Small" style="background-image: url(//projektride.co.uk/cdn/shop/files/IMG_5209_70aaaff5-1408-4acb-af6e-c3803365a289_600x.jpg?v=1762355269)">
    span class="visually-hidden">Boardman URB 8.9 - Small£405.00
    > £450.00FRAME SPECIFICATIONWould you like to add on any equipment?
    ★★★★★>
    Amazing service and quick turnaround! Dropped my bike off at 6:30pm (closing time) one day and it had been fully serviced and sorted out by the next morning! Top service and reasonable prices. Will come back here for all bike servicing needs in the future no doubt! Guys are incredibly knowledgeable also.    

    Christian Graham
    Hire Lazer Compact Helmet

    SPECIFICATIONS // Create "window.Shoppad.apps.infiniteoptions" object if it doesn't already exist 'Shoppad.apps.infiniteoptions'.split('.').reduce(function (o, x) { if (!o[x]) { o[x] = {}; } return o[x]; }, window); // Note we are using the theme app extension window.Shoppad.apps.infiniteoptions.themeAppExtensionActive = true; div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/IMG_5210_3b79585f-a51c-413e-90cb-25a2e0a56743_600x.jpg?v=1762355269)">FRAME MATERIAL

    ★★★★★ > Custom butted, size specific, grade 9 3Al 2.5V CWSR Ti tube set
    great shop. Traded in my bike for a second hand road bike. Great service, good prices. Would definitely recommend. < Theo Golden a class="product__media product__media--featured" href="/products/hire-smith-convoy-helmet" title="Hire Lazer Compact Helmet" aria-label="Hire Lazer Compact Helmet" style="background-image: url(//projektride.co.uk/cdn/shop/files/my2023_tempo-kineticore-black_right_1400x1011800x600-removebg-preview_1_600x.png?v=1747484784)"> Colour <span class="visually-hidden">Hire Lazer Compact Helmet Boardman URB 8.9 - SmallFRAME FINISHFRAME MATERIAL Life Systems Pocket First Aid Kit - HIRE
    £0.00Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cableServicing of my titanium road bike. Great friendly and knowledgable service from Andy and his team. Thoroughly recommended as my LBS of choice 3e\n\u003cli\u003e\n\u003cspan\u003eSEAT TUBE\u003c\/span\u003e\u003cspan\u003eExternal 34.9mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSEAT POST\u003c\/span\u003e\u003cspan\u003e31.6mm or 27.2mm with shim\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eFRONT DERAILLEUR\u003c\/span\u003e\u003cspan\u003e34.9mm band-on\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADSET\u003c\/span\u003e\u003cspan\u003eIntegral ZS44 upper \/ EC44 lower (Chris King Inset 7\/8)\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eTYRE SIZE\u003c\/span\u003e\u003cspan\u003eMax. 700c x 47mm w\/o guards\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!----\u003e","published_at":"2024-06-21T20:23:58+01:00","created_at":"2024-06-11T09:39:51+01:00","vendor":"ProjektRide","type":"","tags":["bike","BIKES","Frame","frames","NEW","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"] selling_plan_allocations":[]},{"id":45610939154658,"title":"54cm","option1":"54cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 54cm","public_title":"54cm","options":["54cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939187426,"title":"56cm","option1":"56cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 56cm","public_title":"56cm","options":["56cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939220194,"title":"58cm","option1":"58cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":n /shop\/files\/Screenshot_2024-06-21_at_20.21.17.png?v=1718997714","width":1524},{"alt":null,"id":34094324711650,"position":5,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.06.png?v=1718997714"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.06.png?v=1718997714","width":1524},{"alt":null,"id":34094324842722,"position":6,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.10.png?v=1718997715"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.10.png?v=1718997715","width":1524},{"alt":null,"id":34094324744418,"position":7,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at#FeaturedImage--template--15326745395426__1645734801adfd4c07 { --overlay-opacity: 0.2; }e\n\u003cli\u003e\n\u003cspan\u003eBRAKE MOUNT\u003c\/span\u003e\u003cspan\u003e160 front \/ 140 rear flat mount\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSEAT TUBE\u003c\/span\u003e\u003cspan\u003eExternal 34.9mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSEAT POST\u003c\/span\u003e\u003cspan\u003e31.6mm or 27.2mm with shim\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eFRONT DERAILLEUR\u003c\/span\u003e\u003cspan\u003e34.9mm band-on\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADSET\u003c\/span\u003e\u003cspan\u003eIntegral ZS44 upper \/ EC44 lower (Chris King Inset 7\/8)\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eTYRE SIZE\u003c\/span\u003e\u003cspan\u003eMax. 700c x 47mm w\/o guards\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!----\u003e"}> < Please get in touch with a member of the team either by phone ( to get the ball rolling.Black<":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-2a7057951e9b.jpg?v=1736262975"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44049903747298,"title":"Orange","option1":"Orange","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":72GET IN TOUCH <15: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-SPOTTY-0_19d44467-d15e-4836-b3e5-97f324047d67.jpg?v=1736262975","variant_ids":[44049903845602]},"available":false,"name":"Frog 47 - White","public_title":"White","options":["White"],"price":40500,"weight":0,"compare_at_price":45000,"inventory_management":"shopify","barcode":"","featured_media":{"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"}},"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 span class="visually-hidden">Hire Ortlieb 40L Pannier Bags <> a class="product__media product__media--featured" href="/products/life-systems-pocket-first-aid-kit-hire" title="Life Systems Pocket First Aid Kit - HIRE" aria-label="Life Systems Pocket First Aid Kit - HIRE" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.22_5c0e6e2d-1913-4fd1-a90d-b486895960b6_600x.png?v=1691610357)"> span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE <> The 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. Life Systems Pocket First Aid Kit - HIRESizing guide: ProjektRide Bike shop Edinburgh. a class="product__media product__media--featured" href="/products/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire" title="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" aria-label="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_600x.png?v=1691610428)"> T- 01313745324Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cablell,"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"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44049903780066,"title":"Green","option1":"Green","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":72808884830591,"product_id":8082512019682,"position":2,"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-GRN-0_483f7720-0d6f-4df1-8f00-88ef18379902.jpg?v=1736262975","variant_ids":[44049903780066]},"available":true,"name":"Frog 47 - Green","public_title":"Green","options":["Green"],"price":40500,"weight":0,"compare_at_price":45000,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":63810021753215,"position":2,"preview_iimage":{"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"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44049903845602,"title":"White","option1":"White","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":72808884961663,"product_id":8082512019682,"position":6,"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-SPOTTY-0_19d44467-d15e-4836-b3e5-97f324047d67.jpg?v=1736262975","variant_ids":[44049903845602]},"available":false,"name":"Frog 47 - White","public_title":"White","options":["White"],"price":40500,"weight":0,"compare_at_price":45000,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":63810021884287,"position":6,"preview_image":{"aspect_ratio":1.5,"height":£0.00[] < { "@context": "http://schema.org/", "@type": "Product", "name": "Frog 47", "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 easy to manoeuvre and easy for parents to carry.  The 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 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.  The 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.\nSizing guide: https:\/\/www.frogbikes.co.uk\/fitting\nIf any more information is needed, please don't hesitate to get in touch with one of the team:\nProjektRide Bike shop Edinburgh.\nedinburgh@projektride.co.uk\nT- 01313745324","brand": { "@type": "Thing", "name": "Frog" },"gtin8": "","offers": [{ "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 405.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/frog-47-red?variant=44049903714530" }, { "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 405.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/frog-47-red?variant=44049903747298" }, { "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 405.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/frog-47-red?variant=44049903780066" }, { "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 405.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/frog-47-red?variant=44049903812834" }, { "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 405.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/frog-47-red?variant=44049903845602" }, { "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 405.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/frog-47-red?variant=44049916428514" } ] } div class="featured-image__bg bg-pos-center-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/2571D9FF-E9AE-4004-9A55-C7FD4DD999D6_2048x.jpg?v=1640941114');"> ProjektRide FAQ 01313745324I'm looking to find out more information about a product, where can I find this?<[email protected]ProjektRide Bike Shop Edinburgh[email protected]
    Life Systems Pocket First Aid Kit - HIRE
    Life Systems Pocket First Aid Kit - HIRE
    Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable
    ★★★★★
    06-21_at_20.21.17.png?v=1718997714","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.06.png?v=1718997714","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.10.png?v=1718997715","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.13.png?v=1718997714","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.15.png?v=1718997714","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.18.png?v=1718997715"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49.png?v=1718997711","options":["Size"],"media":[{"alt":null,"id":34094320779490,"position":1,"preview_image":{"aspect_ratio":1.521,"height":1186,"width":1804,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49.png?v=1718997711"},"aspect_ratio":1.521,"height":1186,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49.png?v=1718997711","width":180 t":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ePlease note, this price is for the Frame, fork and headset. Available for custom builds, please get in touch for further information.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEnigma Bikes\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEDGE stands proudly as a cornerstone of our high-performance gravel bike lineup, handcrafted from Gr9 3AL 2.5 DB titanium to offer unrivalled strength and durability for the ultimate.\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cbutton class=\"accordion active\"\u003eFRAME SPECIFICATION\u003csvg class=\"icon icon-minus\" aria-hidden=\"true\"\u003e\u003cuse xlink:href=\"#icon-minus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/button\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv class=\"panel\"\u003e\n\u003cdiv class=\"bike__tech-spec\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u0
    div class="featured-image__bg bg-pos-center-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/2571D9FF-E9AE-4004-9A55-C7FD4DD999D6_2048x.jpg?v=1640941114');">
    <
    FAQ
    I'm looking to find out more information about a product, where can I find this?
    ,"position":2,"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-GRN-0_483f7720-0d6f-4df1-8f00-88ef18379902.jpg?v=1736262975","variant_ids":[44049903780066]},"available":true,"name":"Frog 47 - Green","public_title":"Green","options":["Green"],"price":40500,"weight":0,"compare_at_price":45000,"inventory_management":"shopify","barcode":"","featured_media":{"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"}},"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- Hire Ortlieb 40L Pannier Bags
    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)"> >
    Hire Ortlieb 40L Pannier Bags <£0.00
    Life Systems Pocket First Aid Kit - HIRE Lower bottom bracket to accommodate a greater leg-length ideal for growing kids<
    > Reflectors, mudguard and bell included
    <
    > ttps:\/\/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"}<
    #FeaturedImage--template--15326745395426__1645734801adfd4c07 { --overlay-opacity: 0.2; }
    <#FeaturedImage--template--24610452406655__1645734801adfd4c07 { --overlay-opacity: 0.2; }>
    Please get in touch with a member of the team either by phone () or email (
    ) or email (<
    If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item.
    < Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.

    front_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":faI'm looking to buy this product, when will it arrive and how much does postage cost?

    781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2025-12-14T12:16:34Z","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_limitsIf the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item. < 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_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,"pricingPostage is free on orders over £50. Orders under £50, our postage charge is £3.99.

    SERVICESServicingWorkshop PricesCycle to WorkContact UsTrack Service ProgressBuilding Your Bike From the BoxInsure Your Bike Sun: Closed Cookie Policy Refund policyTel 0131 374 5324Workshop PricesLocationDelivery & Returns82 Newington Road Edinburgh EH9 1QN INFORMATION Sat: 9:00 - 16:00© 2025, ProjektRide Juan Borges Designs 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 rec Edinburghselector":"","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":fa 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 = 'index';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":t 77986,43981336051938,43981336084706,43981336117474,43981336150242,43981345587426,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,4535301095446rder_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_enab rderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2025-12-14T12:19:01Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_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_descriant_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\"]","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": provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","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_descriplineup, handcrafted from Gr9 3AL 2.5 DB titanium to offer unrivalled strength and durability for the ultimate.\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cbutton class=\"accordion active\"\u003eFRAME SPECIFICATION\u003csvg class=\"icon icon-minus\" aria-hidden=\"true\"\u003e\u003cuse xlink:href=\"#icon-minus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/button\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv class=\"panel\"\u003e\n\u003cdiv class=\"bike__tech-spec\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eFRAME MATERIAL\u003c\/span\u003e\u003cspan\u003eCustom butted, size specific, grade 9 3Al 2.5V CWSR Ti tube set\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eFRAME FINISH\u003c\/span\u003e\u003cspan\u003eIncluded - hand brushed with satin bead logos\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHANGER\u003c\/span\u003e\u003cspan\u003eEnigma type 10\u00 r_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_s392904418,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,55569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,562702796 3c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eBOTTOM BRACKET\u003c\/span\u003e\u003cspan\u003eInvestment cast T47 68mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eAXLE DIMS.\u003c\/span\u003e\u003cspan\u003eThru axle | 12mm x 100mm front, 12 x 142mm rear\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADTUBE\u003c\/span\u003e\u003cspan\u003eCNC machined 44mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eCABLE ROUTING\u003c\/span\u003e\u003cspan\u003eInternal via custom entry ports\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eBRAKE MOUNT\u003c\/span\u003e\u003cspan\u003e160 front \/ 140 rear flat mount\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSEAT TUBE\u003c\/span\u003e\u003cspan\u003eExternal 34.9mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSEAT POST\u003c\/span\u003e\u003cspan\u003e31.6mm or 27.2mm with shim\u003c\/span\u003e\n\u003c\/li\u00":"54cm","options":["54cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939187426,"title":"56cm","option1":"56cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 56cm","public_title":"56cm","options":["56cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939220194,"title":"58cm","option1":"58cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 58cm","public_title":"58cm","options":["58cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations" 54,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2025-12-14T12:31:43Z","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-14T12:19:01Z","shopify_m":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":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this :[]},{"id":45610939252962,"title":"60cm","option1":"60cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 60cm","public_title":"60cm","options":["60cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49.png?v=1718997711","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.02.png?v=1718997712","\/\/projektride.co.uk\/cdn\/shop\/files\/EdgeHTdetail.jpg?v=1718997862","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.17.png?v=1718997714","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.06.png?v=1718997714","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.10.png?v=1718997715","\/\/projektride.co.uk\/cdn\/shop\/files\/S1.06.png?v=1718997714"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.06.png?v=1718997714","width":1524},{"alt":null,"id":34094324842722,"position":6,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.10.png?v=1718997715"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.10.png?v=1718997715","width":1524},{"alt":null,"id":34094324744418,"position":7,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.13.png?v=1718997714"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.13.png?v=1718997714","width":1524},{"alt":null,"id":34094324547810,"position":8,"preview_image":{"aspec iscount","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":"full","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._Reale)) { 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 t_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.15.png?v=1718997714"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.15.png?v=1718997714","width":1524},{"alt":null,"id":34094324875490,"position":9,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.18.png?v=1718997715"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.18.png?v=1718997715","width":1524}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ePlease note, this price is for the Frame, fork and headset. Available for custom builds, please get in touch for further information.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEni/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSEAT POST\u003c\/span\u003e\u003cspan\u003e31.6mm or 27.2mm with shim\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eFRONT DERAILLEUR\u003c\/span\u003e\u003cspan\u003e34.9mm band-on\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADSET\u003c\/span\u003e\u003cspan\u003eIntegral ZS44 upper \/ EC44 lower (Chris King Inset 7\/8)\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eTYRE SIZE\u003c\/span\u003e\u003cspan\u003eMax. 700c x 47mm w\/o guards\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!----\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {45610939089122 : "deny",45610939121890 : "deny",45610939154658 : "deny",45610939187426 : "deny",45610939220194 : "deny",45610939252962 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {45610939089122 : parseInt("11"),45610939121890 : parseInt("111"),45610939154658 : parse 3cp\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","published_at":"2023-04-28T19:21:34+01:00","created_at":"2ys(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 !== '') { 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.ca Int("11"),45610939187426 : parseInt("11"),45610939220194 : parseInt("11"),45610939252962 : parseInt("11"),}; window._RestockRocketConfig.variantsPreorderCount = {45610939089122 : parseInt(""),45610939121890 : parseInt(""),45610939154658 : parseInt(""),45610939187426 : parseInt(""),45610939220194 : parseInt(""),45610939252962 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {45610939089122 : null,45610939121890 : null,45610939154658 : null,45610939187426 : null,45610939220194 : null,45610939252962 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {45610939089122 : parseInt(""),45610939121890 : parseInt(""),45610939154658 : parseInt(""),45610939187426 : parseInt(""),45610939220194 : parseInt(""),45610939252962 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {45610939089122 : null,45610939121890 : null,45610939154658 : null,45610939187426 : null,45610939220194 : null,45610939252962 : null,}; window._RestockRocketColanguage 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 ect_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"}},"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":{"as 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 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 atte < 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?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Sho© 2025, 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_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 === 'ProjektRide('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.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } elsJuan Borges Designs 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_collection || settings.preorder_collection_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType ===ment-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-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-ali mily: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}. 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 = 'collection';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,"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:25pinsert_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,"sear x;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-prch_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\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/aeorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14px;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-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-widthdd\"]","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}}","s :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}.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%);-how_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,4393612994ocations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_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: ",d 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"],"configuration":{"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.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/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) { cons< SETTINGS_CACHE_DURATION) { console.debug('STOQ - settings changed recently, skipping cache'); return null; } return settings; } catch (error) { console.debug('STOQ - Error checking settings cache:', error); return null; } } function createRestockRocketContainer() { const restockRocketContainer = document.createElement('div'); restockRocketContainer.id = 'restock-rocket'; document.body.appendChild(restockRocketContainer); } function createRestockRocketScript(scriptUrl) { const restockRocketScriptElement = document.createElement('script'); restockRocketScriptElement.setAttribute('defer', 'defer'); restockRocketScriptElement.src = scriptUrl; document.body.appendChild(restockRocketScriptElement); } createRestockRocketContainer() console.debug('STOQ - extension activated') function applyTranslations(settings) { try { // Skip translation logic entirely if multi-language is not enabled if (!settings || 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 (!r esponse.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // If request failed and we have cached settings (even if expired), use them as fallback if (cachedSettings) { console.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cachedSettings); } else { console.error('STOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && = 10; const retryDelay = 500; function attemptCartCheck(attempt = 1) { if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } else if (attempt < .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-rocke t-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-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-co
    < <
    Delivery & Returns INFORMATION Blog
    Privacy Policy Terms of Service SERVICES Servicing Cycle to Work
    Email [email protected] Working Hours Mon - Fri: 09:00 - 18:30 Sun: Closed
    .Tel Website by 0131 374 5324. Location 82 Newington Roadnts & 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 EH9 1QNorder_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,43936
    tion":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","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"6em.","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":nul_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,4Email:true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"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":8597986312418,"title":"Enigma Titanium Gravel Edge Frameset","handle":"enigma-gravel-edge-frameset","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ePlease note, this price is for the Frame, fork and headset. Available for custom builds, please get in touch for further information.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEnigma Bikes\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEDGE stands proudly as a cornerstone of our high-performance gravel bike 3e\n\u003cli\u003e\n\u003cspan\u003eFRONT DERAILLEUR\u003c\/span\u003e\u003cspan\u003e34.9mm band-on\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADSET\u003c\/span\u003e\u003cspan\u003eIntegral ZS44 upper \/ EC44 lower (Chris King Inset 7\/8)\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eTYRE SIZE\u003c\/span\u003e\u003cspan\u003eMax. 700c x 47mm w\/o guards\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!----\u003e","published_at":"2024-06-21T20:23:58+01:00","created_at":"2024-06-11T09:39:51+01:00","vendor":"ProjektRide","type":"","tags":["bike","BIKES","Frame","frames","NEW","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":270000,"price_min":270000,"price_max":270000,"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":45610939089122,"title":"50cm","option1":"50cm","optHT ANGLE6003195106,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,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,43938308nfig.cachedVariantShippingTextsMarketKey = "variant_shipping_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_interval[email protected]ion2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 50cm","public_title":"50cm","options":["50cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939121890,"title":"52cm","option1":"52cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 52cm","public_title":"52cm","options":["52cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939154658,"title":"54cm","option1":"54cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 54cm","public_titlecreenshot_2024-06-21_at_20.21.13.png?v=1718997714","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.15.png?v=1718997714","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.18.png?v=1718997715"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49.png?v=1718997711","options":["Size"],"media":[{"alt":null,"id":34094320779490,"position":1,"preview_image":{"aspect_ratio":1.521,"height":1186,"width":1804,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49.png?v=1718997711"},"aspect_ratio":1.521,"height":1186,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49.png?v=1718997711","width":1804},{"alt":null,"id":34094320910562,"position":2,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.02.png?v=1718997712"},"aspect_ratio":1.227,"height":1242,"media_type":"imag70.0ion_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_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 {{ discountnfig":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.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/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'); e","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.02.png?v=1718997712","width":1524},{"alt":null,"id":34094311604450,"position":3,"preview_image":{"aspect_ratio":1.498,"height":4004,"width":5999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/EdgeHTdetail.jpg?v=1718997862"},"aspect_ratio":1.498,"height":4004,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/EdgeHTdetail.jpg?v=1718997862","width":5999},{"alt":null,"id":34094324351202,"position":4,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.17.png?v=1718997714"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.17.png?v=1718997714","width":1524},{"alt":null,"id":34094324711650,"position":5,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.2gma Bikes\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEDGE stands proudly as a cornerstone of our high-performance gravel bike lineup, handcrafted from Gr9 3AL 2.5 DB titanium to offer unrivalled strength and durability for the ultimate.\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cbutton class=\"accordion active\"\u003eFRAME SPECIFICATION\u003csvg class=\"icon icon-minus\" aria-hidden=\"true\"\u003e\u003cuse xlink:href=\"#icon-minus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/button\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv class=\"panel\"\u003e\n\u003cdiv class=\"bike__tech-spec\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eFRAME MATERIAL\u003c\/span\u003e\u003cspan\u003eCustom butted, size specific, grade 9 3Al 2.5V CWSR Ti tube set\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eFRAME FINISH\u003c\/span\u003e\u003cspan\u003eIncluded - hand brushed wit70.0fficiency 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 SETTINGS_CACHE_DURATION) { console.debug('STOQ - settings changed recently, skipping cache'); return null; } return settings; } catch (error) { console.debug('STOQ - Error checking settings cache:', error); return null; } } function createRestockRocketContainer() { const restockRocketContainer = document.createElement('div'); restockRocketContainer.id = 'restock-rocket'; document.body.appendChild(restockRocketContainer); } function createRestockRocketScript(scriptU h satin bead logos\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHANGER\u003c\/span\u003e\u003cspan\u003eEnigma type 10\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eBOTTOM BRACKET\u003c\/span\u003e\u003cspan\u003eInvestment cast T47 68mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eAXLE DIMS.\u003c\/span\u003e\u003cspan\u003eThru axle | 12mm x 100mm front, 12 x 142mm rear\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADTUBE\u003c\/span\u003e\u003cspan\u003eCNC machined 44mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eCABLE ROUTING\u003c\/span\u003e\u003cspan\u003eInternal via custom entry ports\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eBRAKE MOUNT\u003c\/span\u003e\u003cspan\u003e160 front \/ 140 rear flat mount\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSEAT TUBE\u003c\/span\u003e\u003cspan\u003eExternal 34.9mm\u003c\/span\u003e\n\u003c\nfig.variantsShippingText = {45610939089122 : "",45610939121890 : "",45610939154658 : "",45610939187426 : "",45610939220194 : "",45610939252962 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {45610939089122 : null,45610939121890 : null,45610939154658 : null,45610939187426 : null,45610939220194 : null,45610939252962 : null,}; window._RestockRocketConfig.selected_variant_id = 45610939089122; 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/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-collection.js' window._RestockRock70.0","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-2a7057951e9b.jpg?v=1736262975"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44049903747298,"title":"Orange","option1":"Orange","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":72808884797823,"product_id":8082512019682,"position":1,"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-ORANGE-0_6923ef69-c7a7-4cac-8ae5-d000a14cfbd9.jpg?v=1736262975","variant_ids":[44049903747298]},"available":false,"name":"Frog 47 - Orange","public_title":"Orange","options":["Orange"],"price":40500,"weight":0,"compare_at_price":45000,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":638se was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // If request failed and we have cached settings (even if expired), use them as fallback if (cachedSettings) { console.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cachedSettings); } else { console.error('STOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integration.enabled && integration.page_types.includ etConfig.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- SETTINGS_CACHE_DURATION) { console.debug('STOQ - settings changed recently, skipping cache'); return null; } return settings; } catch (error) { console.debug('STOQ - Error checking settings cache:', error); return null; } } function createRestockRocketContainer() { const restockRocketContainer = document.createElement('div'); restockRocketContainer.id = 'restock-rocket'; document.body.appendChild(restockRocketContainer); } function createRestockRocketScript(scriptUrl) { const restockRocketScriptElement = document.createElement('script'); restockRocketScriptElement.setAttribute('defer', 'defer'); restockRocketScriptElement.src = scriptUrl; document.body.appendChild(restockRocketScriptElement); } createRestockRocketContainer() console.debug('STOQ - extension activated') function applyTranslations(settings) { try { // Skip translation logic entirely if multi-language is not enabled if (!settings || 70.0:1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/L-FH47_media-SPOTTY-0_19d44467-d15e-4836-b3e5-97f324047d67.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\/< !settings.multi_language_enabled) { return settings; } if
    e if (attempt 7 "deny",44049903812834 : "deny",44049903845602 : "deny",44049916428514 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {44049903714530 : parseInt("0"),44049903747298 : parseInt("0"),44049903780066 : parseInt("1"),44049903812834 : parseInt("0"),44049903845602 : parseInt("0"),44049916428514 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {44049903714530 : parseInt(""),44049903747298 : parseInt(""),44049903780066 : parseInt(""),44049903812834 : parseInt(""),44049903845602 : parseInt(""),44049916428514 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {44049903714530 : null,44049903747298 : null,44049903780066 : null,44049903812834 : null,44049903845602 : null,44049916428514 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {44049903714530 : parseInt(""),44049903747298 : parseInt(""),44049903780066 : parseInt(""),44049903812834 : parseInt(""),44049903845602 : parseInt(""),44049916428514 : parseInt(""),}; winutton-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;mar.<.175ate 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.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { dding: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}.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;tran
    ,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,55569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,562y_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":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge anole.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 default locale from base fields if (window._RestockRocketConfig.normalizedLocale && !Object.prototype.hasOwnProperty.call(settings.tr75.0anslations, 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.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[key74.0]; 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 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' && (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.73.0_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 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
    untdown-timer .countdown-label{font-size:14px;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-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-rocket9-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:translateX(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%)}}@- 450 450 450 450
    10 BB DROP 70 70 70 70
    11 BB HEIGHT 272 272 272 272
    12 WHEELBASE 1077 1116 1146 1185
    13 FRONT CENTER 636 675 705 744
    14 FORK LENGTH 410 410 410 410
    15 FORK OFFSET 50 50 50 50
    KONA Geometry

    FAQ

    Questions and answers

    • Second-Hand Bikes – ProjektRide