• << Clothing< almost anything on the go.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cb\u003eLoad Circumference Min — Max:\u003c\/b\u003e 5.5in — 12.5in \/ 14cm — 31.7cm\u003cbr\u003e\u003cb\u003eMaterial:\u003c\/b\u003e UV-Resistant Polyurethane\u003cbr\u003e\u003cb\u003eBuckle:\u003c\/b\u003e Super-Tough® Nylon\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003csection class=\"related products\"\u003e\u003c\/section\u003e\n\u003csection class=\"related products\"\u003e\u003c\/section\u003e\n\u003c!----\u003e","published_at":"2024-07-04T17:14:25+01:00","created_at":"2024-07-04T14:02:06+01:00","vendor":"Voile","type":"Apparel \u0026 Accessories","tags":["Accessories","Bike Packing"],"price":1500,"price_min":1500,"price_max":1500,"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":45662746804450,"title":"BLACK","option1":"BLACK","option2":null,"option3":
  • ap - BLACK\/GREY","public_title":"BLACK\/GREY","options":["BLACK\/GREY"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662746902754,"title":"BLUE","option1":"BLUE","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - BLUE","public_title":"BLUE","options":["BLUE"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662746935522,"title":"Cyan","option1":"Cyan","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - Cyan","public_title":"Cyan","options":["Cyan"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false <> ,"selling_plan_allocations":[]},{"id":45662746968290,"title":"GREEN","option1":"GREEN","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - GREEN","public_title":"GREEN","options":["GREEN"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662747001058,"title":"GREY","option1":"GREY","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - GREY","public_title":"GREY","options":["GREY"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662747033826,"title":"Magenta","option1":"Magenta","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null"available":true,"name":"Voile 15″ Nylon Buckle Strap - Magenta","public_title":"Magenta","options":["Magenta"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662747066594,"title":"OLIVE","option1":"OLIVE","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - OLIVE","public_title":"OLIVE","options":["OLIVE"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662747099362,"title":"ORANGE","option1":"ORANGE","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - ORANGE","public_title":"ORANGE","options":["ORANGE"],"price":1500,"weight":0,"compare_at_price":null,"inventory_managemeue,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - YELLOW","public_title":"YELLOW","options":["YELLOW"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-cyan-white-1.jpg?v=1720098273","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-green-1.jpg?v=1720098274","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-grey-1.jpg?v=1720098274","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-magenta-white-1-1024x1024.jpg?v=1720098274","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-olive-1.jpg?v=1720098274","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-orange-1.jpg?v=1720098274","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buc
  • \/voile-straps-15-inch-nylon-buckle-cyan-white-1.jpg?v=1720098273","width":1999},{"alt":null,"id":34187127161058,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-green-1.jpg?v=1720098274"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-green-1.jpg?v=1720098274","width":1999},{"alt":null,"id":34187127193826,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-grey-1.jpg?v=1720098274"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-grey-1.jpg?v=1720098274","width":1999},{"alt":null,"id":34187127226594,"position":4,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voi1.jpg?v=1720098274","width":1999},{"alt":null,"id":34187127324898,"position":7,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-red-1.jpg?v=1720098274"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-red-1.jpg?v=1720098274","width":1999},{"alt":null,"id":34187127357666,"position":8,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-tan-1.jpg?v=1720098274"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-tan-1.jpg?v=1720098274","width":1999},{"alt":null,"id":34187127390434,"position":9,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-yellow-black-1.jpg?v=1,"position":12,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-blue-1.jpg?v=1720098274"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-blue-1.jpg?v=1720098274","width":1999}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cdiv class=\"woocommerce-tabs wc-tabs-wrapper\"\u003e\n\u003cdiv aria-labelledby=\"tab-title-description\" role=\"tabpanel\" id=\"tab-description\" class=\"woocommerce-Tabs-panel woocommerce-Tabs-panel--description panel entry-content wc-tab\"\u003e\n\u003cp\u003e\u003cspan\u003eThese Voile Straps® are made of tough stretch polyurethane, with a UV-resistant additive to increase their lifespan.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eTheir Super-Tough® nylon buckle is non-marring, non-conductive, and non-reflective.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u00
  • ection\u003e\n\u003csection class=\"related products\"\u003e\u003c\/section\u003e\n\u003c!----\u003e"} []
  • { "@context": "http://schema.org/", "@type": "Product", "name": "Voile 15″ Nylon Buckle Strap", "url": "https:\/\/projektride.co.uk\/products\/voile-15-nylon-buckle-strap","image": [ "https:\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-cyan-white-1_1999x.jpg?v=1720098273" ],"description": "\n\nThese Voile Straps® are made of tough stretch polyurethane, with a UV-resistant additive to increase their lifespan.\nTheir Super-Tough® nylon buckle is non-marring, non-conductive, and non-reflective.\nFew things in life are as reliable as the original Voile Strap®. Over the last 30 years they have become the ultimate alternative to duct tape, nylon straps, and bungee cords.\nOn the job, in the outdoors, and everywhere in between: they are the definitive way to secure, bundle, and repair almost anything on the go.\nLoad Circumference Min — Max: 5.5in — 12.5in \/ 14cm — 31.7cmMaterial: UV-Resistant PolyurethaneBuckle: Super-Tough® Nylon\n\n\n\n\n","brand": { "@type": "Thing", "name": "Voile" },"gtin8": "","offers": [{ "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 15.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/voile-15-nylon-buckle-strap?variant=45662746804450" }, { "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 15.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/voile-15-nylon-buckle-strap?variant=45662746837218" }, { "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 15.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/voile-15-nylo
  • span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE <
    a class="product__media product__media--featured" href="/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 >
    Header Image > <
    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)"> £0.00

    Working Hours
    Mon - Fri: 09:00 - 18:30 Sun: Closed
    Tel
    Edinburgh EH9 1QN
    EH9 1QN [email protected]
    • Hire Lazer Compact Helmet[email protected] 1+ a class="product__media product__media--featured" href="/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)">
    span class="visually-hidden">Hire Lazer Compact Helmet © 2025, £0.00.
    Hire Ortlieb 40L Pannier Bags
    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-11-11T14:27:02.312Z","enabll,"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[action*=\"/cart/add\"] button","preorder_page_< e_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":{},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Penabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":"","preorder_payment_insert_selector_type":"afterend","preorder_price_container_selector":"","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_prispan class="visually-hidden">Hire Ortlieb 40L Pannier Bags
    hone 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":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too","show_button_on_collection":false,"sms_default_country":"us","sms_restrict_country":false,"sms_default_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_alertce_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,43936093470946,43936101138658,43936107266274,43 on rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":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 re62462946,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,55569933074815,55570550194559,55570550227327,5560400897 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,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,43936142426338,43936142459106,43936152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,prefix":"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,"paym 2907458786,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,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647],"updated_at":"2025-12-10T20:40:51Z","market_locations_enabled":false,"market_id":382140642,"preorxt":"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,"enab t_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","preorder_button_description_shipping_text_prefix":"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," in life are as reliable as the original Voile Strap®. Over the last 30 years they have become the ultimate alternative to duct tape, nylon straps, and bungee cords.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eOn the job, in the outdoors, and everywhere in between: they are the definitive way to \u003c\/span\u003e\u003cb\u003esecure\u003c\/b\u003e\u003cspan\u003e, \u003c\/span\u003e\u003cb\u003ebundle\u003c\/b\u003e\u003cspan\u003e, and \u003c\/span\u003e\u003cb\u003erepair\u003c\/b\u003e\u003cspan\u003e almost anything on the go.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cb\u003eLoad Circumference Min — Max:\u003c\/b\u003e 5.1in — 22.4in \/ 13cm — 57cm\u003cbr\u003e\u003cb\u003eMaterial:\u003c\/b\u003e UV-Resistant Polyurethane\u003cbr\u003e\u003cb\u003eBuckle:\u003c\/b\u003e Super-Tough® Nylon\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003csection class=\"related products\"\u003e\u003c\/section\u003e\n\u003csection clHire Ortlieb 40L Pannier Bags "price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":45662746804450,"title":"BLACK","option1":"BLACK","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - BLACK","public_title":"BLACK","options":["BLACK"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662746837218,"title":"Black \/ White","option1":"Black \/ White","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - Black \/ White","public_title":"Black \/ White","options":["Black \/ White"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"cations":[]},{"id":45662975623394,"title":"Tan","option1":"Tan","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Nylon Buckle Strap - Tan","public_title":"Tan","options":["Tan"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662975656162,"title":"Yellow","option1":"Yellow","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Nylon Buckle Strap - Yellow","public_title":"Yellow","options":["Yellow"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-nylon-buckle-black-1.jpg?v=1720100211","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-ny e":true,"name":"Voile 15″ Nylon Buckle Strap - Cyan","public_title":"Cyan","options":["Cyan"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662746968290,"title":"GREEN","option1":"GREEN","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - GREEN","public_title":"GREEN","options":["GREEN"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662747001058,"title":"GREY","option1":"GREY","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - GREY","public_title":"GREY","options":["GREY"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","rojektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-nylon-buckle-black-1.jpg?v=1720100211","options":["Colour"],"media":[{"alt":null,"id":34187413586146,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-nylon-buckle-black-1.jpg?v=1720100211"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-nylon-buckle-black-1.jpg?v=1720100211","width":1999},{"alt":null,"id":34187413389538,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-nylon-buckle-blue-1-1024x1024.jpg?v=1720100210"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-nylon-buckle-blue-1-1024x1024.jpg?v=1720100210","width":1024},{"alt":null,"id":34187413717218,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1999
    true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - ORANGE","public_title":"ORANGE","options":["ORANGE"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662747132130,"title":"RED","option1":"RED","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - RED","public_title":"RED","options":["RED"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662747164898,"title":"Tan","option1":"Tan","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - Tan","public_title":"Tan","options":["Tan"],"price":1500,"weight":0,"compare_at_price":null,"inve n\/shop\/files\/voile-straps-25-inch-nylon-buckle-grey-1.jpg?v=1720100212","width":1999},{"alt":null,"id":34187413422306,"position":6,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-nylon-buckle-magenta-white-1-1024x1024.jpg?v=1720100211"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-nylon-buckle-magenta-white-1-1024x1024.jpg?v=1720100211","width":1024},{"alt":null,"id":34187413651682,"position":7,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-nylon-buckle-olive-1.jpg?v=1720100212"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-nylon-buckle-olive-1.jpg?v=1720100212","width":1999},{"alt":null,"id":34187413848290,"position":8,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src" ntory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662747197666,"title":"YELLOW","option1":"YELLOW","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 15″ Nylon Buckle Strap - YELLOW","public_title":"YELLOW","options":["YELLOW"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-cyan-white-1.jpg?v=1720098273","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-green-1.jpg?v=1720098274","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-grey-1.jpg?v=1720098274","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15-inch-nylon-buckle-magenta-white-1-1024x1024.jpg?v=1720098274","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-15scriptUrlProduct.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; } Resistant Polyurethane\u003cbr\u003e\u003cb\u003eBuckle:\u003c\/b\u003e Super-Tough® Nylon\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003csection class=\"related products\"\u003e\u003c\/section\u003e\n\u003csection class=\"related products\"\u003e\u003c\/section\u003e\n\u003c!----\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {45662746804450 : "deny",45662746837218 : "deny",45662746869986 : "deny",45662746902754 : "deny",45662746935522 : "deny",45662746968290 : "deny",45662747001058 : "deny",45662747033826 : "deny",45662747066594 : "deny",45662747099362 : "deny",45662747132130 : "deny",45662747164898 : "deny",45662747197666 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {45662746804450 : parseInt("1"),45662746837218 : parseInt("1"),45662746869986 : parseInt("1"),45662746902754 : parseInt("1"),45662746935522 : parseInt("1"),45662746968290 : parseInt("1"),45662747001058 : parseInt("1"),45662747033826 : parseInt("1"),45662747066594 : // 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
    parseInt("1"),45662747099362 : parseInt("1"),45662747132130 : parseInt("1"),45662747164898 : parseInt("1"),45662747197666 : parseInt("1"),}; window._RestockRocketConfig.variantsPreorderCount = {45662746804450 : parseInt(""),45662746837218 : parseInt(""),45662746869986 : parseInt(""),45662746902754 : parseInt(""),45662746935522 : parseInt(""),45662746968290 : parseInt(""),45662747001058 : parseInt(""),45662747033826 : parseInt(""),45662747066594 : parseInt(""),45662747099362 : parseInt(""),45662747132130 : parseInt(""),45662747164898 : parseInt(""),45662747197666 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {45662746804450 : null,45662746837218 : null,45662746869986 : null,45662746902754 : null,45662746935522 : null,45662746968290 : null,45662747001058 : null,45662747033826 : null,45662747066594 : null,45662747099362 : null,45662747132130 : null,45662747164898 : null,45662747197666 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {45662746804450 : p<< arseInt(""),45662746837218 : parseInt(""),45662746869986 : parseInt(""),45662746902754 : parseInt(""),45662746935522 : parseInt(""),45662746968290 : parseInt(""),45662747001058 : parseInt(""),45662747033826 : parseInt(""),45662747066594 : parseInt(""),45662747099362 : parseInt(""),45662747132130 : parseInt(""),45662747164898 : parseInt(""),45662747197666 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {45662746804450 : null,45662746837218 : null,45662746869986 : null,45662746902754 : null,45662746935522 : null,45662746968290 : null,45662747001058 : null,45662747033826 : null,45662747066594 : null,45662747099362 : null,45662747132130 : null,45662747164898 : null,45662747197666 : null,}; window._RestockRocketConfig.variantsShippingText = {45662746804450 : "",45662746837218 : "",45662746869986 : "",45662746902754 : "",45662746935522 : "",45662746968290 : "",45662747001058 : "",45662747033826 : "",45662747066594 : "",45662747099362 : "",45662747132130 : "",45662747164898 a class="product__media product__media--featured" href="/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)"> SETTINGS_CACHE_DURATION) { console.debug('STOQ - settings changed recently, skipping cache'); return null; } return settings; } catch (error) { con
    : "",45662747197666 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {45662746804450 : null,45662746837218 : null,45662746869986 : null,45662746902754 : null,45662746935522 : null,45662746968290 : null,45662747001058 : null,45662747033826 : null,45662747066594 : null,45662747099362 : null,45662747132130 : null,45662747164898 : null,45662747197666 : null,}; window._RestockRocketConfig.selected_variant_id = 45662747197666; 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/019b08ef-eea8-746d-807f-b70c50171bc3/restock-rocket-shopify-404/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b08ef-eea8-746d-807f-b70c50171bc3/restock-rocket-shopify-404/assets/restockrocket-collec< sole.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 || !settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); tion.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 span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE
    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[key]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No transl 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; 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 - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocket 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 ||

    Product Detailsled: 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 if (attempt fined && 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?.theme?.role === 'main') { headers['X-Shopify-Th

    The all-new NANO Series, Voiles smallest straps yet! 1/2″ thick, this micro version of our time tested tiedown offers the same versatility in an even smaller package. 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(); } onsole.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)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._Rest

    pLoadedEvent = 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'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', err
    <
    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)">



    >

    FAQ

    Questions and answers