Djibouti (DJFFdj)
Header Image
Egypt (EGPج.م)
Eritrea (GBP£)
Ethiopia (ETBBr)
Faroe Islands (DKKkr.)

Genesis Croix De Fer 30 (Drop Handlebar Gravel Bike)

French Southern Territories (EUR€)

Our Genesis Croix de Fer Gravel bikes are the perfect hire option if you’re planning to explore outer Edinburgh for a day or two, or heading into the Highlands to discover Scotland’s incredible gravel routes.

Each Croix de Fer comes equipped with Shimano’s latest gravel groupset, a comfortable and compliant steel frame ideal for long days in the saddle, technical terrain, and fully loaded bikepacking adventures. Hydraulic disc brakes ensure confident stopping power no matter where your ride takes you.Gabon (XOFFr)

We also include a full range of accessories free of charge with every hire - please use the drop-down menu below to select what equipment and accessories you require to ensure you’ll have everything you need to get out and explore.

Take some inspiration from the routes below and check out a few of the amazing places our hire bikes have already been!

Every hire includes a puncture repair kit, spare inner tube, tyre levers, and a multi-tool — so you’re fully equipped for whatever the ride brings.

The bike pictured is the exact same make and model that you will ride!Gambia (GMDD)

Georgia (GBP£)
Germany (EUR€) Isle of Man (GBP£)

Hire Genesis Croix de Fer 30 (Drop Handlebars)Jersey (GBP£)

Want to book more than one of this bike?Kenya (KESKSh)

Each rental bike has its own booking calendar, so quantities cannot be increased in the basket.

Please add multiple bikes separately.Kosovo (EUR€)

Latvia (EUR€)
Morocco (MADد.م.)

 

Please get in touch if the option you require is out of stock for the time period you require. We try and keep more stock for walk-ins so we can add more stock to the website for booking if necessary. 

Mozambique (GBP£)


Our Croix de Fer Gravel bikes are the perfect hire option — whether you’re planning to explore outer Edinburgh for a day or two, or heading into the Highlands to discover Scotland’s incredible gravel routes.

Each Croix de Fer comes equipped with Shimano’s latest gravel groupset, a comfortable and compliant steel frame ideal for long days in the saddle, technical terrain, and fully loaded bikepacking adventures. Hydraulic disc brakes ensure confident stopping power no matter where your ride takes you.

Namibia (GBP£)

We also include a full range of accessories here at ProjektRide Bike hire Edinburgh free of charge with every hire, so you’ll have everything you need to get out and explore. Take some inspiration from the routes below and check out a few of the amazing places our hire bikes have already been! 

bike_490f99ba-a097-4bd4-9ba6-e1e4b7c61178.png


equipment.png



pay.png

confirmation.png

collection.png

ride_confident.png

Frequently Asked Questions

  • We will require your full name, address and any suitable form of identification such as a passport or a driver's license.

    This will be collected in store when you come to collect the bike.

  • Yes - you can come in store to hire a bike and can even pay with cash too! However, it would be best to Closecall in advance to ensure we have a suitable bike for you to rent.

  • window._RestockRocketConfig = window._RestockRocketConfig || {} window._RestockRocket = window._RestockRocket || {} window._Stoq = window._RestockRocket window._StoqConfig = window._RestockRocketConfig try { window._RestockRocket.inlineRanAt = performance.now(); } catch (e) { } 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 = 1788581740;window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom'; window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.languageIsoCode = 'en';window._RestockRocketConfig.cartInventoryQuantity = {}; if (!window._RestockRocketConfig.cartToken) { try { const m = document.cookie.match(/(?:^|;\s*)cart=([^;]+)/); if (m && m[1]) window._RestockRocketConfig.cartToken = decodeURIComponent(m[1]); } catch (e) { } } window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2026-08-12T16:44:57.298Z","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_custom_domain_enabled":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":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","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":".product-grid-item__info","insert_button_after_selector_index":".product-grid-item__info","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":".product-grid-item__info","show_button_on_page":false,"insert_button_after_selector_search":".grid","show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":".product-grid-item__title","index_link_selector":".product-grid-item__title","page_link_selector":".product-grid-item__title","search_link_selector":".product-grid-item__title","collection_check_link_visibility":true,"collection_buttons_container":".grid","index_buttons_container":".carousel.grid--mobile .flickity-viewport","page_buttons_container":".grid","search_buttons_container":".grid","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":"","preorder_add_to_cart_button_selector":".product__submit__holder .product__submit__buttons button","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":".product__media__holder","preorder_index_badge_selector":".product__media__holder","preorder_page_badge_selector":".product__media__holder","preorder_search_badge_selector":".product__media__holder","preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":".product__form .btn","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":"","preorder_payment_insert_selector_type":"afterend","preorder_price_container_selector":".product__price--regular","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":".product__price--regular","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":false,"inline_form_selector":".product__form","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","configure_notify_me_enabled":false,"restock_note_insert_selector":null,"restock_note_insert_selector_type":"afterend","restock_note_background_color":"#f3f4f6","restock_note_text_color":"#202223","restock_note_border_radius":4,"preorder_modal_continue_button_text":"Continue","preorder_modal_cancel_button_text":"Cancel","meta_pixel_enabled":false,"meta_pixel_id":null,"cache":true,"cached_at":"2026-08-12T16:44:57.369Z","multi_language_enabled":false,"translation_locale":"en","disable_refresh_on_stale_liquid":false}; window._RestockRocketConfig.metafieldNamespace = 'restockrocket_production';window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42140096102626,42167799447778,43590980075746,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,43936142426338,43936142459106,43936152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,43936331661538,43936332349666,43936351224034,43936353714402,43936362889442,43936362922210,43936388153570,43936389333218,43936395526370,43936398508258,43936408568034,43936414400738,43936700727522,43936706101474,43936706134242,43936706167010,43936706199778,43936706232546,43936706265314,43938298233058,43938298265826,43938298298594,43938298331362,43938298364130,43938298396898,43938298429666,43938298462434,43938299805922,43938299838690,43938299871458,43938299904226,43938299936994,43938299969762,43938300002530,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,43981382320354,43981392773346,43981392806114,43981392838882,43981392871650,43981392937186,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140279791842,44140279824610,44140279857378,4414027

    9890146,44140279922914,44140292047074,44140292079842,44140292112610,44140293685474,44140302500066,44140302532834,44140302565602,44140302598370,44140302631138,44140302827746,44140302893282,44140302926050,44140315050210,44140317016290,44140321636578,44140335792354,44140335825122,44140335857890,44140339953890,44140339986658,44140340150498,44140340248802,44140340281570,44140340543714,44140340707554,44140340740322,44140340773090,44140345065698,44140352438498,44140397756642,44140404441314,44140404474082,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55066403209599,55066403242367,55569712382335,55569712415103,55569712447871,55569712480639,55570017616255,55570550194559,55604008976767,55638316908927,55638316941695,55638316974463,56220814967167,56220814999935,56220815032We offer free quipment hire with a valid bike hire. You can see our range of equipment for hire 703,56270279606655,56270279639423,56270279672191,56399322251647,58086872056191,58086872088959,58086941819263,58145667154303,58156649972095,58205080093055,58205080125823],"updated_at":"2026-09-05T04:06:45Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null,"bulk_operation":true};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-09-05T03:51:26Z","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-09-05T03:51:26Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642"; window._RestockRocketConfig.sellingPlans = [];(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_enabled":true,"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_shiherepping_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":"Estimated to ship within 2 months","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,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":true,"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,"acknowledgement_line_item_property_enabled":false,"acknowledgement_line_item_property_text":"Preorder Terms Accepted","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,"countdown_timer_days_label":"Days","countdown_timer_hours_label":"Hours","countdown_timer_minutes_label":"Mins","countdown_timer_seconds_label":"Secs","schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2026-08-31T15:28:37.678Z","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,"batches_enabled":false,"preorder_batches":[],"batch_status_past_text":"Sold out","batch_status_live_text":"Live","batch_status_upcoming_text":"Coming soon"}],"disabled_plan_ids":[714631872895,713813721471,713176482175],"cached_at":"2026-08-31T15:28:38Z"}; if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) { window._RestockRocketConfig.readFlags = cachedData.read_flags || {}; const oldPlans = window._RestockRocketConfig.sellingPlans; const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0 ? oldPlans.reduce(function(max, plan) { 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; 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; window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || []; console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')');
    } } else { window._RestockRocketConfig.disabledSellingPlanIds = []; console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')'); } } })();window._RestockRocketConfig.enabledNotifyMeVariantIds = [];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};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.product = {"id":15815987888511,"title":"Hire Cube Editor Pro Ebike","handle":"hire-cube-editor-pro-ebike","description":"\u003cp\u003eOur Cube Editor Hybrid Pro 400X FE electric bikes are the perfect hire option if you're looking to explore Edinburgh with ease, take on longer rides, or enjoy the surrounding countryside without worrying about steep climbs.\u003c\/p\u003e\n\u003cp\u003ePowered by the lightweight Bosch SX Performance Line motor and a 400Wh Bosch CompactTube battery, the Editor Hybrid delivers smooth, natural assistance that makes every ride more enjoyable. Its lightweight aluminium frame, comfortable upright riding position, and low-maintenance components make it ideal for everything from city streets to scenic cycle paths and all-day adventures.\u003c\/p\u003e\n\u003cp\u003eWe also include a full range of accessories free of charge with every hire. Simply use the drop-down menu below to select the equipment and accessories you need, so you'll have everything required for a great day out on two wheels.\u003c\/p\u003e\n\u003cp\u003eTake so
  • me inspiration from the routes below and discover some of the fantastic places you can explore on one of our hire bikes!\u003c\/p\u003e\n\u003cp\u003eEvery hire includes a puncture repair kit, spare inner tube, tyre levers, and a multi-tool, so you're prepared for any unexpected mechanical issues during your ride.\u003c\/p\u003e\n\u003cp\u003eThe bike pictured is the exact same make and model that you will be riding.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003ePLEASE NOTE:\u003c\/p\u003e\n\u003cp\u003eThe size Small\/Medium frameset is a Midstep frame design, and the Medium\/Large frameset is a stepover frame design. \u003c\/p\u003e\n\u003cp\u003eIf you love the bike and are interested in purchasing one, we will remove the cost of a day's hire from the sale of the bike!\u003c\/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eAssist Mode\u003c\/th\u003e\n\u003cth align=\"right\"\u003eEstimated Range\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbod y\u003e\n\u003ctr\u003e\n\u003ctd\u003eEco\u003c\/td\u003e\n\u003ctd align=\"right\"\u003e\n\u003cstrong\u003e80–120 km\u003c\/strong\u003e (50–75 miles)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTour+\u003c\/td\u003e\n\u003ctd align=\"right\"\u003e\n\u003cstrong\u003e60–90 km\u003c\/strong\u003e (37–56 miles)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSport\u003c\/td\u003e\n\u003ctd align=\"right\"\u003e\n\u003cstrong\u003e40–70 km\u003c\/strong\u003e (25–43 miles)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTurbo\u003c\/td\u003e\n\u003ctd align=\"right\"\u003e\n\u003cstrong\u003e30–50 km\u003c\/strong\u003e (19–31 miles)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e","published_at":"2026-07-31T10:10:31+01:00","created_at":"2026-07-31T10:10:29+01:00","vendor":"CUBE","type":"Bike Hire","tags":["BIKE_HIRE_OC","izyrent","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":6l,"id":72004207575423,"position":2,"preview_image":{"aspect_ratio":1.505,"height":3264,"width":4912,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/23.png?v=1785494375"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/22.png?v=1785494375","\/\/projektride.co.uk\/cdn\/shop\/files\/23.png?v=1785494375","\/\/projektride.co.uk\/cdn\/shop\/files\/9B8EDC2F-DDD2-421D-B335-88E702AA20B9_e942eab1-87ca-4694-bdcb-df3cd909d87c.jpg?v=1785494909","\/\/projektride.co.uk\/cdn\/shop\/files\/0FE8A315-31E9-41B3-8B9A-6B65BB1C7B44_79da36bd-6af8-46b4-930f-9dfd3ea9b5e0.jpg?v=1785494911","\/\/projektride.co.uk\/cdn\/shop\/files\/4287F385-87B0-4266-8F9F-5076CB827210_3f3a26d6-9303-4dc6-ab75-cacb3c56f982.jpg?v=1785494910","\/\/projektride.co.uk\/cdn\/shop\/files\/51F4E062-BADD-4FBF-A8CA-8F87F8E659C7_a10023de-cec6-4419-b1e4-9e34851a1107.jpg?v=1785494910","\/\/projektride.co.uk\/cdn\/shop\/files\/055FC27D-0DC4-4E3E-95B7-E1 F46461B0A7_922b09db-2691-46cc-a94d-e2e692ee6240.jpg?v=1785494910"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/22.png?v=1785494375","options":["Size"],"media":[{"alt":null,"id":72004207542655,"position":1,"preview_image":{"aspect_ratio":1.505,"height":3264,"width":4912,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/22.png?v=1785494375"},"aspect_ratio":1.505,"height":3264,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/22.png?v=1785494375","width":4912},{"alt":null,"id":72004207575423,"position":2,"preview_image":{"aspect_ratio":1.505,"height":3264,"width":4912,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/23.png?v=1785494375"},"aspect_ratio":1.505,"height":3264,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/23.png?v=1785494375","width":4912},{"alt":null,"id":72004257644927,"position":3,"preview_image":{"aspect_ratio":1.505,"height":3264,"width":4912,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/9B8EDC2F-DDD2-421D-B335-88E702AA20B9_e942eab1-87ca-46
    94-bdcb-df3cd909d87c.jpg?v=1785494909"},"aspect_ratio":1.505,"height":3264,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/9B8EDC2F-DDD2-421D-B335-88E702AA20B9_e942eab1-87ca-4694-bdcb-df3cd909d87c.jpg?v=1785494909","width":4912},{"alt":null,"id":72004257677695,"position":4,"preview_image":{"aspect_ratio":1.505,"height":3264,"width":4912,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/0FE8A315-31E9-41B3-8B9A-6B65BB1C7B44_79da36bd-6af8-46b4-930f-9dfd3ea9b5e0.jpg?v=1785494911"},"aspect_ratio":1.505,"height":3264,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/0FE8A315-31E9-41B3-8B9A-6B65BB1C7B44_79da36bd-6af8-46b4-930f-9dfd3ea9b5e0.jpg?v=1785494911","width":4912},{"alt":null,"id":72004257710463,"position":5,"preview_image":{"aspect_ratio":1.505,"height":3264,"width":4912,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/4287F385-87B0-4266-8F9F-5076CB827210_3f3a26d6-9303-4dc6-ab75-cacb3c56f982.jpg?v=1785494910"},"aspect_ratio":1.505,"height":3264,"media_type":"image","src": "\/\/projektride.co.uk\/cdn\/shop\/files\/4287F385-87B0-4266-8F9F-5076CB827210_3f3a26d6-9303-4dc6-ab75-cacb3c56f982.jpg?v=1785494910","width":4912},{"alt":null,"id":72004257743231,"position":6,"preview_image":{"aspect_ratio":1.505,"height":3264,"width":4912,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/51F4E062-BADD-4FBF-A8CA-8F87F8E659C7_a10023de-cec6-4419-b1e4-9e34851a1107.jpg?v=1785494910"},"aspect_ratio":1.505,"height":3264,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/51F4E062-BADD-4FBF-A8CA-8F87F8E659C7_a10023de-cec6-4419-b1e4-9e34851a1107.jpg?v=1785494910","width":4912},{"alt":null,"id":72004257775999,"position":7,"preview_image":{"aspect_ratio":1.505,"height":3264,"width":4912,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/055FC27D-0DC4-4E3E-95B7-E1F46461B0A7_922b09db-2691-46cc-a94d-e2e692ee6240.jpg?v=1785494910"},"aspect_ratio":1.505,"height":3264,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/055FC27D-0DC4-4E3E-95B7-E1F46461B0A7_922b09db-2691-46cc-a94d

    -e2e692ee6240.jpg?v=1785494910","width":4912}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eOur Cube Editor Hybrid Pro 400X FE electric bikes are the perfect hire option if you're looking to explore Edinburgh with ease, take on longer rides, or enjoy the surrounding countryside without worrying about steep climbs.\u003c\/p\u003e\n\u003cp\u003ePowered by the lightweight Bosch SX Performance Line motor and a 400Wh Bosch CompactTube battery, the Editor Hybrid delivers smooth, natural assistance that makes every ride more enjoyable. Its lightweight aluminium frame, comfortable upright riding position, and low-maintenance components make it ideal for everything from city streets to scenic cycle paths and all-day adventures.\u003c\/p\u003e\n\u003cp\u003eWe also include a full range of accessories free of charge with every hire. Simply use the drop-down menu below to select the equipment and accessories you need, so you'll have everything required for a great day out on two wheels.\We like to keep things simple here at ProjektRide, we don't take any form of security deposit.u003c\/p\u003e\n\u003cp\u003eTake some inspiration from the routes below and discover some of the fantastic places you can explore on one of our hire bikes!\u003c\/p\u003e\n\u003cp\u003eEvery hire includes a puncture repair kit, spare inner tube, tyre levers, and a multi-tool, so you're prepared for any unexpected mechanical issues during your ride.\u003c\/p\u003e\n\u003cp\u003eThe bike pictured is the exact same make and model that you will be riding.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003ePLEASE NOTE:\u003c\/p\u003e\n\u003cp\u003eThe size Small\/Medium frameset is a Midstep frame design, and the Medium\/Large frameset is a stepover frame design. \u003c\/p\u003e\n\u003cp\u003eIf you love the bike and are interested in purchasing one, we will remove the cost of a day's hire from the sale of the bike!\u003c\/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eAssist Mode\u003c\/th\u003e\n\u003cth align=\"right\"\u003eEstimated Range\u003c\/th\u003e\n\u003c\/tr\u0

    03e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eEco\u003c\/td\u003e\n\u003ctd align=\"right\"\u003e\n\u003cstrong\u003e80–120 km\u003c\/strong\u003e (50–75 miles)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTour+\u003c\/td\u003e\n\u003ctd align=\"right\"\u003e\n\u003cstrong\u003e60–90 km\u003c\/strong\u003e (37–56 miles)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSport\u003c\/td\u003e\n\u003ctd align=\"right\"\u003e\n\u003cstrong\u003e40–70 km\u003c\/strong\u003e (25–43 miles)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTurbo\u003c\/td\u003e\n\u003ctd align=\"right\"\u003e\n\u003cstrong\u003e30–50 km\u003c\/strong\u003e (19–31 miles)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e"};window._RestockRocketConfig.variantsInventoryPolicy = {58086872056191 : "continue",58086872088959 : "continue",}; window._RestockRocketConfig.variantsInventoryQuantity = {58086872056191 : parseIf you happen to damage the bike, our insurance will cover it fully! We do ask for a valid passport document upon collection.Int("0"),58086872088959 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {58086872056191 : parseInt(""),58086872088959 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {58086872056191 : null,58086872088959 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {58086872056191 : parseInt(""),58086872088959 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {58086872056191 : null,58086872088959 : null,}; window._RestockRocketConfig.variantsShippingText = {58086872056191 : "",58086872088959 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {58086872056191 : null,58086872088959 : null,};window._RestockRocketConfig.selected_variant_id = 58086872056191; window._RestockRocketConfig.selected_variant_available = (window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }) || {}).available; try {

    var _sqCfg = window._RestockRocketConfig; var _sqPlanEnabled = Array.isArray(_sqCfg.sellingPlans) && _sqCfg.sellingPlans.some(function (p) { return p && p.enabled; }); var _sqPreCount = ((_sqCfg.cachedPreorderVariantIds && _sqCfg.cachedPreorderVariantIds.preorder_variant_ids) || []).length; _sqCfg.preordersConfigured = !!(_sqPlanEnabled && _sqPreCount); } catch (e) { } try { var _sqc = window._RestockRocketConfig; var _sqOn = !!(_sqc.cachedSettings && _sqc.cachedSettings.block_accelerated_checkout); var _sqPre = (_sqc.cachedPreorderVariantIds && _sqc.cachedPreorderVariantIds.preorder_variant_ids) || []; var _sqArm = false; if (_sqOn && _sqc.preordersConfigured) { if (_sqc.pageType === 'product' && _sqc.product && _sqc.product.variants) { _sqArm = _sqc.product.variants.some(function (v) { return _sqPre.indexOf(Number(v.id)) !== -1; }); } else { _sqArm = (_sqc.integrations || []).some(function (i) { return i && i.type = == 'featured_product' && i.enabled && Array.isArray(i.page_types) && i.page_types.indexOf(_sqc.pageType) !== -1; }); } } if (_sqArm && document.documentElement) { _sqc.acceleratedGateArmed = true; document.documentElement.classList.add('stoq-buy-now-pending'); setTimeout(function () { document.documentElement.classList.remove('stoq-buy-now-pending'); }, 6000); } } catch (e) { } window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/01a06666-804b-764e-84be-c6136c33d807/restockrocket-1-581/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/01a06666-804b-764e-84be-c6136c33d807/restockrocket-1-581/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptUrlProductBis = 'https://cdn.shopify.com/extensions/01a06666-804b-764e-84be-c6136c33d807/restockrocket-1-581/assets/restockrocket-product-bis.js' window._RestockRocketConfig.sc
    riptUrlCollectionBis = 'https://cdn.shopify.com/extensions/01a06666-804b-764e-84be-c6136c33d807/restockrocket-1-581/assets/restockrocket-collection-bis.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = (window._RestockRocketConfig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io' try { const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/); window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || ''; } catch (e) { window._RestockRocketConfig.appVersion = ''; } const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; const LIQUID_CACHE_MAX_AGE = 15 * 60; const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt; if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt) ) { console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); window._RestockRocketConfig.isLiquidCacheFresh = true; window._RestockRocketConfig.liquidCacheAge = null; } else { const now = Math.floor(Date.now() / 1000); const liquidCacheAge = now - liquidRenderedAt; window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCacheAge); 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 & !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } } 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 <
    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') try { const _stoqInitConfig = window._RestockRocketConfig; const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqI nitConfig.product.variants)) ? _stoqInitConfig.product.variants.map(function(v) { return v.id }) : []; const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id; var _stoqPageSeq = 0; try { _stoqPageSeq = (parseInt(window.sessionStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1; window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq)); } catch (e) { } Shopify?.analytics?.publish?.('stoq_initialized', { cart_token: _stoqInitConfig.cartToken || '', page_url: window.location.href, page_type: _stoqInitConfig.pageType || '', shop_domain: _stoqInitConfig.shop || '', market_id: _stoqInitConfig.marketId || '', country_code: _stoqInitConfig.countryIsoCode || '', detected_variant_ids: _stoqDetectedVariantIds, selected_variant_id: _stoqSelectedVariantId || '', page_load_seq: _stoqPageSeq, liquid_rendered_at: _stoqInitConfig.liquidRenderedAt || 0, app_version: _stoqInitConfig.appVersion || '',

    liquid_cache_age: _stoqInitConfig.liquidCacheAge, inventory_policy: (_stoqInitConfig.variantsInventoryPolicy || {})[_stoqSelectedVariantId] || '', inventory_quantity: (_stoqInitConfig.variantsInventoryQuantity || {})[_stoqSelectedVariantId], }); } catch (e) { console.debug('STOQ - stoq_initialized publish failed:', e); } try { var _sqTrack = window._RestockRocketConfig; if (_sqTrack.preordersConfigured) { document.addEventListener('click', function (e) { try { var t = e.target; if (!t || !t.closest) return; var host = t.closest('.shopify-payment-button, shopify-payment-terms'); if (!host) return; var channel = host.matches && host.matches('shopify-payment-terms') ? 'shop_pay_installments' : 'buy_now'; var form = host.closest('form'); var vidEl = form && form.querySelector('[name="id"]'); var variantId = (vidEl && vidEl.value) || _sqTrack.selected_variant_id || ''; If you are looking for a custom bike for your tour, var _sqVidNum = Number(variantId); var _sqPlan = null; var _sqPlans = Array.isArray(_sqTrack.sellingPlans) ? _sqTrack.sellingPlans : []; var _sqMktId = Number(_sqTrack.marketId); var _sqForVariant = function (pl) { return pl && pl.enabled && Array.isArray(pl.variant_ids) && pl.variant_ids.indexOf(_sqVidNum) !== -1; }; _sqPlans.forEach(function (pl) { if (!_sqPlan && _sqForVariant(pl) && pl.markets_enabled && Array.isArray(pl.shopify_market_ids) && pl.shopify_market_ids.indexOf(_sqMktId) !== -1) { _sqPlan = pl; } }); if (!_sqPlan) { _sqPlans.forEach(function (pl) { if (!_sqPlan && _sqForVariant(pl) && !pl.markets_enabled) { _sqPlan = pl; } }); } Shopify?.analytics?.publish?.('stoq_accelerated_checkout_clicked', { variant_id: variantId, product_id: (_sqTrack.product && _sqTrack.product.id) || '', channel: channel, market_id: _sqTrack.marketId || '', country_code: _sqTrack.countryIsoCode || '', page_type: _sqTrack.pageType || '', cart_token: _sqTrack.cartToken || '', page_url: (window.location && window.location.href) || '', properties: { is_preorder_variant: (function () { var vid = Number(variantId); var has = function (a) { return Array.isArray(a) && a.indexOf(vid) !== -1; }; return has(_sqTrack.preorderVariantIds) || has(_sqTrack.cachedPreorderVariantIds && _sqTrack.cachedPreorderVariantIds.preorder_variant_ids); })(), in_enabled_plan: !!_sqPlan, is_instock_variant: (function () { var has = function (a) { return Array.isArray(a) && a.indexOf(_sqVidNum) !== -1; }; return has(_sqTrack.inStockVariantIds) || hplease get in touchas(_sqTrack.cachedInStockVariantIds && _sqTrack.cachedInStockVariantIds.in_stock_variant_ids); })(), enrolled_plan_id: (_sqPlan && (_sqPlan.shopify_selling_plan_id || _sqPlan.shopify_selling_plan_group_id)) || '', enrolled_plan_provider: (_sqPlan && _sqPlan.inventory_provider) || '', block_enabled: !!(_sqTrack.cachedSettings && _sqTrack.cachedSettings.block_accelerated_checkout), gate_armed: !!_sqTrack.acceleratedGateArmed, gate_active_at_click: !!(document.documentElement && document.documentElement.classList.contains('stoq-buy-now-pending')), blocked: (function () { try { var rr = window._RestockRocket; return !!(rr && typeof rr.willBlockAcceleratedClick === 'function' && rr.willBlockAcceleratedClick(e)); } catch (err) { return false; } })(), }, }); } catch (err) { } }, true); } } catch (e) { } function applyTranslations(settings) { try { 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) { 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(. We can do full custom-builds at a higher rental rate.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; } } function setupCartSellingPlanUpdater(settings) { window.addEventListener('stoq:inventory-data-loaded', function(event) { console.debug('STOQ - Inventory data loaded, updating cart selling plans'); 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); }); } }); } (function loadStorefrontSettings() { const cfg = window._RestockRocketConfig; if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) return; function run() { const query = 'query StoqSettings($namespace: String!) { shop { metafield(namespace: $namespace, key: "settings") { value } } }'; fetch( `https://${cfg.shop}/api/2025-07/graphql.json`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Shopify-Storefront-Access-Token': cfg.storefrontAccessToken, }, body: JSON.stringify({ query: query, variables: { namespace: cfg.metafieldNamespace } }), } ) .then(function(response) { if (!response.ok) { throw new Error('Storefront API HTTP ' + response.st atus); } return response.json(); }) .then(function(body) { if (body && body.errors && body.errors.length) { throw new Error('Storefront API errors: ' + body.errors.map(function(e) { return e && e.message; }).join(', ')); } const value = body && body.data && body.data.shop && body.data.shop.metafield && body.data.shop.metafield.value; if (!value) { throw new Error('Storefront API returned no settings metafield value'); } cfg.storefrontSettings = JSON.parse(value); console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings'); }) .catch(function(e) { console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message); }); } if (typeof window.requestIdleCallback === 'function') { window.requestIdleCallback(run, { timeout: 5000 }); } else { setTimeout(run, 0); } })(); const cachedSettings = window._RestockRocketConfig.cachedSetti
    ngs; const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; if (validCachedSettings) { console.debug('STOQ - using cached settings'); initializeScripts(validCachedSettings); } else { console.debug('STOQ - fetching fresh settings'); const headers = { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; } fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was no t ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { 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 fetchEmbedConfig(endpoint, apply) { return fetch( `${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`, { headers: { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' } } ) .then(function(response) { if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`); return response.json(); }) .then(function(data) { try { apply(data); } catch (applyError) { c
  • onsole.error('STOQ - apply failed for ' + endpoint + ':', applyError); throw applyError; } }) .catch(function(error) { console.debug(`STOQ - using cached ${endpoint}:`, error.message); }); } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); if (!window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid) { console.debug('STOQ - Liquid cache stale, refreshing selling_plans + integrations'); Promise.race([ Promise.all([ fetchEmbedConfig('selling_plans', function(data) { if (data && Array.isArray(data.plans)) { window._RestockRocketConfig.sellingPlans = data.plans; window._RestockRocketConfig.disabledSellingPlanIds = data.disabled_plan_ids || []; } if (data && data.read_f lags && typeof data.read_flags === 'object' && !Array.isArray(data.read_flags)) { window._RestockRocketConfig.readFlags = data.read_flags; } }), fetchEmbedConfig('integrations', function(data) { if (Array.isArray(data)) { window._RestockRocketConfig.integrations = data; } }) ]), new Promise(function(resolve) { setTimeout(resolve, 1000); }) ]).then(function() { loadScripts(settings); }); return; } loadScripts(settings); } function loadScripts(settings) { setupCartSellingPlanUpdater(settings); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); }) const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans) && window html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}

    We are happy to keep your belongings safe, including suitcases etc. whilst you are out in one of our rental bikes.

  • You can pick up your bike as soon as the shop opens on your collection date. Please review our working hours here.

  • You must return your bike before the shop closes on your return date. Please review our working hours here. Failure to do so in time may result in additional charges. Please see our Bike Hire Terms & Conditions
    for more information. If you are returning your bike on a Sunday,
    please add a note to your order with your number and your ETA return
    date so we can arrange your drop off out-of-hours.

  • You can cancel your bike hire at any time. Please contact us to cancel your booking.

    If a cancellation is received within 5 days of your collection date, you will not receive a refund.

  • Yes, depending on where and when you’d like the bikes dropped off, we may charge a small delivery fee. The best option is to get in touch with us, and we’ll do our best to make it work.