Customisable options are available including tyre options, titanium finishing kits and alternate level group sets.
Geometry, Weight & Specs
Bike listed:
Weight and specs:
Frame weight 1.8kg Frameset 2.3kg
Product TypeCompare the geometry with your existing bike:
ComponentThe build includes Deda (Now a Free upgrade to Zipp) finishing kit and DT Swiss wheels. Optional add-ons include titanium spacers, titanium seat post, titanium stem, and/or titanium cages.
Bar Tape / Grips
BBB
Product Type
Frame
Component
Gloria - Titanium All-Road
Bar Tape / Grips
Fork
BBB
Gloria Carbon - Integrated - No Cage Mounts (45mm Tyre Max)
Frame
Handle Bar
Gloria - Titanium All-Road
Zipp Service Course
Fork
Saddle
Gloria Carbon - No cage mounts (45mm Tyre Max)
Selle Italia X1
Handle Bar
Stem
Zero RHM
Zipp Service Course
Saddle
Tyre
Selle Itallia
WTB Vulpine 45mm black
Stem
Wheelset
Deda Zero
Deda Zero
Groupset
SRAM Apex
Groupset
105 12 Speed Mechanical Groupset
Cassette
Apex 12spd 11-44
Cassette
CS-R7101 105 12-speed cassette, 11 - 34T
Chain
SRAM AXS
Chain
CN-M7100 SLX/105 HG+ chain with quick link, 12-speed, 126L
CrankSet
Apex 1x 40t
Crank Set
FC-R7100 105 double 12-speed chainset, HollowTech II
Head Set
Gloria EC44 Integrated
Head Set
Geometry:
Geometry:
50
52
72.572
72.572.5
72.5
Seat Tube Angle
73.5
73.572.5
73.572.5
73.5
73.5Seat Tube Angle
73.573.5
73.5
Effective Top Tube73.5
51973.5
53373.5
54773.5
560
574Effective Top Tube
588519
533
Seat Tube C-T547
456560
484574
518588
544
558Seat Tube C-T
588456
484
Head Tube518
110544
588
142
160
Head Tube
180
110
198
126
142
Chain stay
160
425
180
425
198
425
425
Chain stay
425
425
425
425
425
Wheelbase
425
998
425
1003
425
1008
1017
Wheelbase
1031
998
1046.5
1003
1008
DT Length
1017
618.1
1031
628.6
1046.5
639
395
395
395
About the All-Road
About the All-Road
So if you're in the mood for a weekly club ride, an adventure or the thrill of a racing experience, this bike is your ideal partner. It seamlessly adapts to your riding preferences, making it versatile for a variety of uses:
1. Fast-Paced Riding
: Its lightweight frame and aerodynamic design make this bike a speed demon. Ready to challenge the open road, it offers precision and agility, letting you stretch your limits.
So if you're in the mood for a weekly club ride, an adventure or the thrill of a racing experience, this bike is your ideal partner. It seamlessly adapts to your riding preferences, making it versatile for a variety of uses:
2. Cruise & Endurance Rides1. Fast-Paced Riding: For those who enjoy a more laid-back cycling experience, this bike promises a comfortable, smooth ride. Perfect for scenic explorations or neighbourhood cruising, it guarantees an enjoyable journey every time.: Its lightweight frame and aerodynamic design make this bike a speed demon. Ready to challenge the open road, it offers precision and agility, letting you stretch your limits.
3. Club Rides2. Cruise & Endurance Rides: Join in on group rides and stay in step with your fellow cyclists. This bike's responsive handling and efficient power transfer are ideal for keeping pace with the pack, all while enjoying the camaraderie.: For those who enjoy a more laid-back cycling experience, this bike promises a comfortable, smooth ride. Perfect for scenic explorations or neighbourhood cruising, it guarantees an enjoyable journey every time.
4. Racing Thrills3. Club Rides: If competitive racing gets your heart racing, this bike is up for the challenge. Equipped with advanced features, it helps you navigate tough terrains and smash personal records.: Join in on group rides and stay in step with your fellow cyclists. This bike's responsive handling and efficient power transfer are ideal for keeping pace with the pack, all while enjoying the camaraderie.
5. Gravel Rides4. Racing Thrills: With its impressive capabilities, this bike also tackles off-road adventures. It accommodates up to 45c tires, taking you anywhere you wish to explore.: If competitive racing gets your heart racing, this bike is up for the challenge. Equipped with advanced features, it helps you navigate tough terrains and smash personal records.
Plus, there are customisation options available!5. Gravel Rides
: With its impressive capabilities, this bike also tackles off-road adventures. It accommodates up to 45c tires, taking you anywhere you wish to explore.
Dive into the joy of cycling with our expertly crafted bike, designed with passion to enhance your riding experiences.
Plus, there are customisation options available!
No matter your cycling style or goals, this bike promises to surpass your expectations. It strikes the perfect balance of speed, comfort, and performance, empowering you to tackle every adventure with confidence and joy.
Dive into the joy of cycling with our expertly crafted bike, designed with passion to enhance your riding experiences.
Embrace the freedom to ride your way, at your pace, and discover the full potential of your cycling journey with this exceptional bike.
No matter your cycling style or goals, this bike promises to surpass your expectations. It strikes the perfect balance of speed, comfort, and performance, empowering you to tackle every adventure with confidence and joy.
Other relevant information
Embrace the freedom to ride your way, at your pace, and discover the full potential of your cycling journey with this exceptional bike.
[]
The Gloria Titanium All-Road is a highly versatile bike designed with drop bars. While we won’t claim it can do everything and take you everywhere, it’s built to push the boundaries as much as possible. With clearance for 700x45c tires, this bike accommodates chunky tires that not only enhance comfort but also perform well both on and off the road. It’s designed to be efficient on the road without being twitchy off-road.
We’re proud of the compatibility we've achieved across multiple modern groupsets. For example, it’s compatible with externally routed mechanical setups for both 2x and 1x drivetrains. It also supports 1x mechanical internally routed through a full outer cable inside the frame and is fully compatible with Di2 2x and 1x. Moreover, it can be routed through the headset, making it SMR or DCR compatible. And don’t worry, the coolest thing is that if you don’t run external cables, the frame will look neat and without any cable guides or stops, because they are designed to be removed when not in use.
In a nutshell, you can fit almost anything, go almost anywhere, and the Gloria Titanium All-Road will suit most riding styles out there.
{"@context":"http:\/\/schema.org\/","@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset#product","@type":"ProductGroup","brand":{"@type":"Brand","name":"Gloria"},"category":"Road Bikes","description":"All Road Frame details\n\n\n\n\n\nZS44\/EC44 headset included\nUDH Hanger included\nAlloy seatpost collar included\nTitanium seatpost collar (optional extra)\n3AL-2.5V grade 9\nButted tubes\nThru-axles front \u0026amp; rear and all appropriate cable guides included\nLifetime Frame Warranty\nFrameset weight: ~ 2.2k g\nFrame weight: ~1.8 kg\nFrame finish - Sandblasted (Standard)\nAxles 12mm x 100mm front and 12mm x 142mm The Robert Axle Project bolt thru\nBottom bracket Standard BSA\nMudguards and rack mounts compatible\nBrake mount: Flat mount 140mm or 160mm rotors\nSeat tube internal 27.2mm \u0026amp; Seat tube external 31.8\nFrame Tyre clearance 700 x 45c\nFront mech clamp 31.8 \nAxle size 166XM12 - TP1.0\n\nGeometry, Weight \u0026amp; Specs\n\n\n\n\nWeight and specs:\nFrame weight 1.8kg Frameset 2.3kg\nCompare the geometry with your existing bike:\nThe build includes Deda (Now a Free upgrade to Zipp) finishing kit and DT Swiss wheels. Optional add-ons include titanium spacers, titanium seat post, titanium stem, and\/or titanium cages.\n\n\n\n\n\n\n\nProduct Type\nComponent\n\n\nBar Tape \/ Grips\nBBB\n\n\nFrame\nGloria - Titanium All-Road\n\n\nFork\nGloria Carbon - No cage mounts (45mm Tyre Max)\n\n\nHandle Bar\nZero RHM\n\n\nSaddle\nSelle Itallia\n\n\nStem\nDeda Zero\n\n\nTyre\nVittoria Zaffiro V 700x32c Rigid Full Black Clincher Tyre\n\n\nWheel Pair\nDT Swiss 540 Alloy Wheelset (DT 370)\n\n\nBottom Bracket\nShimano Ultegra SM-BBR60 Bottom Bracket\n\n\nSeat Post\nDeda Zero\n\n\nGroupset\n105 12 Speed Mechanical Groupset\n\n\nCassette\nCS-R7101 105 12-speed cassette, 11 - 34T\n\n\nChain\nCN-M7100 SLX\/105 HG+ chain with quick link, 12-speed, 126L\n\n\nCrank Set\nFC-R7100 105 double 12-speed chainset, HollowTech II\n\n\nHead Set\nGloria ZS44\/EC44 External\n\n\nHead Set spacer\n3x Gloria Titanium Spacer Set \/ 1 1\/8\" \/ 10mm\n\n\nLeft Lever\nST-R7120 105 hydraulic disc STI set, flat mount calliper, left rear\n\n\nLevers\nST-R7120 105 hydraulic disc STI set, flat mount calliper, right front, black\n\n\nRear Mech\nRD-R7100 105 12-speed rear derailleur\n\n\nFont Mech\nFD-R7100 105 12-speed toggle front derailleur, double 31.8 mm\n\n\nSeat Clamp\nGloria Forged Alloy Bolt Up\n\n\nRotors\nFront 160 \/ Rear 140 SMRT64\n\n\n\n \nGeometry: \n\n\n\n\n\n\n\n\n\n\n\n\n\n50\n52\n54\n56\n58\n60\n\n\nStack\n543.1\n562\n580.9\n600\n619\n636.6\n\n\nReach\n358.1\n366.5\n380.9\n382.3\n390\n399.5\n\n\nHead Tube Angle\n70\n71\n72\n72.5\n72.5\n72.5\n\n\nSeat Tube Angle\n73.5\n73.5\n73.5\n73.5\n73.5\n73.5\n\n\nEffective Top Tube\n519\n533\n547\n560\n574\n588\n\n\nSeat Tube C-T\n456\n484\n518\n544\n558\n588\n\n\nHead Tube\n110\n126\n142\n160\n180\n198\n\n\nChain stay\n425\n425\n425\n425\n425\n425\n\n\nWheelbase\n998\n1003\n1008\n1017\n1031\n1046.5\n\n\nDT Length\n618.1\n628.6\n639\n647.3\n656\n665.7\n\n\nFork length\n395\n395\n395\n395\n395\n395\n\n\n\n \nAbout the All-Road\n\n\n\n\nSo if you're in the mood for a weekly club ride, an adventure or the thrill of a racing experience, this bike is your ideal partner. It seamlessly adapts to your riding preferences, making it versatile for a variety of uses:1. Fast-Paced Riding: Its lightweight frame and aerodynamic design make this bike a speed demon. Ready to challenge the open road, it offers precision and agility, letting you stretch your limits.\n2. Cruise \u0026amp; Endurance Rides: For those who enjoy a more laid-back cycling experience, this bike promises a comfortable, smooth ride. Perfect for scenic explorations or neighbourhood cruising, it guarantees an enjoyable journey every time.\n3. Club Rides: Join in on group rides and stay in step with your fellow cyclists. This bike's responsive handling and efficient power transfer are ideal for keeping pace with the pack, all while enjoying the camaraderie.\n4. Racing Thrills: If competitive racing gets your heart racing, this bike is up for the challenge. Equipped with advanced features, it helps you navigate tough terrains and smash personal records.\n5. Gravel Rides: With its impressive capabilities, this bike also tackles off-road adventures. It accommodates up to 45c tires, taking you anywhere you wish to explore.\nPlus, there are customisation options available!\nDive into the joy of cycling with our expertly crafted bike, designed with passion to enhance your riding experiences.\nNo matter your cycling style or goals, this bike promises to surpass your expectations. It strikes the perfect balance of speed, comfort, and performance, empowering you to tackle every adventure with confidence and joy.\nEmbrace the freedom to ride your way, at your pace, and discover the full potential of your cycling journey with this exceptional bike.\n\n\n","hasVariant":[{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786264447#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--173.webp?v=1747405637\u0026width=1920","name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 50","offers":{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786264447#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"2699.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786264447"}},{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786297215#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--173.webp?v=1747405637\u0026width=1920","name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 52","offers":{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786297215#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"2699.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786297215"}},{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786329983#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--173.webp?v=1747405637\u0026width=1920","name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 54","offers":{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786329983#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"2699.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786329983"}},{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786362751#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--173.webp?v=1747405637\u0026width=1920","name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 56","offers":{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786362751#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"2699.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786362751"}},{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786395519#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--173.webp?v=1747405637\u0026width=1920","name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 58","offers":{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786395519#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"2699.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786395519"}},{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786428287#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--173.webp?v=1747405637\u0026width=1920","name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 60","offers":{"@id":"\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786428287#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"2699.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset?variant=55464786428287"}}],"name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset","productGroupID":"15083523637631","url":"https:\/\/projektride.co.uk\/products\/gloria-all-road-shimano-105-dt-swiss-wheelset"}
We have multiple fork options available, including fully internally routed forks, cage mounts, dynamo compatible and other options. If you have any special requirements, please let us know—I’m sure we can help.
002204543,57603002237311,57603002270079,57603002302847,57603002335615,57603002368383,57603002466687,57603002499455,57603002532223,57603003089279,57603003122047,57603003154815,57603003187583,57603003220351,57603003253119,57603003285887,57603003318655,57603003351423,57603003384191,57933586399615,57933586432383,57933588693375,57933588726143,57933589676415,57933589873023,57933591314815,57933592297855,57933592330623,57933592396159,57933592461695,57933592494463,57933592527231,57933592559999,57933592592767,57933592658303,57933592691071,57933592789375,57933593444735,57933593674111,57933594001791,57933594034559,57933594067327,57933594263935,57933594362239,57933594395007,57933595017599,57933595967871,57933598228863,57933598425471,57933599342975,57933599539583,57933600096639,57933600293247,57933601603967,57933601636735,57933601669503,57933602193791,57933602226559,57933602292095,57933603471743,57933608026495,57933609304447,57933609337215,57933609369983,57933609402751,57933609435519,57933609501055,57933609566591,579336096
32127,57933610484095,57933610746239,57933610779007,57933611598207,57933611630975,57933611663743,57933611827583,57933611860351,57933613105535,57933613203839,57933613236607,57933613269375,57933613302143,57933613334911,57933615759743,57933615825279,57933617070463,57933618217343,57933618282879,57933618413951,57933618479487],"updated_at":"2026-07-11T06:23:26Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-07-11T08:04:22Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-07-11T08:04:20Z","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":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,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_enabled":true,"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,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#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_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgem
ent_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"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,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}];(function() {
const cachedData = {"plans":[{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,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_enabled":true,"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 preord
er","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#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_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_ackn
owledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"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,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}],"disabled_plan_ids":[713813721471,713176482175,714631872895],"cached_at":"2026-04-09T09:16:46Z"};
if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) {
// Find the maximum updated_at from all items in old array
const oldPlans = window._RestockRocketConfig.sellingPlans;
const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0
? oldPlans.reduce(function(max, plan) {
// Parse dates for proper comparison (handles mixed ISO formats)
if (plan.updated_at) {
const planDate = new Date(plan.updated_at);
const maxDate = max ? new Date(max) : null;
return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxD
ate)) ? plan.updated_at : max;
}
return max;
}, '')
: null;
// Use cached if old array is empty/has no timestamps, or cached is newer
// Parse dates for comparison to handle format differences (+00:00 vs .000Z)
const cachedDate = new Date(cachedData.cached_at);
const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null;
const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate));
if (useCached) {
if (Array.isArray(cachedData.plans)) {
window._RestockRocketConfig.sellingPlans = cachedData.plans;
// Only use disabled_plan_ids when using cached plans
window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || [];
console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')');
}
} else {
// When using old format
(stale cache), don't trust disabled_plan_ids
window._RestockRocketConfig.disabledSellingPlanIds = [];
console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')');
}
}
})();window._RestockRocketConfig.enabledNotifyMeVariantIds = [];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};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.obfuscateInventoryQuant
ity = false;window._RestockRocketConfig.product = {"id":15083523637631,"title":"Gloria All Road - Shimano 105 - DT Swiss Wheelset","handle":"gloria-all-road-shimano-105-dt-swiss-wheelset","description":"\u003ch2 class=\"product-about__accordion-title active\"\u003e\u003cspan class=\"h5\"\u003eAll Road Frame details\u003c\/span\u003e\u003c\/h2\u003e\n\u003cdiv class=\"product-about__more-link-wrapper\"\u003e\n\u003cdiv class=\"product-about__more-link\"\u003e\u003csvg class=\"icon icon-filter-two\" width=\"12\" height=\"7\" viewbox=\"0 0 12 7\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cpath d=\"M10 1.5L6 5.5L2 1.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"square\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"product-about__accordion-description\"\u003e\n\u003cul\u003e\n\u003cli\u003eZS44\/EC44 headset included\u003c\/li\u003e\n\u003cli\u003eUDH Hanger included\u003c\/li\u003e\n\u003cli\u003eAlloy seatpost collar included\u003c\/li\u003e\n\u003cli\u003eTitanium seatpost collar (optional extra)\u003c\/li\u003e\n\u003cli\u003e3AL-2.5V grade 9\u003c\/li\u003e\n\u003cli\u003eButted tubes\u003c\/li\u003e\n\u003cli\u003eThru-axles front \u0026amp; rear and all appropriate cable guides included\u003c\/li\u003e\n\u003cli\u003eLifetime Frame Warranty\u003c\/li\u003e\n\u003cli\u003eFrameset weight: ~ 2.2k g\u003c\/li\u003e\n\u003cli\u003eFrame weight: ~1.8 kg\u003c\/li\u003e\n\u003cli\u003eFrame finish - Sandblasted (Standard)\u003c\/li\u003e\n\u003cli\u003eAxles 12mm x 100mm front and 12mm x 142mm The Robert Axle Project bolt thru\u003c\/li\u003e\n\u003cli\u003eBottom bracket Standard BSA\u003c\/li\u003e\n\u003cli\u003eMudguards and rack mounts compatible\u003c\/li\u003e\n\u003cli\u003eBrake mount: Flat mount 140mm or 160mm rotors\u003c\/li\u003e\n\u003cli\u003eSeat tube internal 27.2mm \u0026amp; Seat tube external 31.8\u003c\/li\u003e\n\u003cli\u003eFrame Tyre clearance 700 x 45c\u003c\/li\u003e\n\u003cli\u003eFront mech clamp 3
1.8 \u003c\/li\u003e\n\u003cli\u003eAxle size 166XM12 - TP1.0\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2 class=\"h5 product-about__accordion-title active\"\u003e\u003cspan\u003eGeometry, Weight \u0026amp; Specs\u003c\/span\u003e\u003c\/h2\u003e\n\u003cdiv class=\"product-about__more-link-wrapper\"\u003e\n\u003cdiv class=\"product-about__more-link\"\u003e\u003csvg class=\"icon icon-filter-two\" width=\"12\" height=\"7\" viewbox=\"0 0 12 7\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cpath d=\"M10 1.5L6 5.5L2 1.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"square\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"product-about__accordion-description main-product-description\"\u003e\n\u003cp\u003eWeight and specs:\u003c\/p\u003e\n\u003cp\u003eFrame weight 1.8kg Frameset 2.3kg\u003c\/p\u003e\n\u003cp\u003e\u003ca rel=\"noopener\" href=\"https:\/\/geometrygeeks.bike\/bike\/gloria-all-road-2025\/\" target=\"_blank\"\u003eCompare the geometry with your existing bike:\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eThe build includes Deda (Now a Free upgrade to Zipp) finishing kit and DT Swiss wheels. Optional add-ons include titanium spacers, titanium seat post, titanium stem, and\/or titanium cages.\u003c\/span\u003e\u003c\/p\u003e\n\u003ctable xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" cellspacing=\"0\" cellpadding=\"0\" dir=\"ltr\" border=\"1\" data-sheets-root=\"1\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"210\"\u003e\n\u003ccol width=\"710\"\u003e\n\u003c\/colgroup\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Product Type\"}'\u003e\u003cstrong\u003eProduct Type\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Component\"}'\u003e\u003cstrong\u003eComponent\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Bar Tape \/ Grips\"}'\u003eBar Tape \/ Grips\u003c\/td\u003e\n\u003c
td data-sheets-value='{\"1\":2,\"2\":\"BBB\"}'\u003eBBB\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Frame\"}'\u003eFrame\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria - Titanium All- road\"}'\u003eGloria - Titanium All-Road\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Fork\"}'\u003eFork\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria Cabon - (no- cage mounts)\"}'\u003eGloria Carbon - No cage mounts (45mm Tyre Max)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Handle Bar\"}'\u003eHandle Bar\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Zero RHM \"}'\u003eZero RHM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Saddle\"}'\u003eSaddle\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Selle Itallia\"}'\u003eSelle Itallia\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Stem\"}'\u003eStem\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Deda zero\"}'\u003eDeda Zero\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Tyre\"}'\u003eTyre\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Vittoria Zaffiro V 700x32c Rigid Full Black Clincher Tyre\"}'\u003eVittoria Zaffiro V 700x32c Rigid Full Black Clincher Tyre\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Wheel Pair\"}'\u003eWheel Pair\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"DT Swiss370 CL Hub G 540 Rim TLR\"}'\u003eDT Swiss 540 Alloy Wheelset (DT 370)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Bottom Bracket\"}'\u003eBottom Bracket\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Shimano Ultegra SM-BBR60 Bottom Bracket\"}'\u003eShimano Ultegra SM-BBR60 B
ottom Bracket\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Seat Post\"}'\u003eSeat Post\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Deda Zero\"}'\u003eDeda Zero\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Groupset\"}'\u003eGroupset\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"105 12 Speed Mechanical Groupset\"}'\u003e105 12 Speed Mechanical Groupset\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Cassette\"}'\u003eCassette\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"CS-R7101 105 12-speed cassette, 11 - 34T\"}'\u003eCS-R7101 105 12-speed cassette, 11 - 34T\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Chain\"}'\u003eChain\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"CN-M7100 SLX\/105 HG+ chain with quick link, 12-speed, 126L\"}'\u003eCN-M7100 S
LX\/105 HG+ chain with quick link, 12-speed, 126L\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Crank Set\"}'\u003eCrank Set\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"FC-R7100 105 double 12-speed chainset, HollowTech II\"}'\u003eFC-R7100 105 double 12-speed chainset, HollowTech II\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Head Set\"}'\u003eHead Set\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria ZS44\/EC44\"}'\u003eGloria ZS44\/EC44 External\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Head Set spacer\"}'\u003eHead Set spacer\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\" Headset Spacer Set \/ 1 1\/8\\\" \/ 3 x 10mm \/ Black\"}'\u003e3x Gloria Titanium Spacer Set \/ 1 1\/8\" \/ 10mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Left Lever\"}'\u003eLeft
Lever\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"ST-R7120 105 hydraulic disc STI set, flat mount calliper, left rear\"}'\u003eST-R7120 105 hydraulic disc STI set, flat mount calliper, left rear\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Levers\"}'\u003eLevers\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"ST-R7120 105 hydraulic disc STI set, flat mount calliper, right front, black\"}'\u003eST-R7120 105 hydraulic disc STI set, flat mount calliper, right front, black\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Rear Mech\"}'\u003eRear Mech\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"RD-R7100 105 12-speed rear derailleur\"}'\u003eRD-R7100 105 12-speed rear derailleur\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Font Mech\"}'\u003eFont Mech\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"FD-R7100 105 12-speed toggle front derailleur, double 31.8 mm\"}'\u003eFD-R7100 105 12-speed toggle front derailleur, double 31.8 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Seat Clamp\"}'\u003eSeat Clamp\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria Forged Alloy Bolt Up\"}'\u003eGloria Forged Alloy Bolt Up\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Rotors\"}'\u003eRotors\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Front 160 \/ Rear 140 SMRT64 \"}'\u003eFront 160 \/ Rear 140 SMRT64\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch3\u003e\u003ca href=\"https:\/\/geometrygeeks.bike\/bike\/gloria-all-road-2025\/\"\u003e\u003cspan\u003e\u003cstrong\u003eGeometry: \u003cbr\u003e\u003c\/strong\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/h3\u003e\n\u003ctable xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" cellsp
acing=\"0\" cellpadding=\"0\" dir=\"ltr\" border=\"1\" data-sheets-root=\"1\" data-sheets-baot=\"1\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"100\"\u003e\n\u003ccol width=\"100\"\u003e\n\u003ccol width=\"100\"\u003e\n\u003ccol width=\"100\"\u003e\n\u003ccol width=\"116\"\u003e\n\u003ccol width=\"100\"\u003e\n\u003ccol width=\"100\"\u003e\n\u003c\/colgroup\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003c\/td\u003e\n\u003ctd\u003e50\u003c\/td\u003e\n\u003ctd\u003e52\u003c\/td\u003e\n\u003ctd\u003e54\u003c\/td\u003e\n\u003ctd\u003e56\u003c\/td\u003e\n\u003ctd\u003e58\u003c\/td\u003e\n\u003ctd\u003e60\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eStack\u003c\/td\u003e\n\u003ctd\u003e543.1\u003c\/td\u003e\n\u003ctd\u003e562\u003c\/td\u003e\n\u003ctd\u003e580.9\u003c\/td\u003e\n\u003ctd\u003e600\u003c\/td\u003e\n\u003ctd\u003e619\u003c\/td\u003e\n\u003ctd\u003e636.6\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eReach\u003c\/td\u003e\n\u003ctd\u003e358.1\u003
\u003ctd\u003e1003\u003c\/td\u003e\n\u003ctd\u003e1008\u003c\/td\u003e\n\u003ctd\u003e1017\u003c\/td\u003e\n\u003ctd\u003e1031\u003c\/td\u003e\n\u003ctd\u003e1046.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDT Length\u003c\/td\u003e\n\u003ctd\u003e618.1\u003c\/td\u003e\n\u003ctd\u003e628.6\u003c\/td\u003e\n\u003ctd\u003e639\u003c\/td\u003e\n\u003ctd\u003e647.3\u003c\/td\u003e\n\u003ctd\u003e656\u003c\/td\u003e\n\u003ctd\u003e665.7\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFork length\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2 class=\"product-about__accordion-title active\"\u003e\u003cspan class=\"h5\"\u003eAbout the All-Road\u003c\/span\u003e\u003c\/h2\u003e\n\u003cdiv class=\"product
-about__more-link-wrapper\"\u003e\n\u003cdiv class=\"product-about__more-link\"\u003e\u003csvg class=\"icon icon-filter-two\" width=\"12\" height=\"7\" viewbox=\"0 0 12 7\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cpath d=\"M10 1.5L6 5.5L2 1.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"square\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"product-about__accordion-description\"\u003e\n\u003cp\u003eSo if you're in the mood for a weekly club ride, an adventure or the thrill of a racing experience, this bike is your ideal partner. It seamlessly adapts to your riding preferences, making it versatile for a variety of uses:\u003cbr\u003e\u003cbr\u003e\u003cstrong\u003e1. Fast-Paced Riding\u003c\/strong\u003e: Its lightweight frame and aerodynamic design make this bike a speed demon. Ready to challenge the open road, it offers precision and agility, letting you stretch your limits.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. Cruise \u0026amp; Endurance Rides\u003c\/strong\u003e: For those who enjoy a more laid-back cycling experience, this bike promises a comfortable, smooth ride. Perfect for scenic explorations or neighbourhood cruising, it guarantees an enjoyable journey every time.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e3. Club Rides\u003c\/strong\u003e: Join in on group rides and stay in step with your fellow cyclists. This bike's responsive handling and efficient power transfer are ideal for keeping pace with the pack, all while enjoying the camaraderie.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e4. Racing Thrills\u003c\/strong\u003e: If competitive racing gets your heart racing, this bike is up for the challenge. Equipped with advanced features, it helps you navigate tough terrains and smash personal records.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e5. Gravel Rides\u003c\/strong\u003e: With its impressive capabilities, this bike also tackles off-road adventures. It accommodates up to 45c tires, taking you anywhere you wish to explore.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlus, there are customisation options available!\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eDive into the joy of cycling with our expertly crafted bike, designed with passion to enhance your riding experiences.\u003c\/p\u003e\n\u003cp\u003eNo matter your cycling style or goals, this bike promises to surpass your expectations. It strikes the perfect balance of speed, comfort, and performance, empowering you to tackle every adventure with confidence and joy.\u003c\/p\u003e\n\u003cp\u003eEmbrace the freedom to ride your way, at your pace, and discover the full potential of your cycling journey with this exceptional bike.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","published_at":"2025-05-16T15:29:56+01:00","created_at":"2025-05-16T15:29:56+01:00","vendor":"Gloria","type":"Bicycles","tags":["All Road","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":269900,"price_min":269900,"price_max":269900,"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":55464786264447,"title":"50","option1":"50","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 50","public_title":"50","options":["50"],"price":269900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":55464786297215,"title":"52","option1":"52","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 52","public_title":"52","options":["52"],"price":269900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":55464786329983,"title":"54","option1":"54","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 54","public_title":"54","options":["54"],"price":269900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":55464786362751,"title":"56","option1":"56","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 56","public_title":"56","options":["56"],"price":269900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"q
uantity_rule":{"min":1,"max":null,"increment":1}},{"id":55464786395519,"title":"58","option1":"58","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 58","public_title":"58","options":["58"],"price":269900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":55464786428287,"title":"60","option1":"60","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Gloria All Road - Shimano 105 - DT Swiss Wheelset - 60","public_title":"60","options":["60"],"price":269900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--173.webp?v=1747405637","\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--174.webp?v=1747405647","\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--179.webp?v=1747405656","\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--168.webp?v=1747405675","\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--166.webp?v=1747405690","\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--177.webp?v=1747405699","\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--167.webp?v=1747405709"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--173.webp?v=1747405637","options":["Size"],"media":[{"alt":null,"id":65799513506175,"position":1,"preview_image":{"aspect_ratio":1.5,"height":1365,"width":2048,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--173.webp?v=1747405637"},"aspect_ratio":1.5,"height":1365,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--173.webp?v=1747405637","width":2048},{"alt":null,"id":657995210
42815,"position":2,"preview_image":{"aspect_ratio":1.5,"height":1365,"width":2048,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--174.webp?v=1747405647"},"aspect_ratio":1.5,"height":1365,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--174.webp?v=1747405647","width":2048},{"alt":null,"id":65799525400959,"position":3,"preview_image":{"aspect_ratio":1.5,"height":1365,"width":2048,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--179.webp?v=1747405656"},"aspect_ratio":1.5,"height":1365,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--179.webp?v=1747405656","width":2048},{"alt":null,"id":65799535886719,"position":4,"preview_image":{"aspect_ratio":1.5,"height":1365,"width":2048,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--168.webp?v=1747405675"},"aspect_ratio":1.5,"height":1365,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Gloria-Low--168.webp?v=1747405675","width":2048},{"alt":null,"id":6579 finishing kit and DT Swiss wheels. Optional add-ons include titanium spacers, titanium seat post, titanium stem, and\/or titanium cages.\u003c\/span\u003e\u003c\/p\u003e\n\u003ctable xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" cellspacing=\"0\" cellpadding=\"0\" dir=\"ltr\" border=\"1\" data-sheets-root=\"1\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"210\"\u003e\n\u003ccol width=\"710\"\u003e\n\u003c\/colgroup\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Product Type\"}'\u003e\u003cstrong\u003eProduct Type\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Component\"}'\u003e\u003cstrong\u003eComponent\u003c\/strong\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Bar Tape \/ Grips\"}'\u003eBar Tape \/ Grips\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"BBB\"}'\u003eBBB\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"
Frame\"}'\u003eFrame\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria - Titanium All- road\"}'\u003eGloria - Titanium All-Road\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Fork\"}'\u003eFork\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria Cabon - (no- cage mounts)\"}'\u003eGloria Carbon - No cage mounts (45mm Tyre Max)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Handle Bar\"}'\u003eHandle Bar\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Zero RHM \"}'\u003eZero RHM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Saddle\"}'\u003eSaddle\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Selle Itallia\"}'\u003eSelle Itallia\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Stem\"}'\u003eStem\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Deda zero\"}'\u003eDeda Zero\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Tyre\"}'\u003eTyre\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Vittoria Zaffiro V 700x32c Rigid Full Black Clincher Tyre\"}'\u003eVittoria Zaffiro V 700x32c Rigid Full Black Clincher Tyre\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Wheel Pair\"}'\u003eWheel Pair\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"DT Swiss370 CL Hub G 540 Rim TLR\"}'\u003eDT Swiss 540 Alloy Wheelset (DT 370)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Bottom Bracket\"}'\u003eBottom Bracket\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Shimano Ultegra SM-BBR60 Bottom Bracket\"}'\u003eShimano Ultegra SM-BBR60 Bottom Bracket\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Seat Post\"}'\u003eSeat Post\u003c\/td\u00
3e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Deda Zero\"}'\u003eDeda Zero\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Groupset\"}'\u003eGroupset\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"105 12 Speed Mechanical Groupset\"}'\u003e105 12 Speed Mechanical Groupset\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Cassette\"}'\u003eCassette\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"CS-R7101 105 12-speed cassette, 11 - 34T\"}'\u003eCS-R7101 105 12-speed cassette, 11 - 34T\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Chain\"}'\u003eChain\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"CN-M7100 SLX\/105 HG+ chain with quick link, 12-speed, 126L\"}'\u003eCN-M7100 SLX\/105 HG+ chain with quick link, 12-speed, 126L\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Crank Set\"}'\u003eCrank Set\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"FC-R7100 105 double 12-speed chainset, HollowTech II\"}'\u003eFC-R7100 105 double 12-speed chainset, HollowTech II\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Head Set\"}'\u003eHead Set\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria ZS44\/EC44\"}'\u003eGloria ZS44\/EC44 External\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Head Set spacer\"}'\u003eHead Set spacer\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\" Headset Spacer Set \/ 1 1\/8\\\" \/ 3 x 10mm \/ Black\"}'\u003e3x Gloria Titanium Spacer Set \/ 1 1\/8\" \/ 10mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Left Lever\"}'\u003eLeft Lever\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"ST-R7120 105 hydraulic disc STI set, flat mount calliper, left rear\"}'\u003eST-R71
20 105 hydraulic disc STI set, flat mount calliper, left rear\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Levers\"}'\u003eLevers\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"ST-R7120 105 hydraulic disc STI set, flat mount calliper, right front, black\"}'\u003eST-R7120 105 hydraulic disc STI set, flat mount calliper, right front, black\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Rear Mech\"}'\u003eRear Mech\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"RD-R7100 105 12-speed rear derailleur\"}'\u003eRD-R7100 105 12-speed rear derailleur\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Font Mech\"}'\u003eFont Mech\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"FD-R7100 105 12-speed toggle front derailleur, double 31.8 mm\"}'\u003eFD-R7100 105 12-speed toggle front derailleur, double 31.8 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Seat Clamp\"}'\u003eSeat Clamp\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Gloria Forged Alloy Bolt Up\"}'\u003eGloria Forged Alloy Bolt Up\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Rotors\"}'\u003eRotors\u003c\/td\u003e\n\u003ctd data-sheets-value='{\"1\":2,\"2\":\"Front 160 \/ Rear 140 SMRT64 \"}'\u003eFront 160 \/ Rear 140 SMRT64\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch3\u003e\u003ca href=\"https:\/\/geometrygeeks.bike\/bike\/gloria-all-road-2025\/\"\u003e\u003cspan\u003e\u003cstrong\u003eGeometry: \u003cbr\u003e\u003c\/strong\u003e\u003c\/span\u003e\u003c\/a\u003e\u003c\/h3\u003e\n\u003ctable xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" cellspacing=\"0\" cellpadding=\"0\" dir=\"ltr\" border=\"1\" data-sheets-root=\"1\" data-sheets-baot=\"1\"\u003e\n\u003ccolgroup\u003e\n\u003ccol width=\"100\
"\u003e\n\u003ccol width=\"100\"\u003e\n\u003ccol width=\"100\"\u003e\n\u003ccol width=\"100\"\u003e\n\u003ccol width=\"116\"\u003e\n\u003ccol width=\"100\"\u003e\n\u003ccol width=\"100\"\u003e\n\u003c\/colgroup\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003c\/td\u003e\n\u003ctd\u003e50\u003c\/td\u003e\n\u003ctd\u003e52\u003c\/td\u003e\n\u003ctd\u003e54\u003c\/td\u003e\n\u003ctd\u003e56\u003c\/td\u003e\n\u003ctd\u003e58\u003c\/td\u003e\n\u003ctd\u003e60\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eStack\u003c\/td\u003e\n\u003ctd\u003e543.1\u003c\/td\u003e\n\u003ctd\u003e562\u003c\/td\u003e\n\u003ctd\u003e580.9\u003c\/td\u003e\n\u003ctd\u003e600\u003c\/td\u003e\n\u003ctd\u003e619\u003c\/td\u003e\n\u003ctd\u003e636.6\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eReach\u003c\/td\u003e\n\u003ctd\u003e358.1\u003c\/td\u003e\n\u003ctd\u003e366.5\u003c\/td\u003e\n\u003ctd\u003e380.9\u003c\/td\u003e\n\u003ctd\u003e382.3\u003c\/td\u003e\n\u003ctd\u003e390\u003c\/td\u003e\n\u003ctd\u003e399.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHead Tube Angle\u003c\/td\u003e\n\u003ctd\u003e70\u003c\/td\u003e\n\u003ctd\u003e71\u003c\/td\u003e\n\u003ctd\u003e72\u003c\/td\u003e\n\u003ctd\u003e72.5\u003c\/td\u003e\n\u003ctd\u003e72.5\u003c\/td\u003e\n\u003ctd\u003e72.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSeat Tube Angle\u003c\/td\u003e\n\u003ctd\u003e73.5\u003c\/td\u003e\n\u003ctd\u003e73.5\u003c\/td\u003e\n\u003ctd\u003e73.5\u003c\/td\u003e\n\u003ctd\u003e73.5\u003c\/td\u003e\n\u003ctd\u003e73.5\u003c\/td\u003e\n\u003ctd\u003e73.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eEffective Top Tube\u003c\/td\u003e\n\u003ctd\u003e519\u003c\/td\u003e\n\u003ctd\u003e533\u003c\/td\u003e\n\u003ctd\u003e547\u003c\/td\u003e\n\u003ctd\u003e560\u003c\/td\u003e\n\u003ctd\u003e574\u003c\/td\u003e\n\u003ctd\u003e588\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSeat Tube C-T\u003c\/td\u003e\n\u003ctd\u003e456\u
003c\/td\u003e\n\u003ctd\u003e484\u003c\/td\u003e\n\u003ctd\u003e518\u003c\/td\u003e\n\u003ctd\u003e544\u003c\/td\u003e\n\u003ctd\u003e558\u003c\/td\u003e\n\u003ctd\u003e588\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHead Tube\u003c\/td\u003e\n\u003ctd\u003e110\u003c\/td\u003e\n\u003ctd\u003e126\u003c\/td\u003e\n\u003ctd\u003e142\u003c\/td\u003e\n\u003ctd\u003e160\u003c\/td\u003e\n\u003ctd\u003e180\u003c\/td\u003e\n\u003ctd\u003e198\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eChain stay\u003c\/td\u003e\n\u003ctd\u003e425\u003c\/td\u003e\n\u003ctd\u003e425\u003c\/td\u003e\n\u003ctd\u003e425\u003c\/td\u003e\n\u003ctd\u003e425\u003c\/td\u003e\n\u003ctd\u003e425\u003c\/td\u003e\n\u003ctd\u003e425\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWheelbase\u003c\/td\u003e\n\u003ctd\u003e998\u003c\/td\u003e\n\u003ctd\u003e1003\u003c\/td\u003e\n\u003ctd\u003e1008\u003c\/td\u003e\n\u003ctd\u003e1017\u003c\/td\u003e\n\u003ctd\u003e1031\u003c\/td\u003e\n\u003ctd\u003e1046.5\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDT Length\u003c\/td\u003e\n\u003ctd\u003e618.1\u003c\/td\u003e\n\u003ctd\u003e628.6\u003c\/td\u003e\n\u003ctd\u003e639\u003c\/td\u003e\n\u003ctd\u003e647.3\u003c\/td\u003e\n\u003ctd\u003e656\u003c\/td\u003e\n\u003ctd\u003e665.7\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFork length\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003ctd\u003e395\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ch2 class=\"product-about__accordion-title active\"\u003e\u003cspan class=\"h5\"\u003eAbout the All-Road\u003c\/span\u003e\u003c\/h2\u003e\n\u003cdiv class=\"product-about__more-link-wrapper\"\u003e\n\u003cdiv class=\"product-about__more-link\"\u003e\u003csvg class=\"icon icon-filter-two\" width=\"12\" height=\"7\"
viewbox=\"0 0 12 7\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\u003cpath d=\"M10 1.5L6 5.5L2 1.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"square\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"product-about__accordion-description\"\u003e\n\u003cp\u003eSo if you're in the mood for a weekly club ride, an adventure or the thrill of a racing experience, this bike is your ideal partner. It seamlessly adapts to your riding preferences, making it versatile for a variety of uses:\u003cbr\u003e\u003cbr\u003e\u003cstrong\u003e1. Fast-Paced Riding\u003c\/strong\u003e: Its lightweight frame and aerodynamic design make this bike a speed demon. Ready to challenge the open road, it offers precision and agility, letting you stretch your limits.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e2. Cruise \u0026amp; Endurance Rides\u003c\/strong\u003e: For those who enjoy a more laid-back cycling experience, this bike promises a comfortable,
smooth ride. Perfect for scenic explorations or neighbourhood cruising, it guarantees an enjoyable journey every time.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e3. Club Rides\u003c\/strong\u003e: Join in on group rides and stay in step with your fellow cyclists. This bike's responsive handling and efficient power transfer are ideal for keeping pace with the pack, all while enjoying the camaraderie.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e4. Racing Thrills\u003c\/strong\u003e: If competitive racing gets your heart racing, this bike is up for the challenge. Equipped with advanced features, it helps you navigate tough terrains and smash personal records.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e5. Gravel Rides\u003c\/strong\u003e: With its impressive capabilities, this bike also tackles off-road adventures. It accommodates up to 45c tires, taking you anywhere you wish to explore.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlus, there are customisation options available!\u003c\/strong\u003e
\u003c\/p\u003e\n\u003cp\u003eDive into the joy of cycling with our expertly crafted bike, designed with passion to enhance your riding experiences.\u003c\/p\u003e\n\u003cp\u003eNo matter your cycling style or goals, this bike promises to surpass your expectations. It strikes the perfect balance of speed, comfort, and performance, empowering you to tackle every adventure with confidence and joy.\u003c\/p\u003e\n\u003cp\u003eEmbrace the freedom to ride your way, at your pace, and discover the full potential of your cycling journey with this exceptional bike.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {55464786264447 : "deny",55464786297215 : "deny",55464786329983 : "deny",55464786362751 : "deny",55464786395519 : "deny",55464786428287 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {55464786264447 : parseInt("1"),55464786297215 : parseInt("1"),55464786329983 : parseInt("1"),55464786362751 : parseInt
("1"),55464786395519 : parseInt("1"),55464786428287 : parseInt("1"),};
window._RestockRocketConfig.variantsPreorderCount = {55464786264447 : parseInt(""),55464786297215 : parseInt(""),55464786329983 : parseInt(""),55464786362751 : parseInt(""),55464786395519 : parseInt(""),55464786428287 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {55464786264447 : null,55464786297215 : null,55464786329983 : null,55464786362751 : null,55464786395519 : null,55464786428287 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {55464786264447 : parseInt(""),55464786297215 : parseInt(""),55464786329983 : parseInt(""),55464786362751 : parseInt(""),55464786395519 : parseInt(""),55464786428287 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {55464786264447 : null,55464786297215 : null,55464786329983 : null,55464786362751 : null,55464786395519 : null,55464786428287 : null,};
window._RestockRocketConfig.variantsShippingText = {554647862
64447 : "",55464786297215 : "",55464786329983 : "",55464786362751 : "",55464786395519 : "",55464786428287 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {55464786264447 : null,55464786297215 : null,55464786329983 : null,55464786362751 : null,55464786395519 : null,55464786428287 : null,};
window._RestockRocketConfig.selected_variant_id = 55464786264447;
window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;// STOQ-1595/1612 shared signal, derived once here so both the accelerated-checkout block
// gate (STOQ-1612) and the click tracker (STOQ-1595) read one clearly-owned flag rather
// than a side effect buried in either consumer's try/catch: whether this shop has preorders
// configured at all — an enabled selling plan plus at least one preorder variant id,
// independent of the block toggle. Fail-open: on error the
flag stays unset and both
// consumers no-op.
try {
var _sqCfg = window._RestockRocketConfig;
var _sqPlanEnabled = Array.isArray(_sqCfg.sellingPlans) &&
_sqCfg.sellingPlans.some(function (p) { return p && p.enabled; });
var _sqPreCount = ((_sqCfg.cachedPreorderVariantIds &&
_sqCfg.cachedPreorderVariantIds.preorder_variant_ids) || []).length;
_sqCfg.preordersConfigured = !!(_sqPlanEnabled && _sqPreCount);
} catch (e) { /* fail open */ }
// STOQ-1612: block (not hide) Buy Now / Shop Pay until our JS runs, so a tap in the
// load window can't bypass preorder. pointer-events via .stoq-buy-now-pending (no
// reflow); timeout releases; renderPreorderButton / featured_product.js lift it.
// Gated by the `block_accelerated_checkout` toggle (default OFF) for gradual rollout.
// Armed ONLY when we're sure preorder is in play — product page: THIS product has a
// preorder variant (never block a plain product's Shop Pay); featured: integration
// enabled for this page t
ype. Rationale: PR #2784.
try {
var _sqc = window._RestockRocketConfig;
var _sqOn = !!(_sqc.cachedSettings && _sqc.cachedSettings.block_accelerated_checkout);
var _sqPre = (_sqc.cachedPreorderVariantIds &&
_sqc.cachedPreorderVariantIds.preorder_variant_ids) || [];
var _sqArm = false;
if (_sqOn && _sqc.preordersConfigured) {
if (_sqc.pageType === 'product' && _sqc.product && _sqc.product.variants) {
_sqArm = _sqc.product.variants.some(function (v) { return _sqPre.indexOf(Number(v.id)) !== -1; });
} else {
_sqArm = (_sqc.integrations || []).some(function (i) {
return i && i.type === 'featured_product' && i.enabled &&
Array.isArray(i.page_types) && i.page_types.indexOf(_sqc.pageType) !== -1;
});
}
}
if (_sqArm && document.documentElement) {
_sqc.acceleratedGateArmed = true;
document.documentElement.classList.add('stoq-buy-now-pending');
setTimeout(function () {
document.documentElement.cl
prefer the Render host emitted into the
// metafield-cached settings (api_host) when present, mirroring the same
// override in assets/js/api.js. cachedSettings is populated above. Falls
// back to the build-baked host for shops without the use_render_api_host
// toggle (or environments where THEME_EXTENSION_API_HOST is unset), so the
// setting.json + fetchEmbedConfig calls below route to the same host as the
// rest of the extension's API traffic instead of staying on the baked host.
window._RestockRocketConfig.host = (window._RestockRocketConfig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io'
// Deployed extension build number, read from the CDN asset host Shopify generates:
// https://cdn.shopify.com/extensions/
<
uuid>/
<handle>-
<
version>/assets/...
// Trailing digits (e.g. ".../restockrocket-1-521/assets/" -> "521"). Kept numeric to
// match ParseStoqData, so funnel app_version lines up with the order-attribution
// app_version. Reflects the ACTUAL deployed build. This is the SINGLE source of the
// parsed version — preorder.js getAppVersion() reads it back off config rather than
// re-parsing, so the regex lives in exactly one place.
try {
const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/);
window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || '';
} catch (e) {
window._RestockRocketConfig.appVersion = '';
}
const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds
const LIQUID_CACHE_MAX_AGE = 15 * 60; // 15 minutes in seconds
// Calculate Liquid cache freshness once at initialization
const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt;
// Validate timestamp and calculate ca
che age
if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) {
console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh');
window._RestockRocketConfig.isLiquidCacheFresh = true;
window._RestockRocketConfig.liquidCacheAge = null;
} else {
const now = Math.floor(Date.now() / 1000); // Current time in seconds
const liquidCacheAge = now - liquidRenderedAt; // Age in seconds
// Surfaced into funnel events: a stale cache means the app rendered with
// outdated inventory/selling-plan data — a real "had the opportunity but
// failed" cause. Negative (client clock ahead) clamps to 0.
window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCacheAge);
// Handle client clock ahead of server
if (liquidCacheAge <
0) {
console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else if (liquidCacheAge <
= LIQUID_CACHE_MAX_AGE) {
console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else {
console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`);
window._RestockRocketConfig.isLiquidCacheFresh = false;
}
}
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data structure');
return null;
}
if (!settings.cache) {
console.debug('STOQ - settings caching disabled');
return null;
}
// Check if translations are enabled but missing from cache
// This handles the backfill period where DB has translations but metafield doesn't
if (settings.multi_language_enabled) {
if (!settings.translations) {
// Translations enabled but no translation data in metafield
// Metafield hasn't been backfilled yet - force refresh
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
// Translations object exists in metafield - cache is valid
// If current locale isn't translated, applyTranslations will gracefully use 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
ditive, does not gate init) ----
// The inlined `cachedSettings` comes from the app-embed Liquid render, which
// Shopify edge-caches and can serve stale. Reading the same `settings` metafield
// back over the Storefront API is a POST to /api/
<
version>/graphql.json — never
// CDN-cached — so it returns the live value on every page load. We fetch it
// best-effort and stash it on `window._RestockRocketConfig.storefrontSettings`
// so individual behaviours can migrate onto the fresh value over time. This is
// PURELY ADDITIVE: it does NOT change the resolution flow below, never blocks
// init, and silently no-ops on any failure / missing token.
(function loadStorefrontSettings() {
const cfg = window._RestockRocketConfig;
if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) return;
// Deferred to browser idle so this best-effort read runs strictly AFTER the
// critical init flow and never competes with it for a connection — the call
// is a live, uncached Storefront round-trip and can be slow (multi-second
// TTFB observed). Nothing on the critical path waits for it.
function run() {
const query = 'query StoqSettings($namespace: String!) { shop { metafield(namespace: $namespace, key:
"settings") { value } } }';
fetch(
`https://${cfg.shop}/api/2025-07/graphql.json`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Shopify-Storefront-Access-Token': cfg.storefrontAccessToken,
},
body: JSON.stringify({ query: query, variables: { namespace: cfg.metafieldNamespace } }),
}
)
.then(function(response) {
if (!response.ok) { throw new Error('Storefront API HTTP ' + response.status); }
return response.json();
})
.then(function(body) {
if (body && body.errors && body.errors.length) {
throw new Error('Storefront API errors: ' + body.errors.map(function(e) { return e && e.message; }).join(', '));
}
const value = body && body.data && body.data.shop && body.data.shop.metafield && body.data.shop.metafield.value;
if (!value) { throw new Error('Storefront API returned no settings metafield value'); }
cfg.sto
refrontSettings = JSON.parse(value);
console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings');
})
.catch(function(e) {
console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message);
});
}
if (typeof window.requestIdleCallback === 'function') {
window.requestIdleCallback(run, { timeout: 5000 });
} else {
setTimeout(run, 0);
}
})();
// 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': 'ski
p'
};
if (window.Shopify?.theme?.role === 'main') {
headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name;
headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;
headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id;
}
fetch(
`${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`,
{ headers }
)
.then(function(response) {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(function(settings) {
initializeScripts(settings);
})
.catch(function(error) {
// If request failed and we have cached settings (even if expired), use them as fallback
if (cachedSettings) {
console.debug('STOQ - using expired cached settings as fallback');
initializeScripts(cachedSettings);
} else {
console.error('S
TOQ - failed to load settings:', error);
}
})
.catch(function(e) {
console.error(e)
})
}
function fetchEmbedConfig(endpoint, apply) {
return fetch(
`${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`,
{
headers: {
'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
'ngrok-skip-browser-warning': 'skip'
}
}
)
.then(function(response) {
if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`);
return response.json();
})
.then(function(data) {
try {
apply(data);
} catch (applyError) {
// Apply failures are programming bugs (e.g. response shape changed
// server-side and the assignment threw). Surface them as console.error
// so they're visible in browser logs, then re-throw to fall through
// to the same Liquid-cached fallback as a fetch failure.
console.error('STOQ - apply failed for ' +
endpoint + ':', applyError);
throw applyError;
}
})
.catch(function(error) {
console.debug(`STOQ - using cached ${endpoint}:`, error.message);
});
}
function initializeScripts(settings) {
settings = applyTranslations(settings);
window._RestockRocketConfig.settings = settings;
console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
// Stale-Liquid resilience (default-on, per-shop opt-out via the
// `disable_refresh_on_stale_liquid` Toggle, surfaced as the negative
// `disable_refresh_on_stale_liquid` flag in settings.json so that
// `undefined` -- in CDN-cached metafield payloads that predate this
// key -- reads as `!undefined === true` and gets default-on behavior
// immediately, no metafield rewrite required).
// When the Liquid CDN cache is older than LIQUID_CACHE_MAX_AGE the in-page
// selling_plans / integrations metafields can be wrong; refresh both from
// the API before launching scr
ipts. Race against a 1000ms timeout so a slow
// API can't block init indefinitely. If the timeout wins, the in-flight
// fetches still complete and update window._RestockRocketConfig — the
// bundle re-reads sellingPlans/integrations on every interaction, so the
// late-arriving values benefit subsequent renders even though the first
// paint may use the Liquid-cached values. On any failure the existing
// Liquid-loaded values stay in place via fetchEmbedConfig's catch.
if (!window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid) {
console.debug('STOQ - Liquid cache stale, refreshing selling_plans + integrations');
Promise.race([
Promise.all([
fetchEmbedConfig('selling_plans', function(data) {
if (data && Array.isArray(data.plans)) {
window._RestockRocketConfig.sellingPlans = data.plans;
window._RestockRocketConfig.disabledSellingPlanIds = data.disabled_plan_ids || [];
}
}),
fetchEmbedConfig('integrations', function(data) {
if (Array.isArray(data)) {
window._RestockRocketConfig.integrations = data;
}
})
]),
new Promise(function(resolve) { setTimeout(resolve, 1000); })
]).then(function() { loadScripts(settings); });
return;
}
loadScripts(settings);
}
function loadScripts(settings) {
// Setup cart selling plan updater BEFORE loading any scripts to avoid race conditions
setupCartSellingPlanUpdater(settings);
if(settings.enable_app) {
const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType);
})
// STOQ-1520: serve the lean back-in-stock-only build (no preorder/hijack code)
// only to shops with NO preorder plans. Use the full build if preorder is o