Aero Rage Track Rear Aero road rim on Halo Track SB hub Black - £0.00 GBP
Aero Rage Track Front Aero road rim on Halo Track SB Front hub 32H Black - £0.00 GBP
Aero Rage Track Rear Aero road rim on Halo FW-G Track SB hub 32H Fixed HG/Freewheel Black - Sold Out
Aero Rage Track Rear Aero road rim on Halo Track SB hub 32H Fixed/Fixed Black - £0.00 GBPAero Rage Track Rear Aero road rim on Halo Track SB hub 32H Fixed/Freewheel White - £0.00 GBP
Aero Rage Track Front Aero road rim on Halo Track SB Front hub 32H White - £0.00 GBPAero Rage Track Rear Aero road rim on Halo Track SB hub 32H Fixed/Fixed White - £0.00 GBP
window._RestockRocketConfig = window._RestockRocketConfig || {}
// Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us')
// This matches the backend's Mobility.normalize_locale behavior
// Returns empty string if locale is empty or invalid (matches original behavior)
function normalizeLocale(locale) {
if (!locale || locale.trim() === '') {
return '';
}
return locale.toString().toLowerCase().replace(/-/g, '_');
}
window._RestockRocketConfig.locale = 'en';
window._RestockRocketConfig.normalizedLocale = normalizeLocale('en');
window._RestockRocketConfig.shop = 'projektride.myshopify.com';
window._RestockRocketConfig.pageType = 'product';
window._RestockRocketConfig.liquidRenderedAt = 1773110274;window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom';
window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2025-12-28T14:44:23.508Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"disableDebugLoggingForNonPreorderItem":false},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too","show_button_on_collection":false,"sms_default_country":"us","sms_allowed_countries":[],"sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":null,"insert_button_after_selector_type":"afterend","storefront_button_position_type":"float-right","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"This item needs to be purchased separately. Please check out or clear your cart before adding this item.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":null,"push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":"","preorder_payment_insert_selector_type":"afterend","preorder_price_container_selector":"","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":"","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":false,"inline_form_selector":null,"inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":0,"market_setup_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":null,"preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","cache":true,"cached_at":"2026-01-08T16:12:13.364Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,43936142426338,43936142459106,43936152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,43936331661538,43936332349666,43936333103330,43936351224034,43936353714402,43936362889442,43936362922210,43936388153570,43936389333218,43936395526370,43936398508258,43936401522914,43936408568034,43936414400738,43936700727522,43936706101474,43936706134242,43936706167010,43936706199778,43936706232546,43936706265314,43938308587746,43938308653282,43938308718818,43938308751586,43938308784354,43938308817122,43938322612450,43938322645218,43938322677986,43981336051938,43981336084706,43981336117474,43981336150242,43981345587426,43981345620194,43981345652962,43981345685730,43981357580514,43981357613282,43981362462946,43981362495714,43981362528482,43981369016546,43981369049314,43981374914786,43981374947554,43981374980322,43981392773346,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,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-03-10T02:18:54Z","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":"2026-03-10T02:18:53Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-03-10T02:18:53Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}];(function() {
const cachedData = {"plans":[{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}],"disabled_plan_ids":[713813721471,713176482175],"cached_at":"2026-02-18T08:36:42Z"};
if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) {
// Find the maximum updated_at from all items in old array
const oldPlans = window._RestockRocketConfig.sellingPlans;
const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0
? oldPlans.reduce(function(max, plan) {
// Parse dates for proper comparison (handles mixed ISO formats)
if (plan.updated_at) {
const planDate = new Date(plan.updated_at);
const maxDate = max ? new Date(max) : null;
return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max;
}
return max;
}, '')
: null;
// Use cached if old array is empty/has no timestamps, or cached is newer
// Parse dates for comparison to handle format differences (+00:00 vs .000Z)
const cachedDate = new Date(cachedData.cached_at);
const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null;
const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate));
if (useCached) {
if (Array.isArray(cachedData.plans)) {
window._RestockRocketConfig.sellingPlans = cachedData.plans;
// Only use disabled_plan_ids when using cached plans
window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || [];
console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')');
}
} else {
// When using old format (stale cache), don't trust disabled_plan_ids
window._RestockRocketConfig.disabledSellingPlanIds = [];
console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')');
}
}
})();window._RestockRocketConfig.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":15399623786879,"title":"Hire - Trek Marlin Hardtail Mountain Bike","handle":"hire-trek-marlin-hardtail-mountain-bikes","description":"\u003cp data-end=\"193\" data-start=\"145\"\u003eMarlin 5 – Trail \u0026amp; Everyday Adventure Bike\u003c\/p\u003e\n\u003cp data-start=\"121\" data-end=\"385\"\u003e\u003cstrong\u003eIf you are planning on a longer hire for a bike packing trip, please consider the\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/projektride.co.uk\/products\/hire-brothers-big-bro\" rel=\"noopener\" target=\"_blank\"\u003eBrother Big Bro\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eas it is designed for longer trips that can handle additional weight on the bike!\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"512\" data-start=\"195\"\u003eThe Marlin 5 is the perfect blend of everyday practicality and off-road capability — ideal whether you’re cruising around Edinburgh, exploring forest tracks, or heading out for casual trail adventures. The Marlin 5 offers a stable, comfortable ride wherever you choose to go.\u003c\/p\u003e\n\u003cp data-end=\"851\" data-start=\"514\"\u003eBuilt around a trail-ready frame with a responsive suspension fork, it takes rough paths, canal routes, and light singletrack in stride. The reliable Shimano 9-speed CUES drivetrain keeps your shifting smooth. \u003c\/p\u003e\n\u003cp data-end=\"851\" data-start=\"514\"\u003eIf you’re looking for a versatile, rugged, and easy-to-ride bike for discovering more of Scotland — both on the tarmac and beyond it — the Marlin 5 is a fantastic choice for your next adventure.\u003c\/p\u003e","published_at":"2025-11-14T18:17:46+00:00","created_at":"2025-11-14T10:11:00+00:00","vendor":"Trek","type":"Bike Hire","tags":["izyrent","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":3500,"price_min":3500,"price_max":3500,"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":56398983725439,"title":"Extra Small (Red)","option1":"Extra Small (Red)","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":true,"featured_image":null,"available":true,"name":"Hire - Trek Marlin Hardtail Mountain Bike - Extra Small (Red)","public_title":"Extra Small (Red)","options":["Extra Small (Red)"],"price":3500,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":56398983758207,"title":"Medium (Blue)","option1":"Medium (Blue)","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":true,"featured_image":null,"available":true,"name":"Hire - Trek Marlin Hardtail Mountain Bike - Medium (Blue)","public_title":"Medium (Blue)","options":["Medium (Blue)"],"price":3500,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":56398983790975,"title":"Large (Blue)","option1":"Large (Blue)","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":true,"featured_image":null,"available":true,"name":"Hire - Trek Marlin Hardtail Mountain Bike - Large (Blue)","public_title":"Large (Blue)","options":["Large (Blue)"],"price":3500,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Genesis-Broadway.jpg?v=1763199939","\/\/projektride.co.uk\/cdn\/shop\/files\/DSC01888.jpg?v=1763199939","\/\/projektride.co.uk\/cdn\/shop\/files\/DSC01877.jpg?v=1763199939","\/\/projektride.co.uk\/cdn\/shop\/files\/DSC01889.jpg?v=1763199939"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Genesis-Broadway.jpg?v=1763199939","options":["Size"],"media":[{"alt":null,"id":68693392523647,"position":1,"preview_image":{"aspect_ratio":1.505,"height":2284,"width":3438,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Genesis-Broadway.jpg?v=1763199939"},"aspect_ratio":1.505,"height":2284,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Genesis-Broadway.jpg?v=1763199939","width":3438},{"alt":null,"id":68682022191487,"position":2,"preview_image":{"aspect_ratio":1.505,"height":3264,"width":4912,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DSC01888.jpg?v=1763199939"},"aspect_ratio":1.505,"height":3264,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DSC01888.jpg?v=1763199939","width":4912},{"alt":null,"id":68682024419711,"position":3,"preview_image":{"aspect_ratio":1.505,"height":3264,"width":4912,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DSC01877.jpg?v=1763199939"},"aspect_ratio":1.505,"height":3264,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DSC01877.jpg?v=1763199939","width":4912},{"alt":null,"id":68682027663743,"position":4,"preview_image":{"aspect_ratio":1.505,"height":3264,"width":4912,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DSC01889.jpg?v=1763199939"},"aspect_ratio":1.505,"height":3264,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/DSC01889.jpg?v=1763199939","width":4912}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp data-end=\"193\" data-start=\"145\"\u003eMarlin 5 – Trail \u0026amp; Everyday Adventure Bike\u003c\/p\u003e\n\u003cp data-start=\"121\" data-end=\"385\"\u003e\u003cstrong\u003eIf you are planning on a longer hire for a bike packing trip, please consider the\u003cspan\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/projektride.co.uk\/products\/hire-brothers-big-bro\" rel=\"noopener\" target=\"_blank\"\u003eBrother Big Bro\u003c\/a\u003e\u003cspan\u003e \u003c\/span\u003eas it is designed for longer trips that can handle additional weight on the bike!\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-end=\"512\" data-start=\"195\"\u003eThe Marlin 5 is the perfect blend of everyday practicality and off-road capability — ideal whether you’re cruising around Edinburgh, exploring forest tracks, or heading out for casual trail adventures. The Marlin 5 offers a stable, comfortable ride wherever you choose to go.\u003c\/p\u003e\n\u003cp data-end=\"851\" data-start=\"514\"\u003eBuilt around a trail-ready frame with a responsive suspension fork, it takes rough paths, canal routes, and light singletrack in stride. The reliable Shimano 9-speed CUES drivetrain keeps your shifting smooth. \u003c\/p\u003e\n\u003cp data-end=\"851\" data-start=\"514\"\u003eIf you’re looking for a versatile, rugged, and easy-to-ride bike for discovering more of Scotland — both on the tarmac and beyond it — the Marlin 5 is a fantastic choice for your next adventure.\u003c\/p\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {56398983725439 : "continue",56398983758207 : "continue",56398983790975 : "continue",};
window._RestockRocketConfig.variantsInventoryQuantity = {56398983725439 : parseInt("0"),56398983758207 : parseInt("0"),56398983790975 : parseInt("0"),};
window._RestockRocketConfig.variantsPreorderCount = {56398983725439 : parseInt(""),56398983758207 : parseInt(""),56398983790975 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {56398983725439 : null,56398983758207 : null,56398983790975 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {56398983725439 : parseInt(""),56398983758207 : parseInt(""),56398983790975 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {56398983725439 : null,56398983758207 : null,56398983790975 : null,};
window._RestockRocketConfig.variantsShippingText = {56398983725439 : "",56398983758207 : "",56398983790975 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {56398983725439 : null,56398983758207 : null,56398983790975 : null,};
window._RestockRocketConfig.selected_variant_id = 56398983725439;
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/019cd40b-736e-74a5-adbe-431365bfd910/restockrocket-1-465/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019cd40b-736e-74a5-adbe-431365bfd910/restockrocket-1-465/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
window._RestockRocketConfig.host = 'https://app.restockrocket.io'
const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds
const LIQUID_CACHE_MAX_AGE = 2 * 60 * 60; // 2 hours in seconds
// Calculate Liquid cache freshness once at initialization
const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt;
// Validate timestamp and calculate cache age
if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) {
console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh');
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else {
const now = Math.floor(Date.now() / 1000); // Current time in seconds
const liquidCacheAge = now - liquidRenderedAt; // Age in seconds
// Handle client clock ahead of server
if (liquidCacheAge
0) {
console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else if (liquidCacheAge
= LIQUID_CACHE_MAX_AGE) {
console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else {
console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`);
window._RestockRocketConfig.isLiquidCacheFresh = false;
}
}
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data structure');
return null;
}
if (!settings.cache) {
console.debug('STOQ - settings caching disabled');
return null;
}
// Check if translations are enabled but missing from cache
// This handles the backfill period where DB has translations but metafield doesn't
if (settings.multi_language_enabled) {
if (!settings.translations) {
// Translations enabled but no Enve];
if (value !== null && value !== undefined && value !== '') {
settings[key] = value;
}
});
} else {
console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
}
delete settings.translations;
return settings;
} catch (e) {
console.debug('STOQ - error applying translations:', e);
return settings;
}
}
// Setup event listener for cart selling plan updates
// This must be called before any scripts are loaded to avoid race conditions
function setupCartSellingPlanUpdater(settings) {
// Setup listener regardless - updateCartSellingPlans has its own guards
// This ensures cleanup happens even when preorders are disabled globally
// Listen for stoq:inventory-data-loaded event dispatched by api.js
window.addEventListener('stoq:inventory-data-loaded', function(event) {
console.debug('STOQ - Inventory data loaded, updating cart selling plans');
if (window._RestockRocket
hopify.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?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(cacCockpit
Complete Brakese\u003cstrong\u003eNote:\u003c\/strong\u003e\u003cspan\u003e \u003c\/span\u003eGeneral Fixed sprocket check:\u003cbr\u003efor correct fixed use, the fixed sprocket should NEVER move on the hub when pedal force is applied in both directions.\u003cbr\u003ei.e. if the sprocket moves, then something is wrong.\u003cbr\u003eContinued use with a fixed cog that moves will result in damage to the hub.\u003c\/p\u003e\n\u003ch4\u003eSpecifications\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\"\u003eExternal Rim Width: \u003c\/span\u003e\u003cspan class=\"ui-list-info\"\u003e19.5mm\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list_item\"\u003e\n\u003cspan class=\"ui-list-title\"\u003eSpokes: \u003c\/span\u003e\u003cspan class=\"ui-list-info\"\u003eED coated Black plain gauge stainless spokes\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list_item\"\u003e\n\u003cspan class=\"ui-list-title\"\u003eNipples: \
lass=\"ui-list-info\"\u003e32H\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list_item\"\u003e\n\u003cspan class=\"ui-list-title\"\u003eRecommended Tyre size: \u003c\/span\u003e\u003cspan class=\"ui-list-info\"\u003e23-30C\u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli class=\"ui-list_item\"\u003e\n\u003cspan class=\"ui-list-title\"\u003eTubeless: \u003c\/span\u003e\u003cspan class=\"ui-list-info\"\u003eNo\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"col-md-4\"\u003e\n\u003cdiv class=\"logo-brand\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e"}
Brake Pads
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "Halo Aerorage Track 700c Wheels",
"url": "https:\/\/projektride.co.uk\/products\/halo-aerorage-track-700c-wheels","image": [
"https:\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-03-26at14.24.55_1170x.png?v=1679837100"
],"description": "\n\nTested by the couriers and track riders of the world, our Track Series has seen some of the hardest testing there is to offer. Rivals, side streets and traffic are no match for our Track Series.\nOur Aerorage wheels cut through the streets comfortably and offer a CNC brake surface for consistent braking performance.\nBuilt with an aerodynamic 14mm internally, 19.5mm external, width rim the Aerorage wheel is proven on the streets of London, Berlin and Paris to deliver durability and performance time after time.\nThe Aerorage wheelset spins on our legendary TK Hubs with Japanese sealed bearings with various rear drive options and lightweight drilled axles.\n\nNote: General Fixed sprocket check:for correct fixed use, the fixed sprocket should NEVER move on the hub when pedal force is applied in both directions.i.e. if the sprocket moves, then something is wrong.Continued use with a fixed cog that moves will result in damage to the hub.\nSpecifications\n\n\nExternal Rim Width: 19.5mm\n\n\nSpokes: ED coated Black plain gauge stainless spokes\n\n\nNipples: ED coated black brass nipples\n\n\nRim Depth: 24.5mm\n\n\nInternal Width: 14mm\n\n\nFront Hub Spacing: 100mm\n\n\nRear spacing: 120mm\n\n\nDrillings: 32H\n\n\nRecommended Tyre size: 23-30C\n\n\nTubeless: No\n\n\n\n\n\n","sku": "WHHAATKD","brand": {
"@type": "Thing",
"name": "halo"
},"gtin8": "","offers": [{
"@type" : "Offer","sku": "WHHAATKD","availability" : "http://schema.org/InStock",
"price" : 0.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/halo-aerorage-track-700c-wheels?variant=43981565395170"
},
{
"@type" : "Offer","sku": "WHHAATKF","availability" : "http://schema.org/InStock",
"price" : 0.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/halo-aerorage-track-700c-wheels?variant=43981565427938"
},
{
"@type" : "Offer","sku": "WHHAATKQ","availability" : "http://schema.org/InStock",
"price" : 0.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/halo-aerorage-track-700c-wheels?variant=43981565460706"
},
{
"@type" : "Offer","sku": "WHHAATKR","availability" : "http://schema.org/InStock",
"price" : 0.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/halo-aerorage-track-700c-wheels?variant=43981565493474"
},
{
"@type" : "Offer","sku": "WHHAATWD","availability" : "http://schema.org/InStock",
"price" : 0.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/halo-aerorage-track-700c-wheels?variant=43981565526242"
},
{
"@type" : "Offer","sku": "WHHAATWF","availability" : "http://schema.org/InStock",
"price" : 0.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/halo-aerorage-track-700c-wheels?variant=43981565559010"
},
{
"@type" : "Offer","sku": "WHHAATWR","availability" : "http://schema.org/InStock",
"price" : 0.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/halo-aerorage-track-700c-wheels?variant=43981565591778"
}
]
}