\/cdn\/shop\/files\/20220509-Kona3387-Ecoco-Details_2000x_506ed4f4-fa49-4637-ad3f-e05afdeecf96.jpg?v=1720108232","\/\/projektride.co.uk\/cdn\/shop\/files\/20220509-Kona3398-Ecoco-Details_2000x_5a9e6644-ec30-43e2-905b-87cfd913484a.jpg?v=1720108247","\/\/projektride.co.uk\/cdn\/shop\/files\/20220509-Kona3413-Ecoco-Details_2000x_0510cdcb-9148-4679-8dbf-21631f7d168d.jpg?v=1720108258"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/ecoco_2000x_d7936da2-2715-447e-9c1e-e72b128a13fe.jpg?v=1720108200","options":["Size"],"media":[{"alt":null,"id":34188600279266,"position":1,"preview_image":{"aspect_ratio":1.333,"height":900,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ecoco_2000x_d7936da2-2715-447e-9c1e-e72b128a13fe.jpg?v=1720108200"},"aspect_ratio":1.333,"height":900,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ecoco_2000x_d7936da2-2715-447e-9c1e-e72b128a13fe.jpg?v=1720108200","width":1200},{"alt":null,"id":34188601557218,"position":2,"preview_image":{"aspect_ratio":
4637-ad3f-e05afdeecf96.jpg?v=1720108232"},"aspect_ratio":1.333,"height":900,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20220509-Kona3387-Ecoco-Details_2000x_506ed4f4-fa49-4637-ad3f-e05afdeecf96.jpg?v=1720108232","width":1200},{"alt":null,"id":34188606243042,"position":5,"preview_image":{"aspect_ratio":1.333,"height":900,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20220509-Kona3398-Ecoco-Details_2000x_5a9e6644-ec30-43e2-905b-87cfd913484a.jpg?v=1720108247"},"aspect_ratio":1.333,"height":900,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20220509-Kona3398-Ecoco-Details_2000x_5a9e6644-ec30-43e2-905b-87cfd913484a.jpg?v=1720108247","width":1200},{"alt":null,"id":34188608307426,"position":6,"preview_image":{"aspect_ratio":1.333,"height":900,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20220509-Kona3413-Ecoco-Details_2000x_0510cdcb-9148-4679-8dbf-21631f7d168d.jpg?v=1720108258"},"aspect_ratio":1.333,"height":900,"media_type":"image","src"WheelsFrames
Shop by Brand
See More
Gloria
Mon - Fri: 09:00 - 18:30
Tel
Sat: 9:00 - 16:00
Sun: Closed
0131 374 5324
Location
82 Newington RoadEdinburgh
EH9 1QN
Website by
Juan Borges Designs
Services
See MoreWorkshopdget":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
See Morerm_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 notificat
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
: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,4
345652962,43981345685730,43981357580514,43981357613282,43981362462946,43981362495714,43981362528482,43981369016546,43981369049314,43981374914786,43981374947554,43981374980322,43981392773346,43981392838882,43981392904418,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,43981989085410,43981989118178,43981989150946,43981990887650,43981990920418,43981990953186,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140302827746,44140302893282,44140317016290,44155590508770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,453530109
t 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}];window._RestockRocketConfig.integrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":8628689371362,"title":"Kona Ecoco","handle"
Other.0\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e73.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e9\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eCS LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e450\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e450\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e450\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e10\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eBB DROP\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e70\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr classBook a Servicedata-mce-fragment=\"1\"\u003e\u003cstrong\u003eSPECS \u0026amp; GEOMETRY\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp class=\"h2 text-center\" data-mce-fragment=\"1\"\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003c\/p\u003e\n\u003cdiv class=\"bike_data_wrapper\" data-mce-fragment=\"1\"\u003e\n\u003cdiv id=\"kro_specs\" data-mce-fragment=\"1\"\u003e\n\u003ch3 data-mce-fragment=\"1\"\u003eSPECIFICATIONS\u003c\/h3\u003e\n\u003cdiv class=\"table_wrapper\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"scrollable-wrapper\"\u003e\n\u003ctable data-mce-fragment=\"1\"\u003e\n\u003ctbody data-mce-fragment=\"1\"\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eFRAME MATERIAL\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eKona 6061 Aluminum Butted\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eSIZES\u003c\/td\u003e\n\u003ctd class=\"data\" da
ragment=\"1\"\u003e4\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eSTACK\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e573\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e606\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e644\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e5\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eSTANDOVER\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e584\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e584\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e591\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e6\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eHT ANGLE\u003c\/td\u003e\n\u003ctd
t=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eB\/B\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003ePEDALS\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eKona JS2\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eCHAIN\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eKMC X9\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eCASSETTE\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano Alivio 11-34t 9spd\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eCHAINGUIDE\u003c\/td\u003e\n\u003ctd class
03ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eFRONT BRAKE ROTOR\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano RT10 160mm (centerlock)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eREAR BRAKE ROTOR\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano RT10 160mm (centerlock)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eBRAKE LEVERS\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano MT401\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eHEADSET\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eFeimin H863\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragTrack Your Service3e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eKona Key Grip Slip on\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eSADDLE\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eKona Comfort\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eFRONT HUB\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano Alivio 100x9mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eREAR HUB\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano Alivio 135x10mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eSPOKES\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eStainless 14g\
003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eBATTERY\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano 504Wh\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eDISPLAY\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano SC-E7000 Display\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eCHARGER\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano STEPS 2A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eBATTERYLOCK\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eAbus\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u0
table_wrapper\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"scrollable-wrapper\"\u003e\n\u003ctable data-mce-fragment=\"1\"\u003e\n\u003ctbody data-mce-fragment=\"1\"\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e \u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eSIZE\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eS\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eM\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e1\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eST LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e420\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e470\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\See Mored\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eFRONT CENTER\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e637\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e674\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e703\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e14\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eFORK LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e409\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e409\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e409\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e15\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eFORK OFFSET\u003c\/td\u003e\n\u003ctd class=\"data\"
bel\" data-mce-fragment=\"1\"\u003eBATTERY\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano 504Wh\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eDISPLAY\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano SC-E7000 Display\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eCHARGER\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano STEPS 2A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eBATTERYLOCK\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eAbus\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003ePAINT COLOUR\u003c\/td\u003e\n\u003ctd class=\"data\"
":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":45664042713314,"title":"Small","option1":"Small","option2":null,"option3":null,"sku":"KN23B-ECOC-SM-RE","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Ecoco - Small","public_title":"Small","options":["Small"],"price":229900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45664042746082,"title":"Medium","option1":"Medium","option2":null,"option3":null,"sku":"KN23B-ECOC-MD-RE","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Ecoco - Medium","public_title":"Medium","options":["Medium"],"price":229900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45664042778850,"title":"Large"
Cycle To Work SchemesKona Key Grip Slip on\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eSADDLE\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eKona Comfort\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eFRONT HUB\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano Alivio 100x9mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eREAR HUB\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano Alivio 135x10mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eSPOKES\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eStainless 14g\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-frag
7","\/\/projektride.co.uk\/cdn\/shop\/files\/20220509-Kona3413-Ecoco-Details_2000x_0510cdcb-9148-4679-8dbf-21631f7d168d.jpg?v=1720108258"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/ecoco_2000x_d7936da2-2715-447e-9c1e-e72b128a13fe.jpg?v=1720108200","options":["Size"],"media":[{"alt":null,"id":34188600279266,"position":1,"preview_image":{"aspect_ratio":1.333,"height":900,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ecoco_2000x_d7936da2-2715-447e-9c1e-e72b128a13fe.jpg?v=1720108200"},"aspect_ratio":1.333,"height":900,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ecoco_2000x_d7936da2-2715-447e-9c1e-e72b128a13fe.jpg?v=1720108200","width":1200},{"alt":null,"id":34188601557218,"position":2,"preview_image":{"aspect_ratio":1.333,"height":900,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/my23_ecoco_angle_2000x_3f8e6ef1-ccb5-40dc-9a56-e3091ef04d75.jpg?v=1720108212"},"aspect_ratio":1.333,"height":900,"media_type":"image","src":"\/\/projektride.co.uk\/c
:1200},{"alt":null,"id":34188606243042,"position":5,"preview_image":{"aspect_ratio":1.333,"height":900,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20220509-Kona3398-Ecoco-Details_2000x_5a9e6644-ec30-43e2-905b-87cfd913484a.jpg?v=1720108247"},"aspect_ratio":1.333,"height":900,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20220509-Kona3398-Ecoco-Details_2000x_5a9e6644-ec30-43e2-905b-87cfd913484a.jpg?v=1720108247","width":1200},{"alt":null,"id":34188608307426,"position":6,"preview_image":{"aspect_ratio":1.333,"height":900,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20220509-Kona3413-Ecoco-Details_2000x_0510cdcb-9148-4679-8dbf-21631f7d168d.jpg?v=1720108258"},"aspect_ratio":1.333,"height":900,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20220509-Kona3413-Ecoco-Details_2000x_0510cdcb-9148-4679-8dbf-21631f7d168d.jpg?v=1720108258","width":1200}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eThe Ecoco has bCustom Builds26amp; GEOMETRY\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp class=\"h2 text-center\" data-mce-fragment=\"1\"\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003c\/p\u003e\n\u003cdiv class=\"bike_data_wrapper\" data-mce-fragment=\"1\"\u003e\n\u003cdiv id=\"kro_specs\" data-mce-fragment=\"1\"\u003e\n\u003ch3 data-mce-fragment=\"1\"\u003eSPECIFICATIONS\u003c\/h3\u003e\n\u003cdiv class=\"table_wrapper\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"scrollable-wrapper\"\u003e\n\u003ctable data-mce-fragment=\"1\"\u003e\n\u003ctbody data-mce-fragment=\"1\"\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eFRAME MATERIAL\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eKona 6061 Aluminum Butted\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eSIZES\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eS, M, L\u003c\/td\u003e\n\u003
=\"1\"\u003eB\/B\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003ePEDALS\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eKona JS2\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eCHAIN\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eKMC X9\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eCASSETTE\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano Alivio 11-34t 9spd\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eCHAINGUIDE\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano E-Bike Cha
n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eFRONT BRAKE ROTOR\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano RT10 160mm (centerlock)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eREAR BRAKE ROTOR\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano RT10 160mm (centerlock)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eBRAKE LEVERS\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eShimano MT401\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eHEADSET\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eFeimin H863\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"label\" data-mce-fragm
class=\"scrollable-wrapper\"\u003e\n\u003ctable data-mce-fragment=\"1\"\u003e\n\u003ctbody data-mce-fragment=\"1\"\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e \u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eSIZE\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eS\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eM\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003eL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e1\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eST LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e420\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e470\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e520\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr da
age = Date.now() - updatedAt.getTime();
if (age Insure Your Bikebel\" data-mce-fragment=\"1\"\u003eSTACK\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e573\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e606\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e644\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e5\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eSTANDOVER\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e584\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e584\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e591\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e6\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eHT ANGLE\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e70.0\u003c\/t
Parts & Components= 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
ment=\"1\"\u003e73.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e9\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eCS LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e450\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e450\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e450\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e10\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eBB DROP\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e70\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd c
\u003eFRONT CENTER\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e637\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e674\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e703\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e14\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eFORK LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e409\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e409\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e409\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\" data-mce-fragment=\"1\"\u003e\n\u003ctd class=\"geo_numbers\" data-mce-fragment=\"1\"\u003e15\u003c\/td\u003e\n\u003ctd class=\"label\" data-mce-fragment=\"1\"\u003eFORK OFFSET\u003c\/td\u003e\n\u003ctd class=\"data\" data-mce-fragment=\"1\"\u003e50\u003c\/td\u003e\n\u003ctd
riantsPreorderCount = {45664042713314 : parseInt(""),45664042746082 : parseInt(""),45664042778850 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {45664042713314 : null,45664042746082 : null,45664042778850 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {45664042713314 : parseInt(""),45664042746082 : parseInt(""),45664042778850 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {45664042713314 : null,45664042746082 : null,45664042778850 : null,};
window._RestockRocketConfig.variantsShippingText = {45664042713314 : "",45664042746082 : "",45664042778850 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {45664042713314 : null,45664042746082 : null,45664042778850 : null,};
window._RestockRocketConfig.selected_variant_id = 45664042713314;
window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window.
iquidRenderedAt !== '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 See More 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 ||
;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:cente
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;
retur
.restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-descripti
.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.Shopify.shop,
'ngrok-skip-browser-warning': 'skip'
};
if (window.Shopify?.theme?.role === 'main') {
headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name;
headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;
headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id;
}
fetch(
onfig.pageType}`);
// 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);
})
if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enab
settings: settings,
preorderEnabled: settings.preorder_enabled
}
});
console.debug('STOQ - dispatching app loaded event');
window.dispatchEvent(appLoadedEvent);
}
}
Brands
See More
position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-w
Cockpit
Hopegress-fill{display:block;height:100%;min-width:2px;transition:width 0.3s ease;}.restock-rocket-preorder-progress-bar .preorder-progress-percentage{font-weight:500;min-width:35px;text-align:right;}
Enve
Ridgeback
Custom Build Inspiration
See More
Stems
Headset :
Handlebars
FSA HS NO.10 1-1/8 inch
Services
Grips & Bar-Tape
Hubs :
Workshop Headsets
KTTC7 32h Front and Rear
Workshop Prices
See More
Brake RotorsOther
Motor :
Track Your Service
Complete Brakes
Sportdrive MD250S 250W 90Nm
Custom Builds
Forks
Brake Pads
Mudguard :
Cycle To Work Schemes Brake Spares
Fitted
Insure Your Bike
See More
Front Suspension
Rear Suspension
Finishing Kit
See More
Tubes
Tubeless
SaddlesSeat Posts & Clamps
Pedals
See More
Components
E-bike Batteries and chargers
Wheels
See More
Tubeless
Tools & Maintenance
Clothing and ProtectionProjektRide Merchandise
Helmets
Cleaners, Degreasers and Lubrication
Maintenance










8
Custom Builds
74.0Cycle To Work Schemes
Insure Your Bike
9