Shop All Second-Hand
Home
Bikes  

true,"taxable":true,"featured_image":null,"available":false,"name":"Restrap Fast Straps - Medium \/ Black","public_title":"Medium \/ Black","options":["Medium","Black"],"price":1200,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46007576854754,"title":"Large \/ Orange","option1":"Large","option2":"Orange","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Restrap Fast Straps - Large \/ Orange","public_title":"Large \/ Orange","options":["Large","Orange"],"price":1400,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46007576887522,"title":"Large \/ Black","option1":"Large","option2":"Black","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Restrap Fast Straps - Large \/ Black","public_title":" "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: '1000', cartPrice: '0', selector: 'shopify-osm-ASUorQUNvQS9uckFQO__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); } else { window.appBlockPlacements.push({ productVariants: [{"id":46007576723682,"title":"Small \/ Orange","option1":"Small","option2":"Orange","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Restrap Fast Straps - Small \/ Orange","public_title":"Small \/ Orange","options":["Small","Orange"],"price":1000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_p /Product Details
New productsWhether it's carrying luggage anywhere on the bike, for tying items together, or even repairs - our tough Hypalon straps are designed to be versatile and hold steady.
/Objects strapped to bike are for scale only, we don't re
Header Image
,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46007576920290,"title":"Mixed \/ Orange","option1":"Mixed","option2":"Orange","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Restrap Fast Straps - Mixed \/ Orange","public_title":"Mixed \/ Orange","options":["Mixed","Orange"],"price":1800,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46007576953058,"title":"Mixed \/ Black","option1":"Mixed","option2":"Black","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Restrap Fast Straps - Mixed \/ Black","public_title":"Mixed \/ Black","options":["Mixed","Black"],"price":1800,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/file and hold steady.\u003c\/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan\u003eObjects strapped to bike are for scale only, we don't recommend fixing meal deals to your bike.\u003c\/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan\u003eAvailable in three sizes, 25cm, 45cm and 65cm.\u003c\/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan\u003eSold as pairs or a mix of all three.\u003c\/span\u003e\u003c\/p\u003e"}
SKU: 555161
[],"availability" : "http://schema.org/OutOfStock", "price" : 18.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/restrap-fast-straps?variant=46007576953058" } ] }
a class="product__media product__media--featured" href="/collections/new-collection/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)">
Hire Lazer Compact Helmet
Hire Ortlieb 40L Pannier Bags
"price" : 174.99, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/park-tool-sk-4-home-mechanic-starter-kit?variant=42171003994338" } ] }
Would you like to add on any equipment?
Hire Lazer Compact Helmetspan class="visually-hidden">Hire Lazer Compact Helmet
  • > > Hire Lazer Compact Helmet
Black Hire Ortlieb 40L Pannier Bags
>
>
£0.00 Life Systems Pocket First Aid Kit - HIRE a class="product__media product__media--featured" href="/collections/new-collection/products/life-systems-pocket-first-aid-kit-hire" title="Life Systems Pocket First Aid Kit - HIRE" aria-label="Life Systems Pocket First Aid Kit - HIRE" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.22_5c0e6e2d-1913-4fd1-a90d-b486895960b6_600x.png?v=1691610357)">
span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE
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)">
>
n":false,"selling_plan_allocations":[]},{"id":46007576920290,"title":"Mixed \/ Orange","option1":"Mixed","option2":"Orange","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Restrap Fast Straps - Mixed \/ Orange","public_title":"Mixed \/ Orange","options":["Mixed","Orange"],"price":1800,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46007576953058,"title":"Mixed \/ Black","option1":"Mixed","option2":"Black","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Restrap Fast Straps - Mixed \/ Black","public_title":"Mixed \/ Black","options":["Mixed","Black"],"price":1800,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/RS_FST_SML_BLK_FastStraps_Black_ > {{/if}}
\u003cbr\u003e\u003cbr\u003e\u003cspan\u003eObjects strapped to bike are for scale only, we don't recommend fixing meal deals to your bike.\u003c\/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan\u003eAvailable in three sizes, 25cm, 45cm and 65cm.\u003c\/span\u003e\u003cbr\u003e\u003cbr\u003e\u003cspan\u003eSold as pairs or a mix of all three.\u003c\/span\u003e\u003c\/p\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {46007576723682 : "deny",46007576756450 : "deny",46007576789218 : "deny",46007576821986 : "deny",46007576854754 : "deny",46007576887522 : "deny",46007576920290 : "deny",46007576953058 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {46007576723682 : parseInt("0"),46007576756450 : parseInt("0"),46007576789218 : parseInt("0"),46007576821986 : parseInt("0"),46007576854754 : parseInt("0"),46007576887522 : parseInt("0"),46007576920290 : parseInt("0"),46007576953058 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {46007576723682 : pa >

window._RestockRocketConfig.variantsShippingText = {46007576723682 : "",46007576756450 : "",46007576789218 : "",46007576821986 : "",46007576854754 : "",46007576887522 : "",46007576920290 : "",46007576953058 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {46007576723682 : null,46007576756450 : null,46007576789218 : null,46007576821986 : null,46007576854754 : null,46007576887522 : null,46007576920290 : null,46007576953058 : null,}; window._RestockRocketConfig.selected_variant_id = 46007576723682; 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- >

ld // 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() - updatedALocation>

< << p class="result__title">
!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[key82 Newington Roada href="{{ it.product.url }}">{{ it.product.title }}
e?.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'); } 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 - faileEdinburgh>
  • indow._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 update cart selling plans after scripts are loaded if (settings.preorder_enabled) { updateCartSellingPlansEH9 1QN> 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(); } >
  • 936401522914,43936408568034,43936414400738,43936700727522,43936706101474,43936706134242,43936706167010,43936706199778,43936706232546,43936706265314,43938308587746,43938308653282,43938308718818,43938308751586,43938308784354,43938308817122,43938322612450,43938322645218,43938322677986,43981336051938,43981336084706,43981336117474,43981336150242,43981345587426,43981345620194,43981345652962,43981345685730,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,441959u003c\/strong\u003e\u003cbr\u003eHead set    FSA Integrated, sealed cartridge bearing, 1-1\/8\"\u003cbr\u003eWe reserve the right to make changes to the product information contained on this site at any time without notice, including with respect to equipment, specifications, models, colours, materials and pricing. Due to supply chain issues, compatible parts may be substituted at any time without notice.\u003c\/p\u003e\n\u003cp\u003eBike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production.\u003c\/p\u003e","published_at":"2025-01-11T10:01:39+00:00","created_at":"2025-01-11T10:01:39+00:00","vendor":"Trek","type":"Bicycles","tags":["920"],"price":115000,"price_min":115000,"price_max":115000,"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":54945187430783,"title":"49","option1":"49","option2":null,"option3":null,"sku":"555161","req
  • ,"barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945187529087,"title":"56","option1":"56","option2":null,"option3":null,"sku":"555164","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek 920 Frameset - 56","public_title":"56","options":["56"],"price":115000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945187561855,"title":"58","option1":"58","option2":null,"option3":null,"sku":"555165","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek 920 Frameset - 58","public_title":"58","options":["58"],"price":115000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945187594623,"title":"61","option1":"61","option2":null,"option3":null,"sku":"555166","requires_shipping":true,"taxable":true,"featured_image":eInt("4"),54945187529087 : parseInt("3"),54945187561855 : parseInt("2"),54945187594623 : parseInt("5"),}; window._RestockRocketConfig.variantsPreorderCount = {54945187430783 : parseInt(""),54945187463551 : parseInt(""),54945187496319 : parseInt(""),54945187529087 : parseInt(""),54945187561855 : parseInt(""),54945187594623 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {54945187430783 : null,54945187463551 : null,54945187496319 : null,54945187529087 : null,54945187561855 : null,54945187594623 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {54945187430783 : parseInt(""),54945187463551 : parseInt(""),54945187496319 : parseInt(""),54945187529087 : parseInt(""),54945187561855 : parseInt(""),54945187594623 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {54945187430783 : null,54945187463551 : null,54945187496319 : null,54945187529087 : null,54945187561855 : null,54945187594623 : null,}; window._RestockRocketConfitoq: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'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } else i
  • <
  • Ride
  • refix":"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_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payme nt_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_acknowledgement":false,"preorder_acknowledgement_tex
t":"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_selector_type":"afterend","countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true}];window._RestockRocketConfig.integrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enabl BatteryeFetchHijack":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.product = {"id":7477752037602,"title":"Park Tool SK-4 - Home Mechanic Starter Kit","handle":"park-tool-sk-4-home-mechanic-starter-kit","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cul class=\"description-overview\" data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eA perfect way to start a bicycle tool collection!\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eA great combination of tools to help a home mechanic clean, adjust, maintain, and do some basic repairs on their bike\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eThe SK-4 includes more than 15 genuine Park Tool products that can perform dozens of tasks, and includes a custom Park Tool toolbox with extra room for spare parts and more tool
s\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2021-12-17T13:46:29+00:00","created_at":"2021-12-17T13:43:54+00:00","vendor":"Park Tool","type":"","tags":["maintenance","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled","Tools \u0026 Maintenance"],"price":17499,"price_min":17499,"price_max":17499,"available":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":42171003994338,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"QKSK4UOM","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Park Tool SK-4 - Home Mechanic Starter Kit","public_title":null,"options":["Default Title"],"price":17499,"weight":10000,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.41.4 9.png?v=1639748636"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.41.49.png?v=1639748636","options":["Title"],"media":[{"alt":null,"id":28866106753250,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1178,"width":1178,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.41.49.png?v=1639748636"},"aspect_ratio":1.0,"height":1178,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.41.49.png?v=1639748636","width":1178}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cul class=\"description-overview\" data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eA perfect way to start a bicycle tool collection!\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eA great combination of tools to help a home mechanic clean, adjust, maintain, and do some basic repairs on their bike\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u
003eThe SK-4 includes more than 15 genuine Park Tool products that can perform dozens of tasks, and includes a custom Park Tool toolbox with extra room for spare parts and more tools\u003c\/li\u003e\n\u003c\/ul\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {42171003994338 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {42171003994338 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {42171003994338 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {42171003994338 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {42171003994338 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {42171003994338 : null,}; window._RestockRocketConfig.variantsShippingText = {42171003994338 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {42171003994338 : null,}; window._RestockRocketConfig.selected_variant_id = 42171003994338; window._Rest ockRocketConfig.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) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid set
tings 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._RestockRo cketConfig.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
window.appBlockPlacements ||= []; if (window.klarnaAppBlocksManager) { window.klarnaAppBlocksManager.push({ productVariants: [{"id":45857466777826,"title":"Small \/ 300WH","option1":"Small","option2":"300WH","option3":null,"sku":"5305996","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Small \/ 300WH","public_title":"Small \/ 300WH","options":["Small","300WH"],"price":240000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857466810594,"title":"Small \/ 400WH","option1":"Small","option2":"400WH","option3":null,"sku":"5305997","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Small \/ 400WH","public_title":"Small \/ 400WH","options":["Small","400WH"],"price":177500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857466843362,"title":"Small \/ 500WH","option1":"Small","option2":"500WH","option3":null,"sku":"5305998","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Small \/ 500WH","public_title":"Small \/ 500WH","options":["Small","500WH"],"price":275000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857466876130,"title":"Medium \/ 300WH","option1":"Medium","option2":"300WH","option3":null,"sku":"5305999","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Medium \/ 300WH","public_title":"Medium \/ 300WH","options":["Medium","300WH"],"price":240000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857466908898,"title":"Medium \/ 400WH","option1":"Medium","option2":"400WH","option3":null,"sku":"5306000","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Medium \/ 400WH","public_title":"Medium \/ 400WH","options":["Medium","400WH"],"price":195000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857466941666,"title":"Medium \/ 500WH","option1":"Medium","option2":"500WH","option3":null,"sku":"5306001","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Medium \/ 500WH","public_title":"Medium \/ 500WH","options":["Medium","500WH"],"price":275000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857466974434, lling_plan_allocations":[]},{"id":45857466843362,"title":"Small \/ 500WH","option1":"Small","option2":"500WH","option3":null,"sku":"5305998","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Small \/ 500WH","public_title":"Small \/ 500WH","options":["Small","500WH"],"price":275000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857466876130,"title":"Medium \/ 300WH","option1":"Medium","option2":"300WH","option3":null,"sku":"5305999","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Medium \/ 300WH","public_title":"Medium \/ 300WH","options":["Medium","300WH"],"price":240000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857466908898,"title":"Medium \/ 400WH","option1":"Medium","option2":"400WH","option3":null,"sku":"5306000","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Medium \/ 400WH","public_title":"Medium \/ 400WH","options":["Medium","400WH"],"price":195000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857466941666,"title":"Medium \/ 500WH","option1":"Medium","option2":"500WH","option3":null,"sku":"5306001","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Medium \/ 500WH","public_title":"Medium \/ 500WH","options":["Medium","500WH"],"price":275000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857466974434,"title":"Large \/ 300WH","option1":"Large","option2":"300WH","option3":null,"sku":"5306002","requires_shipping":true,"taxable":true,"featured_im age":null,"available":true,"name":"Trek District+ 1 Midstep - Large \/ 300WH","public_title":"Large \/ 300WH","options":["Large","300WH"],"price":240000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857467007202,"title":"Large \/ 400WH","option1":"Large","option2":"400WH","option3":null,"sku":"5306003","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Large \/ 400WH","public_title":"Large \/ 400WH","options":["Large","400WH"],"price":212500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45857467039970,"title":"Large \/ 500WH","option1":"Large","option2":"500WH","option3":null,"sku":"5306004","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 1 Midstep - Large \/ 500WH","public_title":"Large \/ 5