Header Image
Surly Straggler Frameset - Chlorine Blue 650b Surly Straggler Frameset - Chlorine Blue 650b

Kona Coco Step Through Hybrid Bike

38cm Size
42cm 46cm
1-1/8" threadless
[data-section-id="template--26482385322367__section_banner_image_8nCgWK"] { --PT: 0px; --PB: 0px; --container-padding-top: 0;} [data-section-id="template--26482385322367__section_banner_image_8nCgWK"] .banner-image__text-wrapper { --content-width: 100%;}


We also have a physical store, if you are local please pop in - ProjektRide Bike Shop Edinburgh #relatedProducts--template--26482385322367__related { --PT: 60px; --PB: 60px; } #relatedProducts--template--26482385322367__related .tabs__nav { --text-size: calc(var(--adjust-accent) * 1.2); } @media screen and (max-width: 767px) { #relatedProducts--template--26482385322367__related .grid--mobile, #relatedProducts--template--26482385322367__related .carousel--mobile { grid-template-columns: repeat(1, minmax(0, 1fr)); } } #SiteFooter { --PT: 100px; --PB: 10px; --bg-lighten-darken-shimmer-bg: #0d0d0d; --bg-lighten-darken-shimmer-effect: #121212; --text: #ffffff; --text-alpha-15: rgba(255, 255, 255, 0.15); --text-alpha-50: rgba(255, 255, 255, 0.6); --text-alpha-85: rgba(255, 255, 255, 0.85);--border: #ffffff;} #SiteFooter .footer-bottom { --grid-columns: 3; } Contact Us Insure Your Bike Cookie Policy Refund policy Service Servicing Workshop Prices Delivery & Returns Mon - Fri: 09:00 - 18:30 Sat: 9:00 - 16:00 Sun: Closed Newington Road EH9 1QN [email protected] await import("//projektride.co.uk/cdn/shopifycloud/shop-js/modules/v2/loader.shop-follow-button.en.esm.js"); Country GBP£ Åland Islands (EUR€) Albania (ALLL) Algeria (DZDد.ج) Andorra (EUR€) Angola (GBP£) Armenia (AMDդր.) Ascension Island (SHP£) Austria (EUR€) Belarus (GBP£) Belgium (EUR€) Benin (XOFFr) Bosnia & Herzegovina (BAMКМ) Botswana (BWPP) British Indian Ocean Territory (USD$)
PEDALS 82 Newington Road, EH91QN, Edinburgh. Kona JS2
CHAIN KMC X9
CASSETTE Shimano HG200 11-32t 9spd
CHAINGUIDE n/a#SiteFooter .footer-block--logo { min-width: calc(160px + calc(var(--gutter) / 2)); } #SiteFooter .footer-block__logo-image { width: 160px; }
F/DBuy, sell and ride in confidence on ProjektRide’s premium bikes n/aQuick Links
R/DAbout Us Shimano Alivio SGS
SHIFTERSBlog

Shimano AceraTrack Service Progress

 

Building Your Bike From the Box

 

BRAKE CALIPERSPrivacy Policy Clarks M2 Hydraulic
FRONT BRAKE ROTORTerms of Service Clarks M2 160mm
REAR BRAKE ROTOR Clarks M2 160mm
BRAKE LEVERS Clarks M2 HydraulicBook a Service
HEADSET Feimin FP-H863Cycle to Work
HANDLEBAR Kona HandplantInformation
STEM0131 374 5324Kona CommuterEdinburgh
SEATPOST Kona Thumb w/Offset 27.2mm
SEAT CLAMP Kona Clamp
GRIPS Velo Ergo
SADDLE Kona Commuter
FRONT HUB Formula 100x9mm
REAR HUB Formula 135x10mm
SPOKES Stainless Black 14g
RIMS Double Wall Alloy
FRONT TIRE WTB Horizon Comp w/ Puncture Protection 650x47c
REAR TIRE WTB Horizon Comp w/ Puncture Protection 650x47c
PAINT COLOR Gloss Dusky Purple w/ Charcoal & Nimbus Decals
EXTRAS Fenders w/ Mudflaps & Kickstand
Bulgaria (EUR€)

All specifications are subject to change without notice

Burkina Faso (XOFFr)

GEOMETRY mm inches Burundi (BIFFr)

Cameroon (XAFCFA) Cape Verde (CVE$) Central African Republic (XAFCFA) Chad (XAFCFA) Comoros (KMFFr) Congo - Brazzaville (XAFCFA) Congo - Kinshasa (CDFFr) Côte d’Ivoire (XOFFr) Croatia (EUR€) Cyprus (EUR€) Czechia (CZKKč) Denmark (DKKkr.) Djibouti (DJFFdj) Egypt (EGPج.م) Equatorial Guinea (XAFCFA) Eritrea (GBP£) Estonia (EUR€) Eswatini (GBP£) Ethiopia (ETBBr) Faroe Islands (DKKkr.) Montenegro (EUR€)
  SIZE XS S M L XL
1 ST LENGTH 370 420 470 520 580
2 TT LENGTH 522 550 596 636 686
3 REACH 385 395 423 439 465
4 STACK 550 578 606 644 681Finland (EUR€)
5France (EUR€) STANDOVER 525French Southern Territories (EUR€) 543 546Gabon (XOFFr) 553 582Gambia (GMDD)
6Georgia (GBP£) HT ANGLE 70Germany (EUR€) 70 70Ghana (GBP£) 70 70Gibraltar (GBP£)
7Greece (EUR€) HT LENGTH 115Greenland (DKKkr.) 145 175Guadeloupe (EUR€) 215 255Guernsey (GBP£)
8Guinea (GNFFr) ST ANGLE 76Guinea-Bissau (XOFFr) 75 74Hungary (HUFFt) 73 72Iceland (ISKkr)
9Ireland (EUR€) CS LENGTH 450
410 410 410
15 FORK OFFSETMorocco (MADد.م.) 50 50Mozambique (GBP£) 50 50Namibia (GBP£)
KONA Geometry

Réunion (EUR€) ProjektRide Shopify Apple Pay
ROVE LIBRE
48-52cm Small, MediumSvalbard & Jan Mayen (GBP£) Small, Medium
Large
6'1"-6'5" 185-196cm 33"-36"© 2026, 84-91cm. 56-58cm Powered by 58cm. 56-58cm XLAmerican Express N/A
Diners Club

MTB / ALL MOUNTAIN / SPLICEDiscover

Google Pay 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.liquidRenderedAt = 1776446771;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-12-28T14:44:23.508Z","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":{"disableDebugLoggingForNonPreorderItem":false},"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_allowed_countries":[],"sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":null,"insert_button_after_selector_type":"afterend","storefront_button_position_type":"float-right","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"This item needs to be purchased separately. Please check out or clear your cart before adding this item.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":null,"push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":"","preorder_payment_insert_selector_type":"afterend","preorder_price_container_selector":"","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":"","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":false,"inline_form_selector":null,"inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":0,"market_setup_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":null,"preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","cache":true,"cached_at":"2026-01-08T16:12:13.364Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,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,43938308653282,43938308718818,43938308751586,43938308784354,43938308817122,43938322612450,43938322645218,43938322677986,43981336051938,43981336084706,43981336117474,43981336150242,43981345587426,43981345620194,43981345652962,43981345685730,43981357580514,43981357613282,43981362462946,43981362495714,43981362528482,43981369016546,43981369049314,43981374914786,43981374947554,43981374980322,43981392806114,43981392838882,43981392904418,43981392937186,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140279791842,44140279824610,44140279857378,44140279890146,44140279922914,44140292047074,44140292079842,44140292112610,44140293685474,44140302336226,44140302434530,44140302500066,44140302532834,44140302565602,44140302598370,44140302631138,44140302827746,44140302893282,44140302926050,44140315050210,44140317016290,44140321636578,44140335792354,44140335825122,44140335857890,44140339953890,44140339986658,44140340150498,44140340248802,44140340281570,44140340543714,44140340707554,44140340740322,44140340773090,44140345065698,44140352438498,44140388155618,44140388188386,44140397756642,44140404441314,44140404474082,44155590508770,44155590574306,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594408162,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136716002,44957136748770,44957136781538,44957136847074,44957136912610,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,46016406487266,55193312788863,55193316786559,55569712382335,55569712415103,55569712447871,55569712480639,55570017616255,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814967167,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-04-17T17:23:09Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null,"bulk_operation":true};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-04-17T16:56:34Z","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-04-17T17:06:21Z","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_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}];(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 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_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 > maxDate)) ? 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)); be set up as a hauler or a mauler and so can Straggler. Better still is that you now have the option of 650b wheel size. 650b wheels were popular for a long time many years ago on 'Constructeur' style bicycles and we all know how real shit was back in the day.... 650b wheels strike a nice balance between the benefits of both 26\" and 700c sizes. The smaller wheel allows smaller riders to fit well on smaller frames, produces a stronger wheel, makes fitting big ass tyres easier and are more agile than their larger counterparts.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eStraggler has disc caliper mounts instead of rim brake studs. It'll accept rotors up to 160mm. The rear dropouts are unique, too. They're a partially closed horizontal design that accommodates singlespeed or geared drivetrains. They feature stop screws that thread in from the rear to further secure the wheel and to position the rear wheel for optimal shifting, plus a forward-mounted stop screw on the drive side to keep the wheel from s lipping forward under the force of your gargantuan legs. The rear dropouts are spaced 135mm instead of 132.5mm like the Cross-Check simply because there are far more options for disc hubs in this spacing.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eStraggler shares all of the Cross-Check's braze-ons for fenders, racks and bottle cages. The Straggler's geometry is slightly different, with angles and tube lengths very close but not identical to the Cross-Check, but like the Cross-Check it's ready to take you just about anywhere. It's a day tripper and a weekender. It's a 'rough road' road bike. It's a cyclocross bike with no pretense about racing. It's a utilitarian townie. It's a light-duty touring bike. It's an all-weather commuter. And when you get tyred of one set up, you can swap parts around and turn it into something else.\u003c\/p\u003e\n\u003ch4 data-mce-fragment=\"1\"\u003eFrameset Specification\u003c\/h4\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\rong data-mce-fragment=\"1\"\u003eBottom bracket shell:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e68mm wide, standard English threaded 1.37 x 24t\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eChainring Clearance:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eManipulated so you can fit pretty much whatever size rings you want. Go nuts\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eTyre Clearance:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eOur Fatties Fit Fine (FFF) stays and our beautiful slope-crowned custom fork provide room for tyres up to 650b x 42mm! With fenders!\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eFork:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e4130 CroMoly, disc only, lugged and brazed. Sloping cr own with threaded eylets, tapered and butted curved blades with mid-blade rack eyelets, dual dropout eyelets\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eWeight:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e54cm = 4.74 lb (2.27kg) Fork--uncut = 2.3 lb (1050g)\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eWheel sizes:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e650b\/27.5\"\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2023-01-02T18:17:48+00:00","created_at":"2023-01-02T18:17:47+00:00","vendor":"Surly","type":"","tags":["bike","bikes","frames","New","surly"],"price":80000,"price_min":80000,"price_max":80000,"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":43725343817954,"title":"38cm","option1":"38cm","option2":null,"opti":"Surly Straggler Frameset - Chlorine Blue 650b - 52cm","public_title":"52cm","options":["52cm"],"price":80000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-01-02at18.16.00.png?v=1672683470","\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-01-02at17.04.36_73798492-8a51-479a-afa6-acfde9b55a5b.png?v=1672683470"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-01-02at18.16.00.png?v=1672683470","options":["Size"],"media":[{"alt":null,"id":31378551603426,"position":1,"preview_image":{"aspect_ratio":1.466,"height":776,"width":1138,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-01-02at18.16.00.png?v=1672683470"},"aspect_ratio":1.466,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-01-02at18.16 .00.png?v=1672683470","width":1138},{"alt":null,"id":31378551636194,"position":2,"preview_image":{"aspect_ratio":1.912,"height":594,"width":1136,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-01-02at17.04.36_73798492-8a51-479a-afa6-acfde9b55a5b.png?v=1672683470"},"aspect_ratio":1.912,"height":594,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-01-02at17.04.36_73798492-8a51-479a-afa6-acfde9b55a5b.png?v=1672683470","width":1136}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eWe think by now, most of you get what Straggler is. It's a Cross Check with disc brakes instead of rim brakes. We also think you get why that's good. The Cross Check is a madly versatile bike that can be used for most types of riding and riding surfaces. It can be set up as a hauler or a mauler and so can Straggler. Better still is that you now have the option of 650b wheel size. 650b wheels Surly proprietary 4130 CroMoly tubing. ED Coated. TIG-welded. Double-butted main triangle\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eRear Dropouts:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eForward-exiting horizontal dropouts with adjusters give you singlespeed compatibility and wheelbase adjustability to help you fit the tyres and fenders you want to run with that drivetrain you want to run. 135mm spacing\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eBrake Compatibility:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eDisc Only. Max 160 mm Rotor Size\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eBraze-ons\/extras: Fender eyelets at the dropouts, front and rear rack bosses and dual water bottle mounts. Oh yeah, it sports downtube shifter mounts\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-frag ment=\"1\"\u003eSeatpost diameter:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e27.2mm\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eSeatpost clamp diameter:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e30.0mm (we include our Surly stainless clamp with our framesets)\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eHeadset\/Steertube:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e1-1\/8\" threadless\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eFront Derailleur Clamp Diameter:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e28.6 mm\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eBottom bracket shell:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u00seInt(""),43725343949026 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {43725343817954 : null,43725343850722 : null,43725343883490 : null,43725343916258 : null,43725343949026 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {43725343817954 : parseInt(""),43725343850722 : parseInt(""),43725343883490 : parseInt(""),43725343916258 : parseInt(""),43725343949026 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {43725343817954 : null,43725343850722 : null,43725343883490 : null,43725343916258 : null,43725343949026 : null,}; window._RestockRocketConfig.variantsShippingText = {43725343817954 : "",43725343850722 : "",43725343883490 : "",43725343916258 : "",43725343949026 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {43725343817954 : null,43725343850722 : null,43725343883490 : null,43725343916258 : null,43725343949026 : null,}; window._RestockRocketConfig.selected_variant_id = 43725343916258; 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/019d9ac9-5dee-74e9-8643-e17aaa8798db/restockrocket-1-482/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019d9ac9-5dee-74e9-8643-e17aaa8798db/restockrocket-1-482/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 const LIQUID_CACHE_MAX_AGE = 2 * 60 * 60; // 2 hours in seconds // Calculate Liquid cache freshness once at initialization const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt; // Validate timestamp and calculate cache age if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { const now = Math.floor(Date.now() / 1000); // Current time in seconds const liquidCacheAge = now - liquidRenderedAt; // Age in seconds // 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 <
6'1"-6'5" 185-196cm 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-33"-36"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.product = {"id":7987676872930,"title":"Surly Straggler Frameset - Chlorine Blue 650b","handle":"surly-straggler-frameset-chlorine-blue-650b","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eWe think by now, most of you get what Straggler is. It's a Cross Check with disc brakes instead of rim brakes. We also think you get why that's good. The Cross Check is a madly versatile bike that can be used for most types of riding and riding surfaces. It can u003cstrong data-mce-fragment=\"1\"\u003eTubing:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e100% Surly proprietary 4130 CroMoly tubing. ED Coated. TIG-welded. Double-butted main triangle\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eRear Dropouts:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eForward-exiting horizontal dropouts with adjusters give you singlespeed compatibility and wheelbase adjustability to help you fit the tyres and fenders you want to run with that drivetrain you want to run. 135mm spacing\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eBrake Compatibility:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eDisc Only. Max 160 mm Rotor Size\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eBraze-ons\/extras: Fender eyelets at the dropouts, front and rear rack bosses and dual water bottle m84-91cmounts. Oh yeah, it sports downtube shifter mounts\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eSeatpost diameter:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e27.2mm\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eSeatpost clamp diameter:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e30.0mm (we include our Surly stainless clamp with our framesets)\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eHeadset\/Steertube:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e1-1\/8\" threadless\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eFront Derailleur Clamp Diameter:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e28.6 mm\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cston3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Surly Straggler Frameset - Chlorine Blue 650b - 38cm","public_title":"38cm","options":["38cm"],"price":80000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":43725343850722,"title":"42cm","option1":"42cm","option2":null,"option3":null,"sku":"FMSUGB42L","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Surly Straggler Frameset - Chlorine Blue 650b - 42cm","public_title":"42cm","options":["42cm"],"price":80000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":43725343883490,"title":"46cm","option1":"46cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxablLarge, XLe":true,"featured_image":null,"available":false,"name":"Surly Straggler Frameset - Chlorine Blue 650b - 46cm","public_title":"46cm","options":["46cm"],"price":80000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":43725343916258,"title":"50cm","option1":"50cm","option2":null,"option3":null,"sku":"FMSUGB50L","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Surly Straggler Frameset - Chlorine Blue 650b - 50cm","public_title":"50cm","options":["50cm"],"price":80000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":43725343949026,"title":"52cm","option1":"52cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"namewere popular for a long time many years ago on 'Constructeur' style bicycles and we all know how real shit was back in the day.... 650b wheels strike a nice balance between the benefits of both 26\" and 700c sizes. The smaller wheel allows smaller riders to fit well on smaller frames, produces a stronger wheel, makes fitting big ass tyres easier and are more agile than their larger counterparts.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eStraggler has disc caliper mounts instead of rim brake studs. It'll accept rotors up to 160mm. The rear dropouts are unique, too. They're a partially closed horizontal design that accommodates singlespeed or geared drivetrains. They feature stop screws that thread in from the rear to further secure the wheel and to position the rear wheel for optimal shifting, plus a forward-mounted stop screw on the drive side to keep the wheel from slipping forward under the force of your gargantuan legs. The rear dropouts are spaced 135mm instead of 132.5mm like the Cross-Check sLarge, XLimply because there are far more options for disc hubs in this spacing.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eStraggler shares all of the Cross-Check's braze-ons for fenders, racks and bottle cages. The Straggler's geometry is slightly different, with angles and tube lengths very close but not identical to the Cross-Check, but like the Cross-Check it's ready to take you just about anywhere. It's a day tripper and a weekender. It's a 'rough road' road bike. It's a cyclocross bike with no pretense about racing. It's a utilitarian townie. It's a light-duty touring bike. It's an all-weather commuter. And when you get tyred of one set up, you can swap parts around and turn it into something else.\u003c\/p\u003e\n\u003ch4 data-mce-fragment=\"1\"\u003eFrameset Specification\u003c\/h4\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eTubing:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e100% 3e68mm wide, standard English threaded 1.37 x 24t\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eChainring Clearance:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eManipulated so you can fit pretty much whatever size rings you want. Go nuts\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eTyre Clearance:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eOur Fatties Fit Fine (FFF) stays and our beautiful slope-crowned custom fork provide room for tyres up to 650b x 42mm! With fenders!\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eFork:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e4130 CroMoly, disc only, lugged and brazed. Sloping crown with threaded eylets, tapered and butted curved blades with mid-blade rack eyelets, dual dropout eyelets\u003c\/li\u003e\n\u003clLarge, XLi data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eWeight:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e54cm = 4.74 lb (2.27kg) Fork--uncut = 2.3 lb (1050g)\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e\n\u003cstrong data-mce-fragment=\"1\"\u003eWheel sizes:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e650b\/27.5\"\u003c\/li\u003e\n\u003c\/ul\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {43725343817954 : "deny",43725343850722 : "deny",43725343883490 : "deny",43725343916258 : "deny",43725343949026 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {43725343817954 : parseInt("0"),43725343850722 : parseInt("0"),43725343883490 : parseInt("0"),43725343916258 : parseInt("2"),43725343949026 : parseInt("1"),}; window._RestockRocketConfig.variantsPreorderCount = {43725343817954 : parseInt(""),43725343850722 : parseInt(""),43725343883490 : parseInt(""),43725343916258 : par
= 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 <
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 || !settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); return settings; } const normalizedLocale = window._RestockRocketConfig.normalizedLocale; const translations = settings.translations; if (!normalizedLocale) { // No matching locale has translations; drop payload to save memory console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); delete settings.translations; return settings; } console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`); const translatedFields = translations[normalizedLocale]; if (translatedFields && typeof translatedFields === 'object') { Object.keys(translatedFields).forEach(function(key) { const value = translatedFields[key
]; if (value !== null && value !== undefined && value !== '') { 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; } } // Setup event listener for cart selling plan updates // This must be called before any scripts are loaded to avoid race conditions function setupCartSellingPlanUpdater(settings) { // Setup listener regardless - updateCartSellingPlans has its own guards // This ensures cleanup happens even when preorders are disabled globally // Listen for stoq:inventory-data-loaded event dispatched by api.js window.addEventListener('stoq:inventory-data-loaded', function(event) { console.debug('STOQ - Inventory data loaded, updating cart selling plans'); 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); }); } }); } // 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.S
fig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enab led for ${window._RestockRocketConfig.pageType}`); } // Dispatch custom event when app is loaded // Cart selling plan updates will be triggered by stoq:inventory-data-loaded event const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings, preorderEnabled: settings.preorder_enabled } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } }

Frequently Asked Questions

  • Please get in touch with a member of the team either by phone (01313745324) or email ([email protected]) where on of the team will be more than happy to help.

    ProjektRide Bike Shop Edinburgh

  • 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.

    We also have a physical store, if you are local please pop in -

    ProjektRide Bike Shop Edinburgh

    82 Newington Road, EH91QN, Edinburgh.