a class="product__media product__media--featured"
href="/products/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire"
title="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable"
aria-label="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable"
style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_600x.png?v=1691610428)">
label for="quantity--template--15326745395426__main">Quantity
img src="//projektride.co.uk/cdn/shop/files/5BEB364E-FC78-42F8-BD29-6EB1FB58CAA0_2048x2048.heic?v=1700910575" alt="ProjektRide Bike Wash" class="mfp-zoom-in-cur" id="32528957866210">
Privacy Policy
label for="quantity--template--15326745395426__main">Quantity
img src="//projektride.co.uk/cdn/shop/files/5BEB364E-FC78-42F8-BD29-6EB1FB58CAA0_2048x2048.heic?v=1700910575" alt="ProjektRide Bike Wash" class="mfp-zoom-in-cur" id="32528957866210">
Privacy Policy
Working Hours
Sun: Closed
Sun: Closed
Edinburgh
EH9 1QN
es_shipping":true,"taxable":true,"featured_image":{"id":39096928370914,"product_id":8055186358498,"position":4,"created_at":"2023-03-18T19:46:07+00:00","updated_at":"2023-03-18T19:46:09+00:00","alt":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30371-pm.png?v=1679168769","variant_ids":[43936694796514]},"available":true,"name":"Ergon GA2 - Regular \/ Dark blue","public_title":"Regular \/ Dark blue","options":["Regular","Dark blue"],"price":2799,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31695345451234,"position":4,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30371-pm.png?v=1679168769"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43936694829282,"title":"Regular \/ Light blue","option1":"Regular","option2":"Light blue","option3":null,"sku":"EG-42411392","requires_shipping":true,"taxable":true,"featured_image":{"id":39
Location096928534754,"product_id":8055186358498,"position":3,"created_at":"2023-03-18T19:46:07+00:00","updated_at":"2023-03-18T19:46:10+00:00","alt":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30369-pm.png?v=1679168770","variant_ids":[43936694829282]},"available":true,"name":"Ergon GA2 - Regular \/ Light blue","public_title":"Regular \/ Light blue","options":["Regular","Light blue"],"price":2799,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31695345418466,"position":3,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30369-pm.png?v=1679168770"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43936694862050,"title":"Regular \/ Orange","option1":"Regular","option2":"Orange","option3":null,"sku":"EG-42411393","requires_shipping":true,"taxable":true,"featured_image":{"id":39096928567522,"product_id":8055186358498,"position":2,"created_a
t":"2023-03-18T19:46:07+00:00","updated_at":"2023-03-18T19:46:11+00:00","alt":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30367-pm.png?v=1679168771","variant_ids":[43936694862050]},"available":true,"name":"Ergon GA2 - Regular \/ Orange","public_title":"Regular \/ Orange","options":["Regular","Orange"],"price":2799,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31695345385698,"position":2,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30367-pm.png?v=1679168771"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43936694894818,"title":"Regular \/ Purple","option1":"Regular","option2":"Purple","option3":null,"sku":"EG-42411394","requires_shipping":true,"taxable":true,"featured_image":{"id":39096928501986,"product_id":8055186358498,"position":5,"created_at":"2023-03-18T19:46:07+00:00","updated_at":"2023-03-18T19:46:10+00:00","al
t":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30373-pm.png?v=1679168770","variant_ids":[43936694894818]},"available":true,"name":"Ergon GA2 - Regular \/ Purple","public_title":"Regular \/ Purple","options":["Regular","Purple"],"price":2799,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31695345484002,"position":5,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/30373-pm.png?v=1679168770"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43936694927586,"title":"Regular \/ Red","option1":"Regular","option2":"Red","option3":null,"sku":"EG-42411395","requires_shipping":true,"taxable":true,"featured_image":{"id":39096928403682,"product_id":8055186358498,"position":6,"created_at":"2023-03-18T19:46:07+00:00","updated_at":"2023-03-18T19:46:09+00:00","alt":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/product tactile feel thanks to the super soft, UV-stable rubber compound, exclusively developed and manufactured in Germany for Ergon. This allows for greater control on demanding trails.\u003c\/p\u003e\n\u003cp\u003eThe ergonomic shape fits the contours of the hand and significantly reduced arm pump on long trails. The inner construction varies in thickness allowing greater damping.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eCarbon friendly CNC Aluminium clamps\u003c\/li\u003e\n\u003cli\u003eStandard or Single Gripshift versions\u003c\/li\u003e\n\u003cli\u003eReplaceable bar end plugs\u003c\/li\u003e\n\u003cli\u003e110g per pair\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"col\"\u003e\n\u003cdiv class=\"features\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {43936694763746 : "deny",43936694796514 : "deny",43936694829282 : "deny",43936694862050 : "deny",43936694894818 : "deny",43936694927586 : "deny",439366949
60354 : "deny",43936694993122 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {43936694763746 : parseInt("3"),43936694796514 : parseInt("3"),43936694829282 : parseInt("3"),43936694862050 : parseInt("3"),43936694894818 : parseInt("3"),43936694927586 : parseInt("3"),43936694960354 : parseInt("3"),43936694993122 : parseInt("3"),};
window._RestockRocketConfig.variantsPreorderCount = {43936694763746 : parseInt(""),43936694796514 : parseInt(""),43936694829282 : parseInt(""),43936694862050 : parseInt(""),43936694894818 : parseInt(""),43936694927586 : parseInt(""),43936694960354 : parseInt(""),43936694993122 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {43936694763746 : null,43936694796514 : null,43936694829282 : null,43936694862050 : null,43936694894818 : null,43936694927586 : null,43936694960354 : null,43936694993122 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {43936694763746 : parseInt(""),43936694796514 : parseInt(""),43936
694829282 : parseInt(""),43936694862050 : parseInt(""),43936694894818 : parseInt(""),43936694927586 : parseInt(""),43936694960354 : parseInt(""),43936694993122 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {43936694763746 : null,43936694796514 : null,43936694829282 : null,43936694862050 : null,43936694894818 : null,43936694927586 : null,43936694960354 : null,43936694993122 : null,};
window._RestockRocketConfig.variantsShippingText = {43936694763746 : "",43936694796514 : "",43936694829282 : "",43936694862050 : "",43936694894818 : "",43936694927586 : "",43936694960354 : "",43936694993122 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {43936694763746 : null,43936694796514 : null,43936694829282 : null,43936694862050 : null,43936694894818 : null,43936694927586 : null,43936694960354 : null,43936694993122 : null,};
window._RestockRocketConfig.selected_variant_id = 43936694927586;
window._RestockRocketConfig.selected_variant_available = wind
ow._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
window._RestockRocketConfig.host = 'https://app.restockrocket.io'
const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data structure');
return null;
}
if (!settings.cache) {
console.debug('STOQ - settings caching disabled');
return null;
}
// Check if translations are enabled but missing from cache
// This handles the backfill period where DB has translations but metafield doesn't
if (settings.multi_language_enabled) {
if (!settings.translations) {
// Translations enabled but no translation data in metafield
// Metafield hasn't been backfilled yet - force refresh
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
// Translations object exists in metafield - cache is valid
// If current locale isn't translated, applyTranslations will gracefully use default locale from base fields
if (window._RestockRocketConfig.normalizedLocale &&
!Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
console
.debug('STOQ - locale not explicitly translated, will use default language from cache');
}
// Don't return null - continue using cache even for untranslated locales
}
const updatedAt = new Date(settings.updated_at);
if (isNaN(updatedAt.getTime())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const age = Date.now() - updatedAt.getTime();
if (age
n setupCartSellingPlanUpdater(settings) {
if (!settings || !settings.preorder_enabled) {
return;
}
// Listen for stoq:preorder-api-ready event dispatched by preorder.js
window.addEventListener('stoq:preorder-api-ready', function(event) {
console.debug('STOQ - Preorder API ready, 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);
});
}
});
}
// First try to get settings from metafields with expiry check
const cachedSettings = window._RestockRocketConfig.cachedSettings;
cons
[email protected]t 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 not ok');
!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[keyBuy Sell Ride Confident
];
if (value !== null && value !== undefined && value !== '') {
settings[key] = value;
}
});
} else {
console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
}
delete settings.translations;
return settings;
} catch (e) {
console.debug('STOQ - error applying translations:', e);
return settings;
}
}
// Setup event listener for cart selling plan updates
// This must be called before any scripts are loaded to avoid race conditions
functio
!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[keyBuy Sell Ride Confident ]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translations; return settings; } catch (e) { console.debug('STOQ - error applying translations:', e); return settings; } } // Setup event listener for cart selling plan updates // This must be called before any scripts are loaded to avoid race conditions functio
.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;}.re
preorder-countdown-timer .countdown-label{font-size:14px;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@media (max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-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}.res
(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}.restock-rocket-preorder-progress-bar{padding:12px 15px;margin-bottom:20px;font-family:inherit;}.restock-rocket-preorder-progress-bar .preorder-progress-text{margin-bottom:8px;}.restock-rocket-preorder-progress-bar .preorder-progress-bar-row{display:flex;align-items:center;gap:10px;}.restock-rocket-preorder-progress-bar .preorder-progress-track{flex:1;height:12px;overflow:hidden;}.restock-rocket-preorder-progress-bar .preorder-progress-fill{display:block;height:100%;min-width:2px;transition:width 0.3s ease;}.restock-rocket-preorder-progress-bar .preorder-progress-percentage{font-weight:500;min-width:35px;text-align:right;}
estockRocketConfig.variantsShippingText = {44566556410082 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {44566556410082 : null,};
window._RestockRocketConfig.selected_variant_id = 44566556410082;
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/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
window._RestockRocketConfig.host = 'https://app
.restockrocket.io'
const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data structure');
return null;
}
if (!settings.cache) {
console.debug('STOQ - settings caching disabled');
return null;
}
// Check if translations are enabled but missing from cache
// This handles the backfill period where DB has translations but metafield doesn't
if (settings.multi_language_enabled) {
if (!settings.translations) {
// Translations enabled but no translation data in metafield
// Metafield hasn't been backfilled yet - force refresh
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
// Translations object exists in metafield - cache is valid
// If current loc- © 2026,
- window._RestockRocketConfig = window._RestockRocketConfig || {} // Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us') // This matches the backend's Mobility.normalize_locale behavior // Returns empty string if locale is empty or invalid (matches original behavior) function normalizeLocale(locale) { if (!locale || locale.trim() === '') { return ''; } return locale.toString().toLowerCase().replace(/-/g, '_'); } window._RestockRocketConfig.locale = 'en'; window._RestockRocketConfig.normalizedLocale = normalizeLocale('en'); window._RestockRocketConfig.shop = 'projektride.myshopify.com'; window._RestockRocketConfig.pageType = 'product';window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom'; window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2025-12-28T14:44:23.508Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"disableDebugLoggingForNonPreorderItem":false},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error"e paintwork of the bike. Makes the bike shine and protects. Can also be sued as car soap.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eApplication\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eMix 100ml of Bike Wash with 10 litres of water in a bucket, then wash the entire bike.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eProperties and Advantages\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eThe active components induce a quick an profound cleaning process without leaving traces.\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eEnriched with protective wax-components\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2023-11-25T11:38:46+00:00","created_at":"2023-11-25T11:07:55+00:00","vendor":"morganblue","type":"Apparel \u0026 Accessories","tags":["Cleaners","Cleaners Degreasers and Lubrication","morganblue", "PROJEKTRIDE MERCHANDISE","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":1299,"price_min":1299,"price_max":1299,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":44566556410082,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"ProjektRide Bike Wash","public_title":null,"options":["Default Title"],"price":1299,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/5BEB364E-FC78-42F8-BD29-6EB1FB58CAA0.heic?v=1700910575"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/5BEB364E-FC78-42F8-BD29-6EB1FB58CAA0.heic?v=1700910575","options":["Title"],"media":[{"alt":null,"id":32528957866210,"position":

>
Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable




