We are now stocking Skarper!
Transform your bike into a high-performance e-bike in seconds!
Check them out!

a href="https://shopify.projektride.co.uk/collections/parts-components?filter.p.vendor=Burgtec,burgtec" class="logo-list__slide-image" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot_2022-02-06_at_16.20.15_360x.png?v=1644164427); width: 170px; padding-top: 17.4%;">70.0 > Logo image70.0
70.0 a href="https://shopify.projektride.co.uk/collections/all-products?filter.p.vendor=Hope,hope,HOPE" class="logo-list__slide-image" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot_2022-02-06_at_16.21.05_360x.png?v=1644164480); width: 160px; padding-top: 23.0%;"> >
Logo image a href="https://www.straightcutdesign.com/" class="logo-list__slide-image" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot_2022-03-16_at_14.44.40_360x.png?v=1647443209); width: 170px; padding-top: 26.3%;">HT LENGTH > Open search barLogo image135 Logo image 255>
272SERVICES WHEELBASE INFORMATION
1116
1185Working Hours
Header Image Mon - Fri: 09:00 - 18:30
Sat: 9:00 - 16:00 Sun: Closed 13
FRONT CENTER 0131 374 5324675
705
\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e11\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eBB HEIGHT\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e12\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eWHEELBASE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1077\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1116\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1146\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1185\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e13\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eFRONT CENTER\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e636\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e675\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e705\u003c\/td\u 003e\n\u003ctd class=\"data\"\u003e744\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e14\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eFORK LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e15\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eFORK OFFSET\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e50\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e50\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e50\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e50\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"geo_diagram\"\u003e\u003cimg alt=\"KONA Geometry\" src=\"https:\/\/images.konaworld.com\/36e\/geo_diagram.png\"\u003e\u003c\/div\u003e\n\
Sat: 9:00 - 16:00

WHY PROJEKTRIDE? Sun: Closed

Co-founded by two childhood friends from the heart of the Scottish mountain bike scene, ProjektRide represents our shared passion for riding quality bikes. We stock a range of premium new and second-hand bikes in Edinburgh for all ages and all cycling disciplines. We also have a comprehensive workshop if you are looking to get your bicycle maintained.

ABOUT US
Tel
0131 374 5324
ProjektRide
.
Website by

Customer Care

The team's goal is to provide excellent service to ensure every customer has a great experience.

|| {} // Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us') // This matches the backend's Mobility.normalize_locale behavior // Returns empty string if locale is empty or invalid (matches original behavior) function normalizeLocale(locale) { if (!locale || locale.trim() === '') { return ''; } return locale.toString().toLowerCase().replace(/-/g, '_'); } window._RestockRocketConfig.locale = 'en'; window._RestockRocketConfig.normalizedLocale = normalizeLocale('en'); window._RestockRocketConfig.shop = 'projektride.myshopify.com'; window._RestockRocketConfig.pageType = 'product';window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom'; window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at ":"2025-11-11T14:27:02.312Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SM

S","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too","show_button_on_collection":false,"sms_default_country":"us","sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantGetting the Right Bikeity_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","st

orefront_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 We don’t do 'bikes for the masses', our key objective is to get you the correct bike for your unique riding profile.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,"m arket_setup_type":"single_market","shopify_app_id":5940125,"cache":true,"cached_at":"2025-11-11T14:27:02.333Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43590980075746,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,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,43981392904418,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482 ,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140302827746,44140302893282,44140317016290,44155590508770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"202insert_selector_type":"afterend","countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true}];window._RestockRocketConfig.integrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQ uantity = false;window._RestockRocketConfig.product = {"id":8050065342690,"title":"Kona Dew Plus Hybrid Bike","handle":"kona-dew-plus","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"sectionwrapper bike_intro\"\u003e\n\u003cdiv class=\"section\"\u003e\n\u003cdiv class=\"bike_overview ov_2022\"\u003eWhen riding your bike, you want a few simple things. Comfort, function, and control are at the top of the list, so we built the Dew Plus with all three in mind. The Dew Plus features a 10-speed drivetrain for smooth shifting and a broad gear range. Hydraulic disc brakes keep the bike in control in tricky conditions. With geometry that keeps the rider comfortable on rides long or short and a kickstand, it’s a great choice for commutes.\u003c\/div\u003e\n\u003cdiv class=\"bike_overview ov_2022\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sectionwrapper bike_specs_geo\"\u003e\n\u003cdiv data-scroll-index=\"1\" class=\"sectiontarget\"\u003e\u003cbr\u003e\u003c

\/div\u003e\n\u003cdiv class=\"section\"\u003e\n\u003cdiv class=\"bike_specs\"\u003e\n\u003ch2\u003eSPECIFICATIONS\u003c\/h2\u003e\n\u003cdiv class=\"table_wrapper\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eFRAME MATERIAL\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona 6061 Aluminum Butted\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSIZES\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eS, M, L, XL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eREAR SHOCK\u003c\/td\u003e\n\u003ctd class=\"data\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eFORK\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Project Two Aluminum Disc\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eCRANKARMS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eSamox\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr Quality Controlclass=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eCHAINRINGS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e36t\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eB\/B\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano 68mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003ePEDALS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eFeimin Platform\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eCHAIN\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKMC X10-1\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eCASSETTE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Deore 11-42t 10spd\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eCHAINGUIDE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eF\/D\u003c\/td\u0

03e\n\u003ctd class=\"data\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eR\/D\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Deore\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSHIFTERS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Deore\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eBRAKE CALIPERS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eClarks M2 Hydraulic\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eFRONT BRAKE ROTOR\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eClarks M2 160mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eREAR BRAKE ROTOR\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eClarks M2 160mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eBRAKE LEVERS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eClaEvery bike that passes through our business receives the upmost care and attention, ensuring safety and reliability to every client.rks M2 Hydraulic\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eHEADSET\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eFeimin FP-H863\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eHANDLEBAR\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Aluminum Riser\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eSTEM\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Control\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSEATPOST\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Commuter 27.2mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eSEAT CLAMP\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Clamp\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eGRIPS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Key Grip\u003c\/td\u003e\n\u003c\/tr\u003e\n\u00

3ctr\u003e\n\u003ctd class=\"label\"\u003eSADDLE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Commuter\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eFRONT HUB\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano 100x9mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eREAR HUB\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano 135x10mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSPOKES\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eStainless Black 14g\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eRIMS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eDouble Wall alloy\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eFRONT TIRE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eWTB Horizon Comp 650x47c\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u00 3eREAR TIRE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eWTB Horizon Comp 650x47c\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003ePAINT COLOR\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eGloss Titian or Gloss Black w\/ Charcoal \u0026amp; Nimbus Decals\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eEXTRAS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKickstand\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003cp class=\"specs_disclaimer\"\u003eAll specifications are subject to change without notice\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bike_geometry\"\u003e\n\u003ch2\u003eGEOMETRY\u003cspan class=\"s-geo\"\u003e\u003cspan class=\"s-current\" id=\"s-geo_mm\"\u003emm\u003c\/span\u003e\u003cspan id=\"s-geo_inch\"\u003einches\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cdiv id=\"geo_mm\"\u003e\n\u003cdiv class=\"table_wrapper\"\u003e\n\u003ctab
le\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e \u003c\/td\u003e\n\u003ctd class=\"label\"\u003eSIZE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eM\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eL\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eXL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e1\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eST LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e420\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e470\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e520\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e580\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e2\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eTT LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e550\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e597\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e636\u003c\/td\u003e\n\u003ctd class= \"data\"\u003e686\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e3\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eREACH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e398\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e423\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e439\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e465\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e4\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eSTACK\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e569\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e607\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e644\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e682\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e5\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eSTANDOVER\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e687\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e722\u003c\/td\u003e\n\u003ctd class=\"
data\"\u003e757\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e798\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e6\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eHT ANGLE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e7\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eHT LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e135\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e175\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e215\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e255\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e8\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eST ANGLE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e75.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e 74.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e73.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e72.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e9\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eCS LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e450\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e450\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e450\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e450\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e10\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eBB DROP\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e11\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eBB HEIGHT\u003c\/td\u003e\n\u003ctd class=\"data\"\
u003e\u003c\/div\u003e\n\u003cdiv class=\"section\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e","published_at":"2023-03-13T15:56:20+00:00","created_at":"2023-03-13T15:56:21+00:00","vendor":"Kona","type":"Bicycles","tags":["Dew","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":67900,"price_min":67900,"price_max":67900,"available":false,"price_varies":false,"compare_at_price":68000,"compare_at_price_min":68000,"compare_at_price_max":68000,"compare_at_price_varies":false,"variants":[{"id":43916673941730,"title":"Small","option1":"Small","option2":null,"option3":null,"sku":"KN23B-DWPL-SM-OR","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Dew Plus Hybrid Bike - Small","public_title":"Small","options":["Small"],"price":67900,"weight":15000,"compare_at_price":68000,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43916673974498,"title":"Medium","option1":"Medium","option2":null ,"option3":null,"sku":"KN23B-DWPL-MD-OR","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Dew Plus Hybrid Bike - Medium","public_title":"Medium","options":["Medium"],"price":67900,"weight":15000,"compare_at_price":68000,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43916674007266,"title":"Large","option1":"Large","option2":null,"option3":null,"sku":"KN23B-DWPL-LG-OR","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Dew Plus Hybrid Bike - Large","public_title":"Large","options":["Large"],"price":67900,"weight":15000,"compare_at_price":68000,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43916674040034,"title":"Extra Large","option1":"Extra Large","option2":null,"option3":null,"sku":"KN23B-DWPL-XL-OR","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona D
ew Plus Hybrid Bike - Extra Large","public_title":"Extra Large","options":["Extra Large"],"price":67900,"weight":15000,"compare_at_price":68000,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/dew_plus.jpg?v=1678722983"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/dew_plus.jpg?v=1678722983","options":["Size"],"media":[{"alt":null,"id":31677125230818,"position":1,"preview_image":{"aspect_ratio":1.745,"height":1923,"width":3355,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/dew_plus.jpg?v=1678722983"},"aspect_ratio":1.745,"height":1923,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/dew_plus.jpg?v=1678722983","width":3355}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"sectionwrapper bike_intro\"\u003e\n\u003cdiv class=\"section\"\u003e\n\u003cdiv class=\"bike_overview ov_2022\"\u0 03eWhen riding your bike, you want a few simple things. Comfort, function, and control are at the top of the list, so we built the Dew Plus with all three in mind. The Dew Plus features a 10-speed drivetrain for smooth shifting and a broad gear range. Hydraulic disc brakes keep the bike in control in tricky conditions. With geometry that keeps the rider comfortable on rides long or short and a kickstand, it’s a great choice for commutes.\u003c\/div\u003e\n\u003cdiv class=\"bike_overview ov_2022\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sectionwrapper bike_specs_geo\"\u003e\n\u003cdiv data-scroll-index=\"1\" class=\"sectiontarget\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"section\"\u003e\n\u003cdiv class=\"bike_specs\"\u003e\n\u003ch2\u003eSPECIFICATIONS\u003c\/h2\u003e\n\u003cdiv class=\"table_wrapper\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eFRAME MATERIAL\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e
\"\u003eXL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e1\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eST LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e420\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e470\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e520\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e580\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e2\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eTT LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e550\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e597\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e636\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e686\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e3\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eREACH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e398\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e423\u003c\/td\u003e\n\u003ctd class=\"dat a\"\u003e439\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e465\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e4\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eSTACK\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e569\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e607\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e644\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e682\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e5\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eSTANDOVER\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e687\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e722\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e757\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e798\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e6\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eHT ANGLE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c

\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e7\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eHT LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e135\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e175\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e215\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e255\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e8\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eST ANGLE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e75.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e74.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e73.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e72.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e9\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eCS LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u00LOCATION & HOURS3e450\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e450\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e450\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e450\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e10\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eBB DROP\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e11\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eBB HEIGHT\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e12\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eWHEELBASE\u003c\/td\u0

03e\n\u003ctd class=\"data\"\u003e1077\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1116\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1146\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1185\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e13\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eFRONT CENTER\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e636\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e675\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e705\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e744\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e14\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eFORK LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e15\uEdinburgh Bike Shop003c\/td\u003e\n\u003ctd class=\"label\"\u003eFORK OFFSET\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e50\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e50\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e50\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e50\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"geo_diagram\"\u003e\u003cimg alt=\"KONA Geometry\" src=\"https:\/\/images.konaworld.com\/36e\/geo_diagram.png\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sectionwrapper bike_sizing\"\u003e\n\u003cdiv data-scroll-index=\"2\" class=\"sectiontarget\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"section\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {43916673941730 : "deny",43916673974498 : "deny",43916674007266 : "deny",43916674040034 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {43

916673941730 : parseInt("0"),43916673974498 : parseInt("0"),43916674007266 : parseInt("0"),43916674040034 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {43916673941730 : parseInt(""),43916673974498 : parseInt(""),43916674007266 : parseInt(""),43916674040034 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {43916673941730 : null,43916673974498 : null,43916674007266 : null,43916674040034 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {43916673941730 : parseInt(""),43916673974498 : parseInt(""),43916674007266 : parseInt(""),43916674040034 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {43916673941730 : null,43916673974498 : null,43916674007266 : null,43916674040034 : null,}; window._RestockRocketConfig.variantsShippingText = {43916673941730 : "",43916673974498 : "",43916674007266 : "",43916674040034 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {43916673941730 82 Newington Road: null,43916673974498 : null,43916674007266 : null,43916674040034 : null,}; window._RestockRocketConfig.selected_variant_id = 43916673941730; window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-collection.js' window._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 minu
tes in milliseconds function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no translation data in metafield // Metafield hasn't been backfilled yet - force refresh console.debug('STOQ - multi-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 Edinburghbase 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

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 (Mon-Fri: 9:00 - 18:30!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 - err

or applying translations:', e); return settings; } } // First try to get settings from metafields with expiry check const cachedSettings = window._RestockRocketConfig.cachedSettings; const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; if (validCachedSettings) { console.debug('STOQ - using cached settings'); initializeScripts(validCachedSettings); } else { console.debug('STOQ - fetching fresh settings'); const headers = { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; } fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?traSat: 09:00 - 16:00nslation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // If request failed and we have cached settings (even if expired), use them as fallback if (cachedSettings) { console.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cachedSettings); } else { console.error('STOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); if(settings.enable_app) { const hija

ckIntegration = 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_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.Sun: Closedpreorder_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 enabled for ${window._RestockRocketConfig.pageType}`); } // Check and update cart selling plans after scripts are loaded if (settings.preorder_enabled) { updateCartSellingPlans(); } // Dispatch custom event when app is loaded const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoa

dedEvent); } } function updateCartSellingPlans() { // Wait for the API to be available with retries const maxRetries = 10; const retryDelay = 500; function attemptCartCheck(attempt = 1) { if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } else if (attempt <

.restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-floaCustomer Reviews

t-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-dire ction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#ebebeb;height:25px;line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:1
0px}.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:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-coun tdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14px;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@media (max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padd
ing: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{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}

★★★★★

I was recommended these guys by a passing cyclist when I had an embarrassing wardrobe+ bike mishap on my way home from work. Once that was sorted, they also spotted that my rear tyre was ripped and likely to catastrophically fail on me if I wasn't careful. They were speedy, kind and generous with their time and advice. Wouldn't hesitate to recommend them

Lucy Gaunt

★★★★★

We rented two gravel bikes to explore Scotland for nearly three weeks, and I couldn’t have been happier with the experience. The bikes came fully equipped with everything we could possibly need—repair kit, pannier bags, lock, spare tubes, and more. The team was incredibly welcoming and friendly, making the whole process seamless. There’s honestly nothing-

negative I could say; everything exceeded expectations. I can wholeheartedly recommend ProjectRide for anyone looking to rent a bike, and their many 5-star reviews are absolutely well deserved.Reply

Matias Hugentobler

★★★★★

Absolutely fantastic bike shop. Always willing to help you out when you’re having a problem. Bought many bike components from them over the years and every time they go out of their way to fit them!

Would recommend wholeheartedly for any biking needs!

Max McMullon

I have taken several bikes here for servicing and repairs and been consistently impressed by their friendly and helpful advice, and the quality of their repair works. They seem to give a very honest opinion on whether work is required or not.

Robert Moreton

★★★★★

These fantastic guys saved our holiday. We were bike trekking around Scotland, and after 3 days, we had serious brake problems. The oil was coming out of the calliper. I called 2 days before our arrival, and they promised to make some time for us. They fixed the problem very fast and they totally didn't take advantage of our situation. I know the prices very well, because I have done all my maintenance myself for many years, and I was surprised by the low cost. Thanks a lot guys.

Wim Lintermans

★★★★★

Amazing service and quick turnaround! Dropped my bike off at 6:30pm (closing time) one day and it had been fully serviced and sorted out by the next morning! Top service and reasonable prices. Will come back here for all bike servicing needs in the future no doubt! Guys are incredibly knowledgeable also.

Christian Graham

★★★★★

great shop. Traded in my bike for a second hand road bike. Great service, good prices. Would definitely recommend.

Theo Golden

★★★★★

The two guys that welcomed me were amazing! Very spot on with all their advice and extremely helpful, as well as honest. What more can you ask for from a bike shop? 🤔😜👍

Antonio Iglesias

★★★★★

These guys are great! Super helpful, affordable, and friendly. They don't talk down to you as a woman which I always appreciate!

Tiki Muir

★★★★★

Bikes are hard to come by at the moment. Andy and Dougie at ProjektRide were amazing in sourcing a frame and a build kit, then marrying them up to create a fantastic bike. They were really attentive to sizing and fitting, based on my riding style.

Matt Wilkes

★★★★★

Friendly welcome, quick to help, reliable comms. Glad to have a local bike shop in Edinburgh who know what they're doing!

Nicholas Paul Franks

★★★★★

I always get really friendly and helpful advice at ProjektRide and excellent results from any servicing they do. Highly recommended.

Christine Thompson

★★★★★

Brilliant service. Andy listened to exactly what I needed and very kindly brought both bikes to my house for me to test ride, so helpful. Would definitely recommend.

Jill Kerr

★★★★★

I can highly recommended this place. Andy was very helpful and knowledgeable when I came to him looking for my next bike.
Moreover, he ensured the bike was in its best condition before handing over. Thanks a million!

Laura Grieve

★★★★★

Top quality bike, top quality service - these are decent guys doing a great job. Thoroughly impressed with their knowledge and service. Recommend to anyone buying a bike - talk to them and they give you good advice.

Mike Smith

★★★★★

Took my old bike in for a service and it now feels like new. Great communication and great price. Also took the time to chat about future bike options with me. Cannot recommend Projekt Ride enough!

Calum Thistle

★★★★★

Servicing of my titanium road bike. Great friendly and knowledgable service from Andy and his team. Thoroughly recommended as my LBS of choice

Mark Dunn

★★★★★

If you are looking for someone helpful and knowledgeable this is the place to go.
Excellent service got a great bike in great condition even helped out with a few extras and provided the original receipt for lifetime guarantee on the frame.

Iain Orr

★★★★★

I dropped my Specialized Vita for new brake pads and a service, the bike was ready for collection the same day and the price was reasonable! Bicycle feels brand new again and works amazing! Many thanks!!

Heather Paterson

★★★★★

Staff are very kind and the price is relatively reasonable, also student can have 10% discount which it great :)

William Gui

★★★★★

Excellent friendly and efficient service. Great product knowledge and good value for money! Highly recommend

Ben Ross

Use this testimonial as an opportunity for your customers to discuss your brand and what sets you apart from the competition.

John Doe