maxRetries) {
console.debug(`STOQ - API not ready, retry ${attempt}/${maxRetries}`);
setTimeout(() => attemptCartCheck(attempt + 1), retryDelay);
} else {
console.debug('STOQ - API not loaded after max retries, skipping cart selling plan check');
}
}
attemptCartCheck();
}
T2 24 Disc Rear Disc Rim on Halo SB Disc Hub 36H Shimano HG White
(15mm) Black","option1":"T2 26 Front Halo SB Black Disc Hub 32H (15mm) Black","option2":null,"option3":null,"sku":"WHHA26KF","requires_shipping":true,"taxable":true,"featured_image":{"id":39122260525282,"product_id":8063305187554,"position":3,"created_at":"2023-03-26T11:57:13+01:00","updated_at":"2023-03-26T11:57:13+01:00","alt":null,"width":1170,"height":1070,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-03-26at11.57.08.png?v=1679828233","variant_ids":[43981392838882]},"available":true,"name":"Halo T2 26\" Wheels - T2 26 Front Halo SB Black Disc Hub 32H (15mm) Black","public_title":"T2 26 Front Halo SB Black Disc Hub 32H (15mm) Black","options":["T2 26 Front Halo SB Black Disc Hub 32H (15mm) Black"],"price":15999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31721009807586,"position":3,"preview_image":{"aspect_ratio":1.093,"height":1070,"width":1170,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-03-26avisibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"
{"id":15284605452671,"title":"Projektride's Student bike bundle!","handle":"projektrides-student-bike-bundle-1","description":"\u003ch3\u003eTake advantage of our Student Bike Bundle!\u003c\/h3\u003e\n\u003cp\u003eWhat’s included?\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRidgeback Velocity\u003c\/li\u003e\n\u003cli\u003eKryptonite Keeper Lock\u003c\/li\u003e\n\u003cli\u003eLazer Helmet\u003c\/li\u003e\n\u003cli\u003eFree Running in service\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe cornerstone of our utility range the Velocity combines reliability, comfort and quality in an easy to understand package that is perfect for the first-time buyer. Designed to provide everything you need in a bike, without any unnecessary distractions, the Velocity takes the complications out of bike ownership and leaves you free to enjoy the ride.\u003c\/p\u003e\n\u003cp\u003eThe aluminium frame is built to last and enjoys our limited lifetime warranty, while a single chainring and guard make for a clean ride.\u003c\/p\u003e\n\u003cp\u003e3x8 drivetrain with wide-ranging gears is perfect. This setup gives a perfect range for flatter environments and rolling hills and is very easy to use.\u003c\/p\u003e\n\u003cp\u003eYou'll also ride in comfort because we have selected wide tyres, a comfort saddle with pressure relief channel and ergonomically-shaped dual density grips.\u003c\/p\u003e\n\u003cp\u003ePracticality is another area where the Velocity really shines, with mounts for mudguards and racks.\u003c\/p\u003e\n\u003cp\u003eLooking for a simi
Shimano HG
lar bike, but for hillier terrain and with a wider range of gears? Be sure to take a look at the Ridgeback Motion.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eINFORMATION\u003c\/p\u003e\n\u003cp\u003eWorking Hours ;\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eMon - Fri: 09:00 - 18:30\u003cbr\u003eSat: 9:00 - 16:00\u003cbr\u003eSun: Closed\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003eTel: \u003c\/p\u003e\n\u003cp\u003e0131 374 5324\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eLocation:\u003c\/p\u003e\n\u003cp\u003e82 Newington Road,\u003cbr\u003eEdinburgh,\u003cbr\u003eEH9 1QN\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eEmail:\u003c\/p\u003e\n\u003cp\u003eedinburgh@projektride.co.uk\u003c\/p\u003e\n\u003cdiv class=\"rte\"\u003e\u003c\/div\u003e","published_at":"2025-09-13T12:45:18+01:00","created_at":"2025-09-13T12:30:12+01:00","vendor":"ProjektRide","type":"Bicycles","tags":["bike","BIKES","hybrid","second hand","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-dis
{"alt":null,"id":67711549342079,"position":8,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ftp_f_freewheel_imagesmadisonfwaccessoriescz253011.jpg?v=1758108217"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ftp_f_freewheel_imagesmadisonfwaccessoriescz253011.jpg?v=1758108217","width":1800}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003ch3\u003eTake advantage of our Student Bike Bundle!\u003c\/h3\u003e\n\u003cp\u003eWhat’s included?\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRidgeback Velocity\u003c\/li\u003e\n\u003cli\u003eKryptonite Keeper Lock\u003c\/li\u003e\n\u003cli\u003eLazer Helmet\u003c\/li\u003e\n\u003cli\u003eFree Running in service\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe cornerstone of our utility range the Velocity combines reliability, comfort and quality in an easy to understand package that is perfect for the first-time buyer. Designe
Rear 230mm, Front 232/234mmProjektRide
d to provide everything you need in a bike, without any unnecessary distractions, the Velocity takes the complications out of bike ownership and leaves you free to enjoy the ride.\u003c\/p\u003e\n\u003cp\u003eThe aluminium frame is built to last and enjoys our limited lifetime warranty, while a single chainring and guard make for a clean ride.\u003c\/p\u003e\n\u003cp\u003e3x8 drivetrain with wide-ranging gears is perfect. This setup gives a perfect range for flatter environments and rolling hills and is very easy to use.\u003c\/p\u003e\n\u003cp\u003eYou'll also ride in comfort because we have selected wide tyres, a comfort saddle with pressure relief channel and ergonomically-shaped dual density grips.\u003c\/p\u003e\n\u003cp\u003ePracticality is another area where the Velocity really shines, with mounts for mudguards and racks.\u003c\/p\u003e\n\u003cp\u003eLooking for a similar bike, but for hillier terrain and with a wider range of gears? Be sure to take a look at the Ridgeback Motion.\u003c\/p\u003e\n\u003
{"id":8063304892642,"title":"Halo T2 24\" Wheels","handle":"halo-t2-24-wheels","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eMiddleweight multi-purpose 24\" MTB wheels.\u003c\/p\u003e\n\u003cp\u003eLight and strong, angular style box section rim, with eyelets and a stable screw-pin joint.\u003c\/p\u003e\n\u003cp\u003eThe front wheel features the Halo MT front hub and the rear comes with our sealed bearing Halo Spin Doctor hub.\u003c\/p\u003e\n\u003cp\u003eBoth wheels come with black ED finished spokes.\u003c\/p\u003e\n\u003cp\u003eThe Black Anodised finish 32mm rims are suitable for Vs or Disc brakes, whilst the White Powder coated option is recommended for disc use only.\u003c\/p\u003e\n\u003ch4\u003eIncluded Fittings\u003c\/h4\u003e\n\u003cul class=\"ui-list ui-list-main\"\u003e\n\u003cli class=\"ui-list_item\"\u003e\n\u003cspan class=\"ui-list-title\"\u003eFront\u003c\/span\u003e\u003cspan class=\"ui-list-info\"\u003e100 x 15mm thru\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list_item\"\u003e\n\u003cspan class=\"ui-list-title\"\u003eRear 135\u003c\/span\u003e\u003cspan class=\"ui-list-info\"\u003e135 x 9mm QR\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cem\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003eAnodised finish rims will accept V-brakes but the brake surface colour finish will wear\u003c\/em\u003e.\u003c\/p\u003e\n\u003ch4\u003eSpecifications\u003c\/h4\u003e\n\u003ch4\u003eRims: \u003cspan class=\"ui-list-info\"\u003eHalo 32mm T2 rims with eyelets\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eHubs: \u003cspan class=\"ui-list-info\"\u003eHalo MT Series\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eExternal Rim Width: \u003cspan class=\"ui-list-info\"\u003e32mm\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eNipples: \u003cspan class=\"ui-list-info\"\u003eBlack Alloy\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eRim Depth: \u003cspan class=\"ui-list-info\"\u003e20.5mm\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eInternal Rim Width: \u003cspan class=\"ui-list-info\"\u003e26mm\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eFront Hub Spacing: \u003cspan class=\"ui-list-info\"\u003e100mm\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eRear spacing: \u003cspan class=\"ui-list-info\"\u003e135mm\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eFreehub Body: \u003cspan class=\"ui-list-info\"\u003eShimano HG\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eSpoke lengths: \u003cspan class=\"ui-list-info\"\u003eRear 230mm, Front 232\/234mm\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eSpoke pattern: \u003cspan class=\"ui-list-info\"\u003eRace optimised 3x, 36H rear \u0026amp; 32H front spoking\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eBearings: \u003cspan class=\"ui-list-info\"\u003e6804 (front), 6200\/6000 (rear) sealed cartridge bearings\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eColour: \u003cspan class=\"ui-list-info\"\u003eBlack Anodised or white powder coated\u
[email protected]
003c\/span\u003e\n\u003c\/h4\u003e","published_at":"2023-03-26T11:40:22+01:00","created_at":"2023-03-26T11:40:22+01:00","vendor":"halo","type":"wheels","tags":["Complete wheels","Halo","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":14999,"price_min":14999,"price_max":14999,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":43981382320354,"title":"T2 24 Front Halo SB Disc Hub 32H (Ft 15mm) Black","option1":"T2 24 Front Halo SB Disc Hub 32H (Ft 15mm) Black","option2":null,"option3":null,"sku":"WHHA24KF","requires_shipping":true,"taxable":true,"featured_image":{"id":39122235523298,"product_id":8063304892642,"position":1,"created_at":"2023-03-26T11:43:00+01:00","updated_at":"2023-03-26T11:43:00+01:00","alt":null,"width":1170,"height":1070,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-03-26at11.42.51.png?v=1679827380","variant_ids":[43981382320354]},"a
<70,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-03-26at11.43.23.png?v=1679827410","width":1170}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eMiddleweight multi-purpose 24\" MTB wheels.\u003c\/p\u003e\n\u003cp\u003eLight and strong, angular style box section rim, with eyelets and a stable screw-pin joint.\u003c\/p\u003e\n\u003cp\u003eThe front wheel features the Halo MT front hub and the rear comes with our sealed bearing Halo Spin Doctor hub.\u003c\/p\u003e\n\u003cp\u003eBoth wheels come with black ED finished spokes.\u003c\/p\u003e\n\u003cp\u003eThe Black Anodised finish 32mm rims are suitable for Vs or Disc brakes, whilst the White Powder coated option is recommended for disc use only.\u003c\/p\u003e\n\u003ch4\u003eIncluded Fittings\u003c\/h4\u003e\n\u003cul class=\"ui-list ui-list-main\"\u003e\n\u003cli class=\"ui-list_item\"\u003e\n\u003cspan class=\"ui-list-title\"\u003eFront\u003c\/span\u003e
Front 29" Rear 29" CL 110x15 / 148x12 Shimano HG - Sold Outspan class="visually-hidden">Hire Lazer Compact Helmet\u003cspan class=\"ui-list-info\"\u003e100 x 15mm thru\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list_item\"\u003e\n\u003cspan class=\"ui-list-title\"\u003eRear 135\u003c\/span\u003e\u003cspan class=\"ui-list-info\"\u003e135 x 9mm QR\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cem\u003e\u003cstrong\u003eNote:\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003eAnodised finish rims will accept V-brakes but the brake surface colour finish will wear\u003c\/em\u003e.\u003c\/p\u003e\n\u003ch4\u003eSpecifications\u003c\/h4\u003e\n\u003ch4\u003eRims: \u003cspan class=\"ui-list-info\"\u003eHalo 32mm T2 rims with eyelets\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eHubs: \u003cspan class=\"ui-list-info\"\u003eHalo MT Series\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eExternal Rim Width: \u003cspan class=\"ui-list-info\"\u003e32mm\u003c\/span\u003e\n\u003c\/h4\u003e\n\u003ch4\u003eNipples: \u003cspan class=\"ui-list-info\"\u003eBlack Alloy\u003c\/span\u003
3e\n\u003c\/h4\u003e\n\u003ch4\u003eColour: \u003cspan class=\"ui-list-info\"\u003eBlack Anodised or white powder coated\u003c\/span\u003e\n\u003c\/h4\u003e"}
I'm looking to buy this product, when will it arrive and how much does postage cost?Front 29" Rear 29" CL 110x15 / 157x12 Micro Spline - Sold Out>
Front 29" Rear 29" CL 110x15 / 157x12 Shimano HG - Sold Out
[]Parts & Components
Front 29" Rear 29" CL 110x15 / 157x12 XD - Sold Out
If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item. Front 29" Rear 27" CL 110x15 / 148x12 Micro Spline - Sold OutHire Lazer Compact Helmet
A particular goal in the M9 Pro's development was ‘no lost run’, meaning no training, quality or race runs being lost as a result of a wheel issue, and it was achieved. Henry Quinney of Pinkbike said, “We dinged a lot of rims on this test. We hit the ENVEs into many things, but they were both comfortable, compliant and, most importantly, in one piece by the end.”
ProjektRide Bike Shop EdinburghInner rim width front 29mm, hook width 6.2mm, depth 22mm, weight 720gpreview_image":{"aspect_ratio":1.048,"height":1116,"width":1170,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-03-26at11.57.26.png?v=1679828251"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43981392904418,"title":"T2 26 Disc Front Disc Rim on Halo SB Black Disc Hub 32H 15mm White","option1":"T2 26 Disc Front Disc Rim on Halo SB Black Disc Hub 32H 15mm White","option2":null,"option3":null,"sku":"WHHA26WKF","requires_shipping":true,"taxable":true,"featured_image":{"id":39122261999842,"product_id":8063305187554,"position":5,"created_at":"2023-03-26T11:57:51+01:00","updated_at":"2023-03-26T11:57:51+01:00","alt":null,"width":1170,"height":1116,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-03-26at11.57.47.png?v=1679828271","variant_ids":[43981392904418]},"available":true,"name":"Halo T2 26\" Wheels - T2 26 Disc Front Disc Rim on Halo SB Black Disc Hub 32H 15mm White","public_title":"T2 26 Disc Front Disc Rim on Halo SB Black Disc Hub 32H 15mm White","op
Contact Us[email protected]
Spoke Length (Innerdrive Hub)
window._RestockRocketConfig = window._RestockRocketConfig || {}
// Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us')
// This matches the backend's Mobility.normalize_locale behavior
// Returns empty string if locale is empty or invalid (matches original behavior)
function normalizeLocale(locale) {
if (!locale || locale.trim() === '') {
return '';
}
return locale.toString().toLowerCase().replace(/-/g, '_');
}
window._RestockRocketConfig.locale = 'en';
window._RestockRocketConfig.normalizedLocale = normalizeLocale('en');
window._RestockRocketConfig.shop = 'projektride.myshopify.com';
window._RestockRocketConfig.pageType = 'product';window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom';
window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2025-12-28T14:44:23.508Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"disableDebugLoggingForNonPreorderItem":false},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent
5,55569933074815,55570017550719,55569712447871,55569933107583,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping
options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius
":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true}];window._RestockRocketConfig.integrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":15284605452671,"title":"Projektride's Student bike bundle!","handle":"projektrides-student-bike-bundle-1","description
Nipples":"\u003ch3\u003eTake advantage of our Student Bike Bundle!\u003c\/h3\u003e\n\u003cp\u003eWhat’s included?\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRidgeback Velocity\u003c\/li\u003e\n\u003cli\u003eKryptonite Keeper Lock\u003c\/li\u003e\n\u003cli\u003eLazer Helmet\u003c\/li\u003e\n\u003cli\u003eFree Running in service\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe cornerstone of our utility range the Velocity combines reliability, comfort and quality in an easy to understand package that is perfect for the first-time buyer. Designed to provide everything you need in a bike, without any unnecessary distractions, the Velocity takes the complications out of bike ownership and leaves you free to enjoy the ride.\u003c\/p\u003e\n\u003cp\u003eThe aluminium frame is built to last and enjoys our limited lifetime warranty, while a single chainring and guard make for a clean ride.\u003c\/p\u003e\n\u003cp\u003e3x8 drivetrain with wide-ranging gears is perfect. This setup gives a perfect range for flatter envi
ronments and rolling hills and is very easy to use.\u003c\/p\u003e\n\u003cp\u003eYou'll also ride in comfort because we have selected wide tyres, a comfort saddle with pressure relief channel and ergonomically-shaped dual density grips.\u003c\/p\u003e\n\u003cp\u003ePracticality is another area where the Velocity really shines, with mounts for mudguards and racks.\u003c\/p\u003e\n\u003cp\u003eLooking for a similar bike, but for hillier terrain and with a wider range of gears? Be sure to take a look at the Ridgeback Motion.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eINFORMATION\u003c\/p\u003e\n\u003cp\u003eWorking Hours ;\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eMon - Fri: 09:00 - 18:30\u003cbr\u003eSat: 9:00 - 16:00\u003cbr\u003eSun: Closed\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003eTel: \u003c\/p\u003e\n\u003cp\u003e0131 374 5324\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eLocation:\u003c\/p\u003e\n\u003cp\u003e82 Newington Road,\u003cbr\u003eEdinburgh,\u003cbr\u003eEHCart
9 1QN\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eEmail:\u003c\/p\u003e\n\u003cp\u003eedinburgh@projektride.co.uk\u003c\/p\u003e\n\u003cdiv class=\"rte\"\u003e\u003c\/div\u003e","published_at":"2025-09-13T12:45:18+01:00","created_at":"2025-09-13T12:30:12+01:00","vendor":"ProjektRide","type":"Bicycles","tags":["bike","BIKES","hybrid","second hand","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":49900,"price_min":49900,"price_max":49900,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":56051529482623,"title":"Small","option1":"Small","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Projektride's Student bike bundle! - Small","public_title":"Small","options":["Small"],"price":49900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,
tockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b9fa3-dc53-7a1c-9078-4931c5088fc8/restock-rocket-shopify-427/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
window._RestockRocketConfig.host = 'https://app.restockrocket.io'
const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data structure');
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 (!settSpend Juan Borges Designs
ings.translations) {
// Translations enabled but no translation data in metafield
// Metafield hasn't been backfilled yet - force refresh
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
// Translations object exists in metafield - cache is valid
// If current locale isn't translated, applyTranslations will gracefully use default locale from base fields
if (window._RestockRocketConfig.normalizedLocale &&
!Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
console.debug('STOQ - locale not explicitly translated, will use default language from cache');
}
// Don't return null - continue using cache even for untranslated locales
}
const updatedAt = new Date(settings.updated_at);
if (isNaN(updatedAt.getTime())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const age = Date.now() - updatedAt.getTime();
if (age £50.100kgf< 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 || to qualify for free shipping
!settings.multi_language_enabled) {
return settings;
}
if (!settings.translations) {
console.debug('STOQ - No translations found, skipping translation');
return settings;
}
const normalizedLocale = window._RestockRocketConfig.normalizedLocale;
const translations = settings.translations;
if (!normalizedLocale) {
// No matching locale has translations; drop payload to save memory
console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
delete settings.translations;
return settings;
}
console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`);
const translatedFields = translations[normalizedLocale];
if (translatedFields && typeof translatedFields === 'object') {
Object.keys(translatedFields).forEach(function(key) {
const value = translatedFields[key];
if (value !== null && value !== undefined && value !== '') {
settings[key] = value;
}
});
} else {
console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
}
delete settings.translations;
return settings;
} catch (e) {
console.debug('STOQ - error applying translations:', e);
return settings;
}
}
// 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?.them
e?.role === 'main') {
headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name;
headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;
headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id;
}
fetch(
`${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`,
{ headers }
)
.then(function(response) {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(function(settings) {
initializeScripts(settings);
})
.catch(function(error) {
// If request failed and we have cached settings (even if expired), use them as fallback
if (cachedSettings) {
console.debug('STOQ - using expired cached settings as fallback');
initializeScripts(cachedSettings);
} else {
console.error('STOQ - failed to load settings:', error);
}
})
.catch(function(e) {
console.error(e)
})
}
function initializeScripts(settings) {
settings = applyTranslations(settings);
window._RestockRocketConfig.settings = settings;
console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
if(settings.enable_app) {
const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType);
})
if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_bCongratulations! Your order qualifies for free shipping
utton_on_index || settings.preorder_index_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'product') {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct);
} else if(hijackIntegration) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`);
}
// Check and update cart selling plans after
cart selling plan updates needed');
}
})
.catch(error => {
console.error('STOQ - error updating cart selling plans:', error);
});
} else if (attempt
Brake Type
maxRetries) {
console.debug(`STOQ - API not ready, retry ${attempt}/${maxRetries}`);
setTimeout(() => attemptCartCheck(attempt + 1), retryDelay);
} else {
console.debug('STOQ - API not loaded after max retries, skipping cart selling plan check');
}
}
attemptCartCheck();
}
Centerlock Boost / 6-Bolt 20x110mm
window._RestockRocketConfig = window._RestockRocketConfig || {}
// Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us')
// This matches the backend's Mobility.normalize_locale behavior
// Returns empty string if locale is empty or invalid (matches original behavior)
function normalizeLocale(locale) {
if (!locale || locale.trim() === '') {
return '';
}
return locale.toString().toLowerCase().replace(/-/g, '_');
}
window._RestockRocketConfig.locale = 'en';
window._RestockRocketConfig.normalizedLocale = normalizeLocale('en');
window._RestockRocketConfig.shop = 'projektride.myshopify.com';
window._RestockRocketConfig.pageType = 'product';window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom';
window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2025-12-28T14:44:23.508Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"disableDebugLoggingForNonPreorderItem":false},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enab
.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:30ixed_cart_error":"This item needs to be purchased separately. Please check out or clear your cart before adding this item.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":null,"push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your Centerlock Boost / 6-Bolt Super Boost
div class="featured-image__bg bg-pos-center-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/2571D9FF-E9AE-4004-9A55-C7FD4DD999D6_2048x.jpg?v=1640941114');">
I'm looking to find out more information about a product, where can I find this?
WorkshopClothingSpend
to qualify for free shipping
Socks
Please get in touch with a member of the team either by phone (
Congratulations! Your order qualifies for free shipping01313745324Workshop Prices
) or email (
[email protected]
) where on of the team will be more than happy to help.
Book a Service