Clothing
Decrease quantity
I'm looking to buy this product, when will it arrive and how much does postage cost?
Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cableCockpit
ents dirt adhesion between washes and reduces future maintenance time as well as helping reduce friction, wear and energy consumption.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e*Just remember not to apply Bike Protect to your tyre treads and braking surfaces!\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eHigh performance formula leaves dry, non-sticky protective film\u003c\/li\u003e\n\u003cli\u003eSafe on frame, metal parts, plastics, rubber, paint and carbon fibre\u003c\/li\u003e\n\u003cli\u003eDrives out excess moisture\u003c\/li\u003e\n\u003cli\u003ePrevents dirt adhesion\u003c\/li\u003e\n\u003cli\u003eLight lubricant coats moving parts\u003c\/li\u003e\n\u003cli\u003eQuick and easy to use\u003c\/li\u003e\n\u003cli\u003e500ml Aerosol Spray\u003c\/li\u003e\n\u003c\/ul\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {42134186557666 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {42134186557666 : parseInt("15"),};
window._RestockRocketConfig.variantsPr
com/extensions/019af0d1-c518-7a22-bdbf-9ceff49063ad/restockrocket-1-402/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 transle.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.preorder_collection_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) {
creat
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()
.then(hasUpdates => {
if (hasUpdates) {
console.debug('STOQ - cart selling plans updated successfully');
} else {
console.debug('STOQ - no cart selling plan updates needed');
}
})
<
n-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%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide
Rider Care
The bag features adjustable side retention strapping, with reflective front and rear straps for added safety and two side pockets for storing smaller items. Its specially designed zip compartment, for a 15” laptop, contains a safety retention loop to protect against theft and is also accessible from the inside. A second zip compartment includes a mesh pocket that can be accessed from both inside and outside, for quick and easy access.
Fidlock magnetic buckles and MOLLE system allow a comfy fit whatever you’re wearing. The cushioned straps and chest retention come with added D rings for mounting accessories. Hypalon detailing adds an extra layer of durability, whilst easy roll-up velcro ends keep your bag neat and tidy. Also included is a removable waist strap and internal key clip.
- The adjustable strapping system allows the backpack to expand up to 40L, making it perfect for carrying your essentials – and more.
Phone Holders