57cm
Closeid_image\u0026quot;:\u0026quot;gb-default\u0026quot;,\u0026quot;features\u0026quot;:[],\u0026quot;attachments\u0026quot;:[],\u0026quot;virtual\u0026quot;:0,\u0026quot;pack\u0026quot;:0,\u0026quot;packItems\u0026quot;:[],\u0026quot;nopackprice\u0026quot;:0,\u0026quot;customization_required\u0026quot;:false,\u0026quot;rate\u0026quot;:20,\u0026quot;tax_name\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-sma
ame\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_deCongratulations! Your order qualifies for free shipping
;small\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;medium\u0026quot;:{\u0026quot;url\u0026quot;:\u0026quot;https:\\\/\\\/lyonb2b.co.uk\\\/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;cover\u0026quot;:{\u0026quot;bySize\u0026quot;:{\u0026quot;small_default\u0026quot;:{\u0026quot;url\u0026quo
60cmPrice, high to low
ot;:800,\u0026quot;height\u0026quot;:800}},\u0026quot;small\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;medium\u0026quot;:{\u0026quot;url\u0026quot;:\u0026quot;https:\\\/\\\/lyonb2b.co.uk\\\/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\uKinesis 4S 2x10 TiagraDate, old to new6quot;,\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;:\u0026qu
uot;,\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
\\\/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\u0026qu
a class="product__media product__media--featured"
href="/collections/road-gravel-touring-bikes/products/kinesis-4s-1"
title="Kinesis 4S 2x10 Tiagra"
aria-label="Kinesis 4S 2x10 Tiagra"
Date, new to oldx; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\" data-mce-fragment=\"1\" data-mce-style=\"box-sizing: inherit; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 \/ 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; opacity: 1; transition: opacity 0.15s linear 0s; display: block; margin-bottom: 20px; color: #000000; font-family: 'Open Sans', Arial, Helvetica, sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing:
<
0 : null,};
window._RestockRocketConfig.selected_variant_id = 44455205372130;
window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
window._RestockRocketConfig.host = 'https://app.restockrocket.io'
const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds
function checkSettingsExpiry(settings) {
>
,
{ headers }
)
.then(function(response) {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(function(settings) {
initializeScripts(settings);
})
.catch(function(error) {
// If request failed and we have cached settings (even if expired), use them as fallback
if (cachedSettings) {
console.debug('STOQ - using expired cached settings as fallback');
initializeScripts(cachedSettings);
} else {
console.error('STOQ - failed to load settings:', error);
}
})
.catch(function(e) {
console.error(e)
})
}
function initializeScripts(settings) {
settings = applyTranslations(settings);
window._RestockRocketConfig.settings = settings;
console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
if(settings.enable_app) {
const hijackIntegration = window._RestockRocketConfig.integrations.find(fu
ow._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'product') {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct);
} else if(hijackIntegration) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`);
}
// Check and update cart selling plans after scripts are loaded
if (settings.preorder_enabled) {
updateCartSellingPlans();
}
// Dispatch custom event when app is loaded
const appLoadedEvent = new CustomEvent('stoq:loaded', {
detail: {
pageType: window._RestockRocketConfig.pageType,
enabled: settings.enable_app,
settings: settings
}
});
console.debug('STOQ - dispatching app loaded event');
window.dispatchEvent(appLoadedEvent);
}
}
function updateCartSellingPlans() {
<
Open navigation menu
Clear filters
(
Clear filters
(
0
<
Return to home
Hire.site-footer {
--bg: #1f2324;
--text: #ffffff;
--text-alpha-15: rgba(255, 255, 255, 0.15);
--text-alpha-60: rgba(255, 255, 255, 0.6);
--text-alpha-85: rgba(255, 255, 255, 0.85);
}
.footer-content__logo__image { width: 170px; }
Road / Gravel / Touring BikesQUICK LINKS
About UsHybrid / City BikesContact Us
Blogu003eBlind bolt holes for less sharp edges\u003c\/li\u003e\n\u003cli\u003eAvailable in 35mm, 50mm, 65mm lengths\u003c\/li\u003e\n\u003cli\u003e31.8mm or 35mm Handlebar Clamp Diameter\u003c\/li\u003e\n\u003cli\u003eCombine with ENVE M6 or M7 carbon bars for a complete MTB cockpit\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e","published_at":"2025-03-07T13:51:33+00:00","created_at":"2025-03-07T13:51:33+00:00","vendor":"Enve","type":"components","tags":["Alloy MTB Stem","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":14000,"price_min":14000,"price_max":14000,"available":false,"price_varies":false,"compare_at_price":15000,"compare_at_price_min":15000,"compare_at_price_max":15000,"compare_at_price_varies":false,"variants":[{"id":55175352025471,"title":"35mm - 35mm Clamp","option1":"35mm - 35mm Clamp","option2":null,"option3":null,"sku":"EN633001027005","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"ENVE Alloy MTB Stem - 35mm - 35mm Clmm - 35mm Clamp"],"price":14000,"weight":0,"compare_at_price":15000,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/m6_35mm_side_qh0c9d.jpg?v=1741355401"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/m6_35mm_side_qh0c9d.jpg?v=1741355401","options":["Size"],"media":[{"alt":null,"id":64605432250751,"position":1,"preview_image":{"aspect_ratio":1.0,"height":632,"width":632,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/m6_35mm_side_qh0c9d.jpg?v=1741355401"},"aspect_ratio":1.0,"height":632,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/m6_35mm_side_qh0c9d.jpg?v=1741355401","width":632}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003ch2 class=\"des-title\"\u003eProduct details\u003c\/h2\u003e\n\u003cdiv class=\"product-description rte\"\u003e\n\u003cp\u003eThe ENVE Alloy MTB Stem is a light, incredibly durable stem designed to offer top-shelf p
cision-machined, the ENVE Alloy MTB stem reflects the engineering prowess present in all ENVE equipment and sets the benchmark for alloy mountain bike stem performance.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eCold-forged alloy MTB stem\u003c\/li\u003e\n\u003cli\u003e0-degree rise\u003c\/li\u003e\n\u003cli\u003eNo gap faceplate\u003c\/li\u003e\n\u003cli\u003eStainless hardware\u003c\/li\u003e\n\u003cli\u003eBlind bolt holes for less sharp edges\u003c\/li\u003e\n\u003cli\u003eAvailable in 35mm, 50mm, 65mm lengths\u003c\/li\u003e\n\u003cli\u003e31.8mm or 35mm Handlebar Clamp Diameter\u003c\/li\u003e\n\u003cli\u003eCombine with ENVE M6 or M7 carbon bars for a complete MTB cockpit\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e"}[]
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "ENVE Alloy MTB Stem",
"url": "https:\/\/projektride.co.uk\/products\/enve-alloy-mtb-stem","image": [
"https:\/\/projektride.co.uk\/cdn\/shop\/files\/m6_35mm_side_qh0c9d_632x.jpg?v=1741355401"
],"description": "Product details\n\nThe ENVE Alloy MTB Stem is a light, incredibly durable stem designed to offer top-shelf performance to cross country, trail, all-mountain, enduro and gravity mountain bike riding.\nWith a 31.8mm or 35mm handlebar clamp diameter, the stem can be paired with an ENVE M6 or M7 carbon handlebar to offer a complete ENVE cockpit, giving you a stiffer, more race-orientated setup that is ideal for those who favour tight control and a solid front-end feel.\nThe alloy stem features a ‘no gap faceplate’ that makes for even clamping and secure handlebar retention while reducing the likelihood of sensitive carbon laminates being damaged. Blind bolt holes diminish the number of sharp edges and reduce the risk of catching your knee or snagging clothing.\nDespite the brand’s fame for carbon components, ENVE has a long history working with metal due to carbon fibre moulds being machined from aluminium and steel – as well as alloy components such as hubs and stem faceplates.\nCold-forged, then precision-machined, the ENVE Alloy MTB stem reflects the engineering prowess present in all ENVE equipment and sets the benchmark for alloy mountain bike stem performance.\n\nCold-forged alloy MTB stem\n0-degree rise\nNo gap faceplate\nStainless hardware\nBlind bolt holes for less sharp edges\nAvailable in 35mm, 50mm, 65mm lengths\n31.8mm or 35mm Handlebar Clamp Diameter\nCombine with ENVE M6 or M7 carbon bars for a complete MTB cockpit\n\n","sku": "EN633001027005","brand": {
"@type": "Thing",
"name": "Enve"
},"gtin8": "","offers": [{
"@type" : "Offer","sku": "EN633001027005","availability" : "http://schema.org/OutOfStock",
"price" : 140.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/enve-alloy-mtb-stem?variant=55175352025471"
},
{
"@type" : "Offer","sku": "EN633001027006","availability" : "http://schema.org/OutOfStock",
"price" : 140.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/enve-alloy-mtb-stem?variant=55175352058239"
},
{
"@type" : "Offer","sku": "EN633001027007","availability" : "http://schema.org/OutOfStock",
"price" : 140.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/enve-alloy-mtb-stem?variant=55175352091007"
}
]
}
a class="product__media product__media--featured"
href="/products/hire-smith-convoy-helmet"
title="Hire Lazer Compact Helmet"
aria-label="Hire Lazer Compact Helmet"
style="background-image: url(//projektride.co.uk/cdn/shop/files/my2023_tempo-kineticore-black_right_1400x1011800x600-removebg-preview_1_600x.png?v=1747484784)">
span class="visually-hidden">Hire Lazer Compact Helmet>
>
xtensions/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-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
window._RestockRocketConfig.host = 'https://app.restockrocket.io'
const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data structure');
return null;
}
if (!settings.cache) {
console.debug('STOQ - settings caching disabled');
return null;
}
// Check if translations are enabled but missing from cache
// This handles the backfingerous chemicals. Our unique formula is also 100% biodegradable so it's safe for your bike and the planet.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eAfter you've given your bike a good clean with our Nano Tech Bike Cleaner, it's time to add some protection. Muc-Off Bike Protect is the ultimate post-wash water dispersant. Not only does Bike Protect rid your bike's frame and components of moisture, but it also leaves a non-sticky layer of protective PTFE to prevent rust and corrosion. It also makes future cleaning and maintenance a breeze.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eContains Award Winning Nano Tech Bike Cleaner\u003c\/li\u003e\n\u003cli\u003ePremium Formula PTFE Bike Protect Included in kit\u003c\/li\u003e\n\u003cli\u003eGreat value - Saves £2.50! \u003c\/li\u003e\n\u003c\/ul\u003e"}Hire Ortlieb 40L Pannier Bagse(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 || []
];
if (value !== null && value !== undefined && value !== '') {
settings[key] = value;
}
});
} else {
console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
}
delete settings.translations;
return settings;
} catch (e) {
console.debug('STOQ - error applying translations:', e);
return settings;
}
}
// First try to get settings from metafields with expiry check
const cachedSettings = window._RestockRocketConfig.cachedSettings;
const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
if (validCachedSettings) {
console.debug('STOQ - using cached settings');
initializeScripts(validCachedSettings);
} else {
c
.restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#ebebeb;height:25px;line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #
}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@media (max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;Would you like to add on any equipment?Hire Ortlieb 40L Pannier Bags
(100%)}}
Hire Lazer Compact Helmet
a class="product__media product__media--featured"
href="/products/hire-smith-convoy-helmet"
title="Hire Lazer Compact Helmet"
aria-label="Hire Lazer Compact Helmet"
style="background-image: url(//projektride.co.uk/cdn/shop/files/my2023_tempo-kineticore-black_right_1400x1011800x600-removebg-preview_1_600x.png?v=1747484784)">
span class="visually-hidden">Hire Lazer Compact Helmet
>
>
Finishing Kit
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)">>
>
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Kinesis---Frameset---R2---Black-Gold---Pre-Production_1000x1000_8d5291e8-4b15-4ebc-8f66-2965ae899bbb_600x.jpg?v=1683969382)">
>
KINESIS R2 ROAD BIKE FRAMESETKinesis Rtd Scandium Road Frameset
>
Brands
>
See More
Hope":"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_
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_sdiv class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Kinesis-RTD-Frames---White_1000x1000_d70bc41b-3a66-4ebe-a3dc-b2db8ca0f02d_600x.jpg?v=1683968840)">
up_type":"single_market","shopify_app_id":5940125,"cache":true,"cached_at":"2025-11-11T14:27:02.333Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43590980075746,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,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,4393>
98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569933140351,55569712382335,55569712415103,55569712480639,55569933173119,55570017616255,55569933074815,55570017550719,55569712447871,55569933107583,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_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_descripti
,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_se
false;window._RestockRocketConfig.product = {"id":7467996381410,"title":"Muc-Off Bike Care Duo Kit - BIKE CLEANING KIT -","handle":"muc-off-bike-care-duo-kit","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Muc-Off Bike Care Duo Kit covers Stage 1 and 2 in the Muc-Off cleaning system. Our award winning Nano Tech Bike Cleaner cuts through dirt, mud and grime quickly and safely without the need for acids or dangerous chemicals. Our unique formula is also 100% biodegradable so it's safe for your bike and the planet.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eAfter you've given your bike a good clean with our Nano Tech Bike Cleaner, it's time to add some protection. Muc-Off Bike Protect is the ultimate post-wash water dispersant. Not only does Bike Protect rid your bike's frame and components of moisture, but it also leaves a non-sticky layer of protective PTFE to prevent rust and corrosion. It also makes future cleaning and maintenance a breeze.\u003c\/p\uKinesis Rtd Scandium Road FramesetCockpitare_at_price":null,"inventory_management":"shopify","barcode":"PREA03112021.1621","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/61KIrLsttNL._AC_SS450.jpg?v=1638898109"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/61KIrLsttNL._AC_SS450.jpg?v=1638898109","options":["Title"],"media":[{"alt":null,"id":28806684606690,"position":1,"preview_image":{"aspect_ratio":1.0,"height":450,"width":450,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/61KIrLsttNL._AC_SS450.jpg?v=1638898109"},"aspect_ratio":1.0,"height":450,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/61KIrLsttNL._AC_SS450.jpg?v=1638898109","width":450}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Muc-Off Bike Care Duo Kit covers Stage 1 and 2 in the Muc-Off cleaning system. Our award winning Nano Tech Bike Cleaner cuts through dirt, mud and grime q
index' && (settings.show_button_on_index || settings.preorder_index_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'product') {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct);
} else if(hijackIntegration) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`);
}
// Check and updat
80px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-we
console.debug('STOQ - no cart selling plan updates needed');
}
})
.catch(error => {
console.error('STOQ - error updating cart selling plans:', error);
});
} else if (attempt
Stems maxRetries) {
console.debug(`STOQ - API not ready, retry ${attempt}/${maxRetries}`);
setTimeout(() => attemptCartCheck(attempt + 1), retryDelay);
} else {
console.debug('STOQ - API not loaded after max retries, skipping cart selling plan check');
}
}
attemptCartCheck();
}
line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preo
img src="//projektride.co.uk/cdn/shop/files/rb21910_6_98x.jpg?v=1722527302" alt="" class="product-single__thumbna>
a class="product__media product__media--featured"
href="/collections/road-gravel-touring-bikes/products/preamble-frameset-black"
title="Surly Preamble Frameset - black"
aria-label="Surly Preamble Frameset - black"
style="background-image: url(//projektride.co.uk/cdn/shop/products/fmsu-23-preamble-blk_600x.jpg?v=1679166190)">
span class="visually-hidden">Surly Preamble Frameset - black
<>
>
a class="product__media product__media--featured"
href="/collections/road-gravel-touring-bikes/products/surly-preamble-frameset-skyrim-blue"
title="Surly Preamble Frameset - Skyrim Blue"
aria-label="Surly Preamble Frameset - Skyrim Blue"
style="background-image: url(//projektride.co.uk/cdn/shop/products/fmsu-23-preamble-blue_600x.jpg?v=1679165782)">
span class="visually-hidden">Surly Preamble Frameset - Skyrim Blue>
Servicing
Workshop PricesCycle to WorkDelivery & Returns
Location<
82 Newington RoadEH9 1QN
<
img src="//projektride.co.uk/cdn/shop/files/21234_2048x2048.jpg?v=1723806326" alt="Ortlieb Bike Shopper" class="mfp-zoom-in-cur" id="34467991748834">
img src="//projektride.co.uk/cdn/shop/files/21235_2048x2048.jpg?v=1723806326" alt="Ortlieb Bike Shopper" class="mfp-zoom-in-cur" id="34467991781602">
© 2025,
ProjektRide
.
Website by
img src="//projektride.co.uk/cdn/shop/files/21236_2048x2048.jpg?v=1723806327" alt="Ortlieb Bike Shopper" class="mfp-zoom-in-cur" id="34467991814370">
t-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14px;font-
:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transfor
img src="//projektride.co.uk/cdn/shop/files/21243_2048x2048.jpg?v=1723806326" alt="Ortlieb Bike Shopper" class="mfp-zoom-in-cur" id="34467992010978">