<
console.log("pr-product-page");

<
I'm looking to find out more information about a product, where can I find this? 01313745324

Certified Shimano Service Centre) or email (

[email protected] ) where on of the team will be more than happy to help.

Cytech Approved Mechanics

I'm looking to buy this product, when will it arrive and how much does postage cost?

.site-footer { --bg: #1f2324; --text: #ffffff; --text-alpha-15: rgba(255, 255, 255, 0.15); --text-alpha-60: rgba(255, 255, 255, 0.6); --text-alpha-85: rgba(255, 255, 255, 0.85); } .footer-content__logo__image { width: 170px; }Entry Level Service £72 <

Our Entry-level service will get your bike up and running ready for the daily commute or weekend adventure.QUICK LINKS

About Us
    Contact Us

  • Tel
  • Headset adjusted and tightened
  • 0131 374 5324
  • Bottom bracket adjusted where possible
  • Hubs adjusted
  • Location
  • Wheels trued and spokes tentioned to the correct level
  • 82 Newington Road
  • Gear hanger alignnedEdinburgh
  • EH9 1QN
  • Seatpost removed and re-greased
  • All components checked for wear
  • Email
[email protected]
Advanced Level Service (Excluding Full Suspension Mountain Bikes) £220

Our advanced service is perfect if you require a full overhaul ahead of a big race, or it's simply been a while since you last had your bike cared for. This strip-down service will prevent any components from seizing and allow for a longer life of each component. No fitting charge is added for parts that are due to be replaced - we will always let you know the total cost before going ahead with the repair.

© 2025,
ProjektRide
    .
  • All aspects of the Entry Level service
  • Website by
  • Full deep clean and polish to the whole bikeJuan Borges Designs
  • .
  • Remove, Clean, degrease and lubricate the drive chain
  • Gear and brake inner cables replaced if necessary (inner cables included)
  • Brake fluid replaced and the system bled
  • 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-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","store front_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":"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":fa
  • lse,"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_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":null,"insert_button_after_selector_type":"afterend","storefront_button_position_type":"float-right","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"This item needs to be purchased separately. Please cPedals removed and regreasedheck out or clear your cart before adding this item.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":null,"push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page
  • ":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form _selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_sel
  • ector_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,"market_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,Headset stripped and regreased43935995625698,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,4393
  • 6706232546,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,44957136 781538,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],"updated_at":"2025-12-13T13:45:19Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2025-12-13T14:08:56Z","shopi
  • fy_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2025-12-13T14:08:56Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569933140351,55569712382335,55569712415103,55569712480639,55569933173119,55570017616255,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_descHubs stripped and regreasedription_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ disc
  • ount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":" no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","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":8597986312418,"title":"Enigma Titanium Gravel Edge Frameset","handle":"enigma-gravel-edge-frameset","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ePlease note, this price is for the Frame, fork and headset. Available for custom builds, please get in touch for further information.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEnigma Bikes\u003c\/span\u003e\u003c\/p\uBottom bracket stripped and regreased003e\n\u003cp\u003e\u003cspan\u003eEDGE stands proudly as a cornerstone of our high-performance gravel bike lineup, handcrafted from Gr9 3AL 2.5 DB titanium to offer unrivalled strength and durability for the ultimate.\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cbutton class=\"accordion active\"\u003eFRAME SPECIFICATION\u003csvg class=\"icon icon-minus\" aria-hidden=\"true\"\u003e\u003cuse xlink:href=\"#icon-minus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/button\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv class=\"panel\"\u003e\n\u003cdiv class=\"bike__tech-spec\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eFRAME MATERIAL\u003c\/span\u003e\u003cspan\u003eCustom butted, size specific, grade 9 3Al 2.5V CWSR Ti tube set\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eFRAME FINISH\u003c\/span\u003e\u003cspan\u003eIncluded - hand brushed with satin bead logos\u003c\/span\u003e\n
  • \u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHANGER\u003c\/span\u003e\u003cspan\u003eEnigma type 10\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eBOTTOM BRACKET\u003c\/span\u003e\u003cspan\u003eInvestment cast T47 68mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eAXLE DIMS.\u003c\/span\u003e\u003cspan\u003eThru axle | 12mm x 100mm front, 12 x 142mm rear\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADTUBE\u003c\/span\u003e\u003cspan\u003eCNC machined 44mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eCABLE ROUTING\u003c\/span\u003e\u003cspan\u003eInternal via custom entry ports\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eBRAKE MOUNT\u003c\/span\u003e\u003cspan\u003e160 front \/ 140 rear flat mount\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSEAT TUBE\u003c\/span\u003e\u003cspan\u003eExternal 34.9mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\ u003eSEAT POST\u003c\/span\u003e\u003cspan\u003e31.6mm or 27.2mm with shim\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eFRONT DERAILLEUR\u003c\/span\u003e\u003cspan\u003e34.9mm band-on\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADSET\u003c\/span\u003e\u003cspan\u003eIntegral ZS44 upper \/ EC44 lower (Chris King Inset 7\/8)\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eTYRE SIZE\u003c\/span\u003e\u003cspan\u003eMax. 700c x 47mm w\/o guards\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!----\u003e","published_at":"2024-06-21T20:23:58+01:00","created_at":"2024-06-11T09:39:51+01:00","vendor":"ProjektRide","type":"","tags":["bike","BIKES","Frame","frames","NEW","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":270000,"price_min":270000,"price_max":270000,"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":45610939089122,"title":"50cm","option1":"50cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 50cm","public_title":"50cm","options":["50cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939121890,"title":"52cm","option1":"52cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 52cm","public_title":"52cm","options":["52cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939154658,"title":"54cm","option1":"54cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":trDrivetrain parts cleaned in our ultrasonic parts cleanerue,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 54cm","public_title":"54cm","options":["54cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939187426,"title":"56cm","option1":"56cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 56cm","public_title":"56cm","options":["56cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939220194,"title":"58cm","option1":"58cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 58cm","public_title":"58cm","options":["58cm"],"price":270000,"weight":0,"compare_at_price"
  • :null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939252962,"title":"60cm","option1":"60cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 60cm","public_title":"60cm","options":["60cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49.png?v=1718997711","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.02.png?v=1718997712","\/\/projektride.co.uk\/cdn\/shop\/files\/EdgeHTdetail.jpg?v=1718997862","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.17.png?v=1718997714","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.06.png?v=1718997714","\/\/projektride.co.uk\/cdn\/ shop\/files\/Screenshot_2024-06-21_at_20.21.10.png?v=1718997715","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.13.png?v=1718997714","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.15.png?v=1718997714","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.18.png?v=1718997715"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49.png?v=1718997711","options":["Size"],"media":[{"alt":null,"id":34094320779490,"position":1,"preview_image":{"aspect_ratio":1.521,"height":1186,"width":1804,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49.png?v=1718997711"},"aspect_ratio":1.521,"height":1186,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.20.49.png?v=1718997711","width":1804},{"alt":null,"id":34094320910562,"position":2,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files
\/Screenshot_2024-06-21_at_20.21.02.png?v=1718997712"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.02.png?v=1718997712","width":1524},{"alt":null,"id":34094311604450,"position":3,"preview_image":{"aspect_ratio":1.498,"height":4004,"width":5999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/EdgeHTdetail.jpg?v=1718997862"},"aspect_ratio":1.498,"height":4004,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/EdgeHTdetail.jpg?v=1718997862","width":5999},{"alt":null,"id":34094324351202,"position":4,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.17.png?v=1718997714"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.17.png?v=1718997714","width":1524},{"alt":null,"id":34094324711650,"position":5,"preview_image":{"aspect_ratio":1. 227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.06.png?v=1718997714"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.06.png?v=1718997714","width":1524},{"alt":null,"id":34094324842722,"position":6,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.10.png?v=1718997715"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.10.png?v=1718997715","width":1524},{"alt":null,"id":34094324744418,"position":7,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.13.png?v=1718997714"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_2
0.21.13.png?v=1718997714","width":1524},{"alt":null,"id":34094324547810,"position":8,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.15.png?v=1718997714"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.15.png?v=1718997714","width":1524},{"alt":null,"id":34094324875490,"position":9,"preview_image":{"aspect_ratio":1.227,"height":1242,"width":1524,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.18.png?v=1718997715"},"aspect_ratio":1.227,"height":1242,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2024-06-21_at_20.21.18.png?v=1718997715","width":1524}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ePlease note, this price is for the Frame, fork and headset. Available for custom builds, ple ase get in touch for further information.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEnigma Bikes\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eEDGE stands proudly as a cornerstone of our high-performance gravel bike lineup, handcrafted from Gr9 3AL 2.5 DB titanium to offer unrivalled strength and durability for the ultimate.\u003c\/span\u003e\u003cspan\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cmeta charset=\"utf-8\"\u003e \u003cbutton class=\"accordion active\"\u003eFRAME SPECIFICATION\u003csvg class=\"icon icon-minus\" aria-hidden=\"true\"\u003e\u003cuse xlink:href=\"#icon-minus\"\u003e\u003c\/use\u003e\u003c\/svg\u003e\u003c\/button\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv class=\"panel\"\u003e\n\u003cdiv class=\"bike__tech-spec\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan\u003eFRAME MATERIAL\u003c\/span\u003e\u003cspan\u003eCustom butted, size specific, grade 9 3Al 2.5V CWSR Ti tube set\u003c\/span\u003e\n\u003c\/li\u003
e\n\u003cli\u003e\n\u003cspan\u003eFRAME FINISH\u003c\/span\u003e\u003cspan\u003eIncluded - hand brushed with satin bead logos\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHANGER\u003c\/span\u003e\u003cspan\u003eEnigma type 10\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eBOTTOM BRACKET\u003c\/span\u003e\u003cspan\u003eInvestment cast T47 68mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eAXLE DIMS.\u003c\/span\u003e\u003cspan\u003eThru axle | 12mm x 100mm front, 12 x 142mm rear\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADTUBE\u003c\/span\u003e\u003cspan\u003eCNC machined 44mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eCABLE ROUTING\u003c\/span\u003e\u003cspan\u003eInternal via custom entry ports\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eBRAKE MOUNT\u003c\/span\u003e\u003cspan\u003e160 front \/ 140 rear flat mount\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\ u003e\n\u003cspan\u003eSEAT TUBE\u003c\/span\u003e\u003cspan\u003eExternal 34.9mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eSEAT POST\u003c\/span\u003e\u003cspan\u003e31.6mm or 27.2mm with shim\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eFRONT DERAILLEUR\u003c\/span\u003e\u003cspan\u003e34.9mm band-on\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eHEADSET\u003c\/span\u003e\u003cspan\u003eIntegral ZS44 upper \/ EC44 lower (Chris King Inset 7\/8)\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003eTYRE SIZE\u003c\/span\u003e\u003cspan\u003eMax. 700c x 47mm w\/o guards\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!----\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {45610939089122 : "deny",45610939121890 : "deny",45610939154658 : "deny",45610939187426 : "deny",45610939220194 : "deny",45610939252962 : "deny",}; window._RestockRocketConfig.variants
InventoryQuantity = {45610939089122 : parseInt("11"),45610939121890 : parseInt("111"),45610939154658 : parseInt("11"),45610939187426 : parseInt("11"),45610939220194 : parseInt("11"),45610939252962 : parseInt("11"),}; window._RestockRocketConfig.variantsPreorderCount = {45610939089122 : parseInt(""),45610939121890 : parseInt(""),45610939154658 : parseInt(""),45610939187426 : parseInt(""),45610939220194 : parseInt(""),45610939252962 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {45610939089122 : null,45610939121890 : null,45610939154658 : null,45610939187426 : null,45610939220194 : null,45610939252962 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {45610939089122 : parseInt(""),45610939121890 : parseInt(""),45610939154658 : parseInt(""),45610939187426 : parseInt(""),45610939220194 : parseInt(""),45610939252962 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {45610939089122 : null,45610939121890 : null,4561093915 4658 : null,45610939187426 : null,45610939220194 : null,45610939252962 : null,}; window._RestockRocketConfig.variantsShippingText = {45610939089122 : "",45610939121890 : "",45610939154658 : "",45610939187426 : "",45610939220194 : "",45610939252962 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {45610939089122 : null,45610939121890 : null,45610939154658 : null,45610939187426 : null,45610939220194 : null,45610939252962 : null,}; window._RestockRocketConfig.selected_variant_id = 45610939089122; 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-52e0MTB Advanced Level Service (Full Suspension Mountain Bikes)-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 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 (!settings.translations) { // Translations enabled but no translation data in metafield // Metafield hasn't been backfilled yet - force refresh console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); return null; } // Translations object exists in metafield - cache is valid // If current locale isn't translated, applyTranslations will gracefully use default locale from base fields if (window._RestockRocketConfig.normalizedLocale && !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } // Don't return null - continue using cache even for untranslated locales } const updatedAt = new Date(settings.updated_at); if (isNaN(updatedAt.getTime())) { console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const age = Date.now() - updated At.getTime(); if (age < SETTINGS_CACHE_DURATION) { console.debug('STOQ - settings changed recently, skipping cache'); return null; } return settings; } catch (error) { console.debug('STOQ - Error checking settings cache:', error); return null; } } function createRestockRocketContainer() { const restockRocketContainer = document.createElement('div'); restockRocketContainer.id = 'restock-rocket'; document.body.appendChild(restockRocketContainer); } function createRestockRocketScript(scriptUrl) { const restockRocketScriptElement = document.createElement('script'); restockRocketScriptElement.setAttribute('defer', 'defer'); restockRocketScriptElement.src = scriptUrl; document.body.appendChild(restockRocketScriptElement); } createRestockRocketContainer() console.debug('STOQ - extension activated') function applyTranslations(settings) { try { // Skip translation logic entirely if multi-language is not enabled if (!settings || !settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); return settings; } const normalizedLocale = window._RestockRocketConfig.normalizedLocale; const translations = settings.translations; if (!normalizedLocale) { // No matching locale has translations; drop payload to save memory console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); delete settings.translations; return settings; } console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`); const translatedFields = translations[normalizedLocale]; if (translatedFields && typeof translatedFields === 'object') { Object.keys(translatedFields).forEach(function(key) { const£ value = translatedFields[key]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translations; return settings; } catch (e) { console.debug('STOQ - error applying translations:', e); return settings; } } // 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' }; 250 if (window.Shopify?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; } fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // If request failed and we have cached settings (even if expired), use them as fallback if (cachedSettings) { console.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cachedSettings); } else { console.error('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_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript( window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts 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(appLoadedEvent); } } 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

attemptCartCheck(attempt + 1), retryDelay); } else { console.debug('STOQ - API not loaded after max retries, skipping cart selling plan check'); } } attemptCartCheck(); }

    .restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;positi
  • on: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-direction: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{maAll aspects of the Advanced level servicergin-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:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:i
  • nherit;}.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-countdown-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-un its{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;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animatio
  • Dropper seatpost cable replaced (fluid replaced if hydraulic) and externals cleaned
  • Tubeless sealant replaced and inflated to the correct levels
  • Suspension stanchions cleaned and seals lubricated
  • Suspension set-up when collecting

We also offer suspension servicing for Rockshox and Fox, please get in touch to discuss the options.

ProjektRide Individual Part Fitting Price List (parts not included)

Service Description Price Service Description Price
Entry-level service £72 Disk brake bleed (per brake) From £20
Intermediate service £108 Tyre replacement From £10
Advanced service £220 Bottom bracket replacement From £20
MTB Advanced Level Service £250 Brake adjust (per brake) From £10
Wheel True From £10 Headset Replacement From £15 - £20
Spoke replacement & true From £15 - £20 Headset strip & grease From £15
Gear adjustment (front & rear, light clean) From £25 Chain replacement From £12.50
Brake cable fitting From £10 Chain & cassette replacement From £20
Brake cable fitting (internal) From £15 Mudguards fitted (front & rear) From £20
Gear cable fitting From £10 Wheel bearing replacement (each wheel) From £15
Gear cable fitting (internal) From £15 Pannier rack replacement From £12
Brake pad replacement From £10 Tubeless set up (each wheel) From £15
Brake pad replacement (disc & cartridge) From £10 Dropper post cable replacement / bleed From £18
Bar tape replacement From £15 Suspension Service From £70 - £130
Shimano Electrical diagnostic, updates and warranty From £40 Bosch Electrical diagnostic, updates and warranty From £40
Mahle Electrical diagnostic, updates and warranty From £40 Bottom bracket chase and Face From £50
Silca chain waxing service From 25 Gtechniq Ceramic Coating From £120