","barcode":"PREA17102022.2569","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/0034423_fendor-bendor-big-mudguard-black.jpg?v=1672755127","\/\/projektride.co.uk\/cdn\/shop\/products\/0034425_fendor-bendor-big-mudguard-black.jpg?v=1672755127","\/\/projektride.co.uk\/cdn\/shop\/products\/0034424_fendor-bendor-big-mudguard-black.jpg?v=1672755128","\/\/projektride.co.uk\/cdn\/shop\/products\/AAE6D157-CD1F-4D34-B2E5-248AAC4E4029_1_105_c_90fe2072-4012-4a96-a1f4-748008370081.jpg?v=1672755128"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/0034423_fendor-bendor-big-mudguard-black.jpg?v=1672755127","options":["Title"],"media":[{"alt":null,"id":31383135027426,"position":1,"preview_image":{"aspect_ratio":1.333,"height":900,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/0034423_fendor-bendor-big-mudguard-black.jpg?v=1672755127"},"aspect_ratio":1.333,"height":900,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/sh
cdn\/shop\/products\/AAE6D157-CD1F-4D34-B2E5-248AAC4E4029_1_105_c_90fe2072-4012-4a96-a1f4-748008370081.jpg?v=1672755128"},"aspect_ratio":0.664,"height":1087,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/AAE6D157-CD1F-4D34-B2E5-248AAC4E4029_1_105_c_90fe2072-4012-4a96-a1f4-748008370081.jpg?v=1672755128","width":722}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eThe Fendor Bendor Big gets the dirty job done. The all new attachment makes fitting without tools a breeze, to virtually every bike in just a few seconds.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eWith the newly developed attachment construction, Fendor Bendor Big is now completely self supported and therefore possible to mount on bikes without the sideway support of the seat stays or the support of a brake bridge. You could also mount it above your caliper brake to avoid interference with the
e;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) {
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 trans
{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 !== 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 cach
e;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) {
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 trans
{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 !== 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 cach
/ 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(function(integration) {
return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType);
})
if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preor
ig.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() {
// Wait for the API to be available with retries
const maxRetries = 10;
const retryDelay = 500;
function attemptCartCheck(attempt = 1) {
if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
window._RestockRocket.updateCartSellingPlans()
1
<
1
<Lights
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){b
2
8px;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-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-preorder-cou
oast-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-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out
oast-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-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out
3
Maintenance
4
Maintenance
4
Green
Questions and answers
Please get in touch with a member of the team either by phone (img src="//projektride.co.uk/cdn/shop/files/8869_2048x2048.jpg?v=1720881004" alt="Hydrapak Recon 500ml" class="mfp-zoom-in-cur" id="34242103050466">
01313745324
) or email (
[email protected]
Fabric: PS36CbikeHeight: 42cmBike Packing
Volume: 42Lbrothersa 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=169161042
<
img src="//projektride.co.uk/cdn/shop/files/8867_2048x2048.jpg?v=1720881004" alt="Hydrapak Recon 500ml" class="mfp-zoom-in-cur" id="34242102984930">
XLQuestions and answers
54 cm
":[]},{"id":42205177184482,"title":"700c \/ 28mm","option1":"700c \/ 28mm","option2":null,"option3":null,"sku":"4019238026917","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"700c Continental Ultra Sport Tyre in Black (Folding) - 700c \/ 28mm","public_title":"700c \/ 28mm","options":["700c \/ 28mm"],"price":2495,"weight":0,"compare_at_price":2495,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42205177217250,"title":"700c \/ 32mm","option1":"700c \/ 32mm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"700c Continental Ultra Sport Tyre in Black (Folding) - 700c \/ 32mm","public_title":"700c \/ 32mm","options":["700c \/ 32mm"],"price":2495,"weight":0,"compare_at_price":2495,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/product
s\/p558c08154bf760.87457661.jpg?v=1640544817","\/\/projektride.co.uk\/cdn\/shop\/products\/p558c08823c9181.11837059.jpg?v=1640544816"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/p558c08154bf760.87457661.jpg?v=1640544817","options":["Size"],"media":[{"alt":null,"id":28913871552738,"position":1,"preview_image":{"aspect_ratio":1.5,"height":600,"width":900,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/p558c08154bf760.87457661.jpg?v=1640544817"},"aspect_ratio":1.5,"height":600,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/p558c08154bf760.87457661.jpg?v=1640544817","width":900},{"alt":null,"id":28913871585506,"position":2,"preview_image":{"aspect_ratio":1.569,"height":510,"width":800,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/p558c08823c9181.11837059.jpg?v=1640544816"},"aspect_ratio":1.569,"height":510,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/p558c08823c9181.11837059.jpg?v=1640544816","width":800}],"requires_selling_plan":false<
,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eA coloured eye-catcher\u003cbr data-mce-fragment=\"1\"\u003e\u003c\/strong\u003eThe Ultra Sport is a modern tyre for touring and competition which convinces with its excellent price-performance ratio. The coloured line on the tread stripe run suits Fi:zik and jazzes up every bicycle. This tyre scores with a lot of grip, the silica-based tread compound and very high mileage.\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eFolding version\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003ePerformance technology\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eTPI: 3\/180\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eIf any more information is needed, please don't hesitate to get in touch with one of the team:\u003c\/strong\u003e\u003c\/p\u0img src="//projektride.co.uk/cdn/shop/files/8873_98x.jpg?v=1720881004" alt="" class="product-single__thumbnail-img">
Search text fieldimg src="//projektride.co.uk/cdn/shop/files/8166_98x.jpg?v=1723806597" alt="" class="product-single__thumbnail-img">
Sun: Closed