_channel":true,"optin_required":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"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_varianNotify me when this product is available:
y":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. 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[acti
or_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,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936
85730,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,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,5556993307481
t":"2025-12-07T18:19:18Z","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_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"
span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE
reorder_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":"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_acknowl
>
:"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/019af0d1-c518-7a22-bdbf-9ceff49063ad/restockrocket-1-402/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.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
>
!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 || Submit
];
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 {
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?.them
}
)
.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(function(integration
onfig.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() {
// Wait for the AP
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.32_9d81277b-124e-4fdc-8a0f-fbfb40a9343d_600x.png?v=1691610357)">
<
window.appBlockPlacements ||= [];
if (window.klarnaAppBlocksManager) {
window.klarnaAppBlocksManager.push({
productVariants: [{"id":42156944425186,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"GK002161","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Kryptonite New York Standard U-Lock with Flexframe bracket Sold Secure Gold","public_title":null,"options":["Default Title"],"price":12999,"weight":2500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],
templateName: 'product',
dataKey: 'top-strip-promotion-badge',
storefrontCurrency: 'GBP',
storefrontCountry: 'GB',
storefrontLanguage: 'en',
shopLocale: 'en',
shopDomain: 'projektride.co.uk',
variantPrice: '12999',
cartPrice: '0',
selector: 'shopify-osm-ASUorQUNvQS9uckFQO__klarna_on_site_messaging_app_block_8gNReH',
topPadding: '0',
bottomPadding: '0',
});
} else {
window.appBlockPlacements.push({
productVariants: [{"id":42156944425186,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"GK002161","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Kryptonite New York Standard U-Lock with Flexframe bracket Sold Secure Gold","public_title":null,"options":["Default Title"],"price":12999,"weight":2500,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],
templateName: 'product',
shopLocale: 'en',
dataKey: 'top-strip-promotion-badge',
storefrontCurrency: 'GBP',
storefrontCountry: 'GB',
storefrontLanguage: 'en',
shopDomain: 'projektride.co.uk',
variantPrice: '12999',
cartPrice: '0',
selector: 'shopify-osm-ASUorQUNvQS9uckFQO__klarna_on_site_messaging_app_block_8gNReH',
topPadding: >
Life Systems Pocket First Aid Kit - HIRE
£0.00
Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable
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)"><
a42-28aea4dcbf62.jpg?v=1639478239"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/GK002154_960x_d29c905a-81bc-4060-ba42-28aea4dcbf62.jpg?v=1639478239","options":["Title"],"media":[{"alt":null,"id":28840645820642,"position":1,"preview_image":{"aspect_ratio":1.0,"height":600,"width":600,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/GK002154_960x_d29c905a-81bc-4060-ba42-28aea4dcbf62.jpg?v=1639478239"},"aspect_ratio":1.0,"height":600,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/GK002154_960x_d29c905a-81bc-4060-ba42-28aea4dcbf62.jpg?v=1639478239","width":600}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eUltimate security from Kryptonite for bicycles, eBikes and powersports\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cb data-mce-fragment=\"1\"\u003eFeatures:\u003c\/b\u003e\u003c\/p\u003e\n\u003cul class=\"description-overview\" data-mce-fragment=\"1\"\u003e\n\u1\"\u003eProduct weight: 2.02 kgs\u003c\/li\u003e\n\u003c\/ul\u003e"}
ell Ride Confident
Decrease quantityDecrease quantity
Increase quantity
label for="quantity--template--15326745395426__main">Quantity>
input type="number" name="quantity" id="quantity--template--15326745395426__main" value="1" min="1">

Hire Ortlieb 40L Pannier Bags
window.appBlockPlacements ||= [];
if (window.klarnaAppBlocksManager) {
window.klarnaAppBlocksManager.push({
productVariants: [{"id":42140096102626,"title":"Black","option1":"Black","option2":null,"option3":null,"sku":"1C0399BLK","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"One-Up Components Composite Pedals - Black","public_title":"Black","options":["Black"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42140096135394,"title":"Red","option1":"Red","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":36266272850146,"product_id":7469339214050,"position":2,"created_at":"2021-12-09T10:59:46+00:00","updated_at":"2021-12-09T10:59:46+00:00","alt":null,"width":800,"height":720,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-components-comp-flat-mtb-pedals-internal-rednotset-1c0399grn.jpg?v=1639047586","variant_ids":[42140096135394]},"available":false,"name":"One-Up Components Composite Pedals - Red","public_title":"Red","options":["Red"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28815665725666,"position":2,"preview_image":{"aspect_ratio":1.111,"height":720,"width":800,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-components-comp-flat-mtb-pedals-internal-rednotset-1c0399grn.jpg?v=1639047586"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44329993437410,"title":"purple","option1":"purple","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":39633801609442,"product_id":7469339214050,"position":7,"created_at":"2023-09-04T15:21:42+01:00","updated_at":"2023-09-04T15:21:44+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_PURPLE_Top.jpg?v=1693837304","variant_ids":[44329993437410]},"available":true,"name":"One-Up Components Composite Pedals - purple","public_title":"purple","options":["purple"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":32239621898466,"position":7,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_PURPLE_Top.jpg?v=1693837304"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44329993470178,"title":"Green","option1":"Green","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":39633801314530,"product_id":7469339214050,"position":6,"created_at":"2023-09-04T15:21:16+01:00","updated_at":"2023-09-04T15:21:18+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_GREEN_Top.jpg?v=1693837278","variant_ids":[44329993470178]},"available":true,"name":"One-Up Components Composite Pedals - Green","public_title":"Green","options":["Green"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":32239621603554,"position":6,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_GREEN_Top.jpg?v=1693837278"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44329993502946,"title":"Orange","option1":"Orange","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":39633801281762,"product_id":7469339214050,"position":5,"created_at":"2023-09-04T15:20:56+01:00","updated_at":"2023-09-04T15:20:58+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_ORANGE_Top.jpg?v=1693837258","variant_ids":[44329993502946]},"available":<
img src="//projektride.co.uk/cdn/shop/files/logo_header_2048x2048.png?v=1634060673" alt="" class="logo--footer">
blic_title":"Blue","options":["Blue"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":32239621406946,"position":4,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_BLUE_Top.jpg?v=1693837235"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44329993568482,"title":"Teal","option1":"Teal","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":39633800921314,"product_id":7469339214050,"position":3,"created_at":"2023-09-04T15:20:06+01:00","updated_at":"2023-09-04T15:20:09+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_TURQUOISE_Top.jpg?v=1693837209","variant_ids":[44329993568482]},"available":true,"name":"One-Up Components Composite Pedals - Teal","public_title":"Teal","options":["Teal"],"price":4950,"weight":0,
£0.00
ng":true,"taxable":true,"featured_image":null,"available":true,"name":"One-Up Components Composite Pedals - Black","public_title":"Black","options":["Black"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42140096135394,"title":"Red","option1":"Red","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":36266272850146,"product_id":7469339214050,"position":2,"created_at":"2021-12-09T10:59:46+00:00","updated_at":"2021-12-09T10:59:46+00:00","alt":null,"width":800,"height":720,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-components-comp-flat-mtb-pedals-internal-rednotset-1c0399grn.jpg?v=1639047586","variant_ids":[42140096135394]},"available":false,"name":"One-Up Components Composite Pedals - Red","public_title":"Red","options":["Red"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media"1
39621898466,"position":7,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_PURPLE_Top.jpg?v=1693837304"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44329993470178,"title":"Green","option1":"Green","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":39633801314530,"product_id":7469339214050,"position":6,"created_at":"2023-09-04T15:21:16+01:00","updated_at":"2023-09-04T15:21:18+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_GREEN_Top.jpg?v=1693837278","variant_ids":[44329993470178]},"available":true,"name":"One-Up Components Composite Pedals - Green","public_title":"Green","options":["Green"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":32239621603554,"position":6,"preview_image":{"aspect_ratio":1.
QUICK LINKS…
About Us4Life Systems Pocket First Aid Kit - HIREContact Us
<
<