a class="product__media product__media--featured"
href="/collections/bike-hire/products/hire-genesis-croix-de-fer-10-flat-handlebars"
title="Hire Genesis Croix de Fer 20 (Flat Handlebars)"
aria-label="Hire Genesis Croix de Fer 20 (Flat Handlebars)"
style="background-image: url(//projektride.co.uk/cdn/shop/files/Genesis_Broadway_600x.jpg?v=1761139300)">
>
>
Hire Genesis Croix de Fer 20 (Flat Handlebars)from £35.00 per day
Hire Genesis CDA 20 Hire BikeSee More
from £34.00 per day
Workshop
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot_2024-10-01_at_16.23.29_600x.png?v=1727796235)">See More
>
Workshop Prices
-Brother Cycles Mr Wooden Frameset
£699.00Book a Service
a class="product__media product__media--featured"
href="/collections/road-gravel-touring/products/genesis-columbia-road"
title="Genesis Columbia Road Electric Bike"
aria-label="Genesis Columbia Road Electric Bike"
style="background-image: url(//projektride.co.uk/cdn/shop/products/ftp_f_freewheel_imagessportlinefwbikesgn21280_sidev2_600x.jpg?v=1709550634)">
span class="visually-hidden">Genesis Columbia Road Electric Bike>
>
a class="product__media product__media--featured"
href="/collections/road-gravel-touring/products/genesis-croix-de-fer-12"
title="Genesis Croix De Fer 10"
aria-label="Genesis Croix De Fer 10"
style="background-image: url(//projektride.co.uk/cdn/shop/files/gn10710_detail_01_600x.jpg?v=1723720250)">
span class="visually-hidden">Genesis Croix De Fer 10>
>
a class="product__media product__media--featured"
href="/collections/road-gravel-touring/products/genesis-croix-de-fer-10-fb"
title="Genesis Croix De Fer 10 Flat Handlebars"
aria-label="Genesis Croix De Fer 10 Flat Handlebars"
style="background-image: url(//projektride.co.uk/cdn/shop/files/gn10410_detail_01_600x.jpg?v=1723720203)">
imer_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,"market_setup_type":"single_market","shopify_app_id":5940125,"cache":true,"cached_at":"2025-11-11T14:27:02.333Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43590980075746,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,439359754733
span class="visually-hidden">Genesis Croix De Fer 10 Flat Handlebars3936706101474,43936706134242,43936706167010,43936706199778,43936706232546,43936706265314,43938308587746,43938308653282,43938308718818,43938308751586,43938308784354,43938308817122,43938322612450,43938322645218,43938322677986,43981336051938,43981336084706,43981336117474,43981336150242,43981345587426,43981345620194,43981345652962,43981345685730,43981357580514,43981357613282,43981362462946,43981362495714,43981362528482,43981369016546,43981369049314,43981374914786,43981374947554,43981374980322,43981392904418,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140302827746,44140302893282,44140317016290,44155590508770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329
>
onfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2025-12-15T10:08:43Z","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":"2025-12-15T10:08:43Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569933140351,55569712382335,55569712415103,55569712480639,55569933173119,55570017616255,55569933074815,55570017550719,55569712447871,55569933107583,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_descript>
","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":"
ll,"countdown_timer_ends_text":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true}];window._RestockRocketConfig.integrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
// Translations object exists in metafield - cache is valid
// If current locale isn't translated, applyTranslations will gracefully use default locale from base fields
if (window._RestockRocketConfig.normalizedLocale &&
!Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
console.debug('STOQ - locale not explicitly translated, will use default language from cache');
}
// Don't return null - continue using cache even for untranslated locales
}
const updatedAt = new Date(settings.updated_at);
if (isNaN(updatedAt.getTime())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const age = Date.now() - updatedAt.getTime();
if (age
SETTINGS_CACHE_DURATION) {
console.debug('STOQ - settings changed recently, skipping cache');
return null;
}
return settings;
} catch (error) {
console.debug('STOQ - Error checking settings cache:', error);
return null;
}
}
function createRestockRocketContainer() {
const restockRocketContainer = document.createElement('div');
restockRocketContainer.id = 'restock-rocket';
document.body.appendChild(restockRocketContainer);
}
function createRestockRocketScript(scriptUrl) {
const restockRocketScriptElement = document.createElement('script');
restockRocketScriptElement.setAttribute('defer', 'defer');
restockRocketScriptElement.src = scriptUrl;
document.body.appendChild(restockRocketScriptElement);
}
createRestockRocketContainer()
console.debug('STOQ - extension activated')
function applyTranslations(settings) {
try {
// Skip translation logic entirely if multi-language is not enabled
if (!settings ||
return settings;
}
if (!settings.translations) {
console.debug('STOQ - No translations found, skipping translation');
return settings;
}
const normalizedLocale = window._RestockRocketConfig.normalizedLocale;
const translations = settings.translations;
if (!normalizedLocale) {
// No matching locale has translations; drop payload to save memory
console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
delete settings.translations;
return settings;
}
console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`);
const translatedFields = translations[normalizedLocale];
if (translatedFields && typeof translatedFields === 'object') {
Object.keys(translatedFields).forEach(function(key) {
const value = translatedFields[key];
if (value !== null && value !div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/gn10410_detail_02_600x.jpg?v=1723720203)">pify-Theme-Schema-Name'] = window.Shopify.theme.schema_name;
headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;
headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id;
}
fetch(
`${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`,
{ headers }
)
.then(function(response) {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(function(settings) {
initializeScripts(settings);
})
.catch(function(error) {
// If request failed and we have cached settings (even if expired), use them as fallback
if (cachedSettings) {
console.debug('STOQ - using expired cached settings as fallback');
initializeScripts(cachedSettings);
} else {
console.error('STOQ - failed to load settings:', error);
}
})
.catch(function(e) {
>
w._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'product') {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct);
} else if(hijackIntegration) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`);
}
// Check and update cart selling plans after scripts are loaded
if (settings.preorder_enabled) {
updateCartSellingPlans();
}
// Dispatch custom event when app is loaded
c
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 a
Mountain Bikeseorder_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_sel
ocketConfig.normalizedLocale &&
!Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
console.debug('STOQ - locale not explicitly translated, will use default language from cache');
}
// Don't return null - continue using cache even for untranslated locales
}
const updatedAt = new Date(settings.updated_at);
if (isNaN(updatedAt.getTime())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const age = Date.now() - updatedAt.getTime();
if (age
This site has limited support for your browser. We recommend switching to Edge, Chrome, Safari, or Firefox.
Cockpit
Handlebars
Grips & Bar-Tape.32_1564x.png?v=1698311516"
],"description": "\n\n\nStainless cages are a popular choice for steel frames, randonneurs and gravel bikes. It is also well-proven at the top levels of competitive cycling. It's adorned the winner's bike at Paris Roubaix and carried bottles securely in Flanders, the Tour de France, etc.\n\n\n","sku": "SS2007-01","brand": {
"@type": "Thing",
"name": "ProjektRide"
},"gtin8": "","offers": [{
"@type" : "Offer","sku": "SS2007-01","availability" : "http://schema.org/InStock",
"price" : 28.5,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/arundel-stainless-steel-bottle-cage?variant=44455205372130"
}
]
}
a class="product__media product__media--featured"
href="/products/life-systems-pocket-first-aid-kit-hire"
title="Life Systems Pocket First Aid Kit - HIRE"
aria-label="Life Systems Pocket First Aid Kit - HIRE"
style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.22_5c0e6e2d-1913-4fd1-a90d-b486895960b6_600x.png?v=169
div class="featured-image__bg bg-pos-center-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/2571D9FF-E9AE-4004-9A55-C7FD4DD999D6_2048x.jpg?v=1640941114');">
>
ProjektRide
Buy Sell Ride Confident
FAQ
Questions and answersLights
Rider Care
I'm looking to find out more information about a product, where can I find this?
Please get in touch with a member of the team either by phone (Maintenance
01313745324
) or email (Cleaners, Degreasers and Lubrication
[email protected]
) where on of the team will be more than happy to help.
ProjektRide Bike Shop EdinburghTubeless
Tools & Maintenance
I'm looking to buy this product, when will it arrive and how much does postage cost?
If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item.
Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.Clothing and Protection
We also have a physical store, if you are local please pop in -
ProjektRide Bike Shop EdinburghProjektRide Merchandise
2898"},"aspect_ratio":1.333,"height":450,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Afternoon-EV08-fold-Black_600x450_68d22d3b-d2c3-4f1e-88b6-bf3f396e312d.png?v=1760792898","width":600}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eThe 2024 version 3 Eovolt Afternoon is the perfect bike for the daily commute and the wide tyres also allow you to easily navigate canal tow paths and other off road surfaces.\u003c\/p\u003e\n\u003cp\u003eWe listened to our customers who universally asked for a lighter weight from our popular 20” folder.. The 2024 edition features a huge weight saving of 2.1kgs making it easier to lift when combining with other modes of transport.\u003c\/p\u003e\n\u003cp\u003eThe below is for the standard colours of Onyx Black , Sage Green \u0026amp; Ocean Blue.\u003c\/p\u003e\n\u003cp\u003e\u003cem\u003e*\u003c\/em\u003e\u003cspan\u003e \u003c\/span\u003eVINTAGE colours are Satin Black and Satin Blue\u003c\/p\u003e\n\u003cp\u003eThe AfBook a Service:null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":44455205372130,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"SS2007-01","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Arundel Stainless Steel Bottle Cage","public_title":null,"options":["Default Title"],"price":2850,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-26at10.10.32.png?v=1698311516"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-26at10.10.32.png?v=1698311516","options":["Title"],"media":[{"alt":null,"id":32396579471586,"position":1,"preview_image":{"aspect_ratio":0.991,"height":1578,"width":1564,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-26at10.10.32.png?v=1698311516"},"aspect_ratio":0.991,"height":
>
makes the Afternoon the folding adventure bike you have been waiting for.\u003c\/p\u003e\n\u003cp\u003eThe Afternoon is equally at home off road on bridleways and canal towpaths as it is on the road.\u003c\/p\u003e\n\u003cp\u003ePlease note that it should only be ridden on flat dry good quality off road surfaces, the bike is not suitable for very wet muddy, uneven or rough terrain.\u003c\/p\u003e\n\u003cp\u003eAttach your bags to your rear pannier rack and you’re ready to explore over longer distances.\u003c\/p\u003e\n\u003cp\u003eVersion 3 Upgrades\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eShimano MT-100 Hydraulic Disc Brakes\u003c\/li\u003e\n\u003cli\u003eSchwalbe Pick Up Tyres with 6 layer puncture protection\u003c\/li\u003e\n\u003cli\u003eNew central folding locking arm with one step locking mechanism.\u003c\/li\u003e\n\u003cli\u003eNew fold and go locking bracket design taken from the pro range\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eWe Give You Extra\u003c\/p\u003e\n\u003cp\u003eThe EOVOLT
0026quot;,\u0026quot;reference\u0026quot;:\u0026quot;SS2007-01\u0026quot;,\u0026quot;is_virtual\u0026quot;:\u0026quot;0\u0026quot;,\u0026quot;delivery_in_stock\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;delivery_out_stock\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;id_category_default\u0026quot;:\u0026quot;175\u0026quot;,\u0026quot;on_sale\u0026quot;:\u0026quot;0\u0026quot;,\u0026quot;online_only\u0026quot;:\u0026quot;0\u0026quot;,\u0026quot;ecotax\u0026quot;:0,\u0026quot;minimal_quantity\u0026quot;:\u0026quot;1\u0026quot;,\u0026quot;low_stock_threshold\u0026quot;:null,\u0026quot;low_stock_alert\u0026quot;:\u0026quot;0\u0026quot;,\u0026quot;price\u0026quot;:\u0026quot;\\u00a314.25\u0026quot;,\u0026quot;unity\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;unit_price_ratio\u0026quot;:\u0026quot;0.000000\u0026quot;,\u0026quot;additional_shipping_cost\u0026quot;:\u0026quot;0.00\u0026quot;,\u0026quot;customizable\u0026quot;:\u0026quot;0\u0026quot;,\u0026quot;text_fields\u0026quot;:\u0026quot;0\u0026quot;,\u0026qu
>
{{/if}}
40NM\u003c\/li\u003e\n\u003cli\u003eMax speed - 25 km\/h - 15.5mph\u003c\/li\u003e\n\u003cli\u003eMotor location - Rear wheel\u003c\/li\u003e\n\u003cli\u003eAssistance - 5 levels\u003c\/li\u003e\n\u003cli\u003eBattery - SAMSUNG Lithium\u003c\/li\u003e\n\u003cli\u003eBattery Capacity - 36V – 10.5 Ah - 378wh\u003c\/li\u003e\n\u003cli\u003eBattery Position - Seat Post (removable)\u003c\/li\u003e\n\u003cli\u003eMax Charging time - 4-5 hrs\u003c\/li\u003e\n\u003cli\u003eRange - 60-80 km\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {55372770935167 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {55372770935167 : parseInt("4"),};
window._RestockRocketConfig.variantsPreorderCount = {55372770935167 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {55372770935167 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {55372770935167 : parseInt(""),};
window
uot;,\u0026quot;meta_keywords\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;meta_title\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;link_rewrite\u0026quot;:\u0026quot;arundel-stainless\u0026quot;,\u0026quot;name\u0026quot;:\u0026quot;Arundel Stainless\u0026quot;,\u0026quot;description\u0026quot;:\u0026quot;\u0026lt;p\u0026gt;Stainless cages are a popular choice for steel frames, randonneurs and gravel bikes. It is also well-proven at the top levels of competitive cycling. It's adorned the winner's bike at Paris Roubaix and carried bottles securely in Flanders, the Tour de France, etc.\u0026lt;\\\/p\u0026gt;\u0026quot;,\u0026quot;description_short\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;available_now\u0026quot;:\u0026quot;In Stock\u0026quot;,\u0026quot;available_later\u0026quot;:\u0026quot;Out of Stock - Backorder\u0026quot;,\u0026quot;id\u0026quot;:727,\u0026quot;id_product\u0026quot;:727,\u0026quot;out_of_stock\u0026quot;:1,\u0026quot;new\u0026quot;:0,\u0026quot;id_product_attribute\u0026quot;:\u0026quotGears & Drivetrain>
etConfig.scriptUrlProduct.lastIndexOf('/') + 1)
window._RestockRocketConfig.host = 'https://app.restockrocket.io'
const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data structure');
return null;
}
if (!settings.cache) {
console.debug('STOQ - settings caching disabled');
return null;
}
// Check if translations are enabled but missing from cache
// This handles the backfill period where DB has translations but metafield doesn't
if (settings.multi_language_enabled) {
if (!settings.translations) {
// Translations enabled but no translation data in metafield
// Metafield hasn't been backfilled yet - force refresh
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
Track Your Servicee\u0026quot;:\u0026quot;VAT UK 20%\u0026quot;,\u0026quot;ecotax_rate\u0026quot;:0,\u0026quot;unit_price\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;customizations\u0026quot;:{\u0026quot;fields\u0026quot;:[]},\u0026quot;id_customization\u0026quot;:0,\u0026quot;is_customizable\u0026quot;:false,\u0026quot;show_quantities\u0026quot;:false,\u0026quot;quantity_label\u0026quot;:\u0026quot;Items\u0026quot;,\u0026quot;quantity_discounts\u0026quot;:[],\u0026quot;customer_group_discount\u0026quot;:0,\u0026quot;images\u0026quot;:[{\u0026quot;bySize\u0026quot;:{\u0026quot;small_default\u0026quot;:{\u0026quot;url\u0026quot;:\u0026quot;https:\\\/\\\/lyonb2b.co.uk\\\/1595-small_default\\\/arundel-stainless.jpg\u0026quot;,\u0026quot;width\u0026quot;:98,\u0026quot;height\u0026quot;:98},\u0026quot;cart_default\u0026quot;:{\u0026quot;url\u0026quot;:\u0026quot;https:\\\/\\\/lyonb2b.co.uk\\\/1595-cart_default\\\/arundel-stainless.jpg\u0026quot;,\u0026quot;width\u0026quot;:125,\u0026quot;height\u0026quot;:125},\u0026quot;home_defaSee More>
ProjektRide MerchandiseEnigma
105 kg incl. luggage<
t;,\u0026quot;width\u0026quot;:259,\u0026quot;height\u0026quot;:259},\u0026quot;large\u0026quot;:{\u0026quot;url\u0026quot;:\u0026quot;https:\\\/\\\/lyonb2b.co.uk\\\/1595-large_default\\\/arundel-stainless.jpg\u0026quot;,\u0026quot;width\u0026quot;:800,\u0026quot;height\u0026quot;:800},\u0026quot;legend\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;cover\u0026quot;:\u0026quot;1\u0026quot;,\u0026quot;id_image\u0026quot;:\u0026quot;1595\u0026quot;,\u0026quot;position\u0026quot;:\u0026quot;1\u0026quot;,\u0026quot;associatedVariants\u0026quot;:[]}],\u0026quot;cover\u0026quot;:{\u0026quot;bySize\u0026quot;:{\u0026quot;small_default\u0026quot;:{\u0026quot;url\u0026quot;:\u0026quot;https:\\\/\\\/lyonb2b.co.uk\\\/1595-small_default\\\/arundel-stainless.jpg\u0026quot;,\u0026quot;width\u0026quot;:98,\u0026quot;height\u0026quot;:98},\u0026quot;cart_default\u0026quot;:{\u0026quot;url\u0026quot;:\u0026quot;https:\\\/\\\/lyonb2b.co.uk\\\/1595-cart_default\\\/arundel-stainless.jpg\u0026quot;,\u0026quot;width\u0026quot;:125,\
>
!settings.multi_language_enabled) {
return settings;
}
if (!settings.translations) {
console.debug('STOQ - No translations found, skipping translation');
return settings;
}
const normalizedLocale = window._RestockRocketConfig.normalizedLocale;
const translations = settings.translations;
if (!normalizedLocale) {
// No matching locale has translations; drop payload to save memory
console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
delete settings.translations;
return settings;
}
console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`);
const translatedFields = translations[normalizedLocale];
if (translatedFields && typeof translatedFields === 'object') {
Object.keys(translatedFields).forEach(function(key) {
const value = translatedFields[key
\/1595-home_default\\\/arundel-stainless.jpg\u0026quot;,\u0026quot;width\u0026quot;:259,\u0026quot;height\u0026quot;:259},\u0026quot;large\u0026quot;:{\u0026quot;url\u0026quot;:\u0026quot;https:\\\/\\\/lyonb2b.co.uk\\\/1595-large_default\\\/arundel-stainless.jpg\u0026quot;,\u0026quot;width\u0026quot;:800,\u0026quot;height\u0026quot;:800},\u0026quot;legend\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;cover\u0026quot;:\u0026quot;1\u0026quot;,\u0026quot;id_image\u0026quot;:\u0026quot;1595\u0026quot;,\u0026quot;position\u0026quot;:\u0026quot;1\u0026quot;,\u0026quot;associatedVariants\u0026quot;:[]},\u0026quot;has_discount\u0026quot;:false,\u0026quot;discount_type\u0026quot;:null,\u0026quot;discount_percentage\u0026quot;:null,\u0026quot;discount_percentage_absolute\u0026quot;:null,\u0026quot;discount_amount\u0026quot;:null,\u0026quot;discount_amount_to_display\u0026quot;:null,\u0026quot;price_amount\u0026quot;:14.25,\u0026quot;unit_price_full\u0026quot;:\u0026quot;\u0026quot;,\u0026quot;show_availability\u0026quot
p class="result__title">
See More
img src="//projektride.co.uk/cdn/shop/files/DistrictPlus4Low-25-47274-A-Primary_2048x2048.webp?v=1723936997" alt="Trek District+ 4 Coaster Lowstep" class="mfp-zoom-in-cur" id="34472701788386">
Open search bar
New Bikes
Complete BrakesSee More
OtherShop All New Bikes
img src="//projektride.co.uk/cdn/shop/files/DistrictPlus4Low-25-47274-B-Primary_98x.webp?v=1723936996" alt="" class="product-single__thumbnail-img">
See More
ProjektRideBrake Rotors
Buy Sell Ride Confident
Cleaners, Degreasers and Lubrication
Open cart
Road / Gravel / Touring Bikes