Yeti Cycles ASR T-Series 29" Frame
£3,799.00
Voile 25″ Aluminium Buckle Strap
Product DetailsVoile 25″ Aluminium Buckle Strap
A decade ago we peaced out of the lycra game. While we were busy getting down, XC got a lot more X, calling for the comeback of a legend. Flashing a crazy-light, zero-redundant carbon layup that's far beyond the previously possible. Featuring 115mm of flex stay suspension for 100% usable travel, and energy saving small-bump compliance. Helping today's racers be faster where they have to be. On first blush it may appear to have peers, but don't get it twisted. The reincarnated ASR is a lot like nothing else .
Color120 MM
GreenFORK TRAVEL
29"Navy
WHEEL SIZE
66.5°
HEAD TUBE ANGLE
75.5°
EFF. SEAT ANGLE
HIGHLIGHTS
- RockShox SID Ultimate 3-Position Flight Attendant and
RockShox SIDLuxe Ultimate 3-Position Flight Attendant shockYellow - RockShox Reverb AXS dropper post
- SRAM XX SL Transmission drivetrain with power meter
- DT Swiss XRC1200 wheels Pink
- ESI Chunky grips
- Wireless Only Frame
- 1,448g (Frame No shock) 1813g (Frame and shock)
T3
- RockShox SID Ultimate 3P and RockShox SIDLuxe Ultimate
3P shock with TwistLoc ULT remote lockout
Color - Fox Transfer SL dropper post Green
- 180mm front and 160mm rear rotors
- 1,552g (Frame No shock) 1830g (Frame and shock) Select variant dropdown
FRAME HIGHLIGHTSRed - £15.00 GBP
Yellow - £15.00 GBP-
Pink - £15.00 GBP
- 66.5 - DEGREE head TUBE angleOrange - £15.00 GBP
- 75.5 - DEGREE SEAT TUBE ANGLE
- 115MM REAR TRAVEL PAIRED WITH A 120MM FORKQuantity:
- SIZES XS-XL1
- SUSPENSION LOCKOUT FRAME ROUTING
- Optional custom chain guide1+
- Threaded BB
- 28-36t Max (38t MD-XL) chainring compatability
-
These Voile Straps® are made of tough stretch polyurethane, with a UV-resistant additive to increase their lifespan.
-
OUR FASTEST CLIMBING POSITIONTheir heat-treated aluminum buckle features a slim profile for packing efficiency and extra durability.
Puts riders in a power position to efficiently spin, evenly weight the wheels for traction, and transition more smoothly from saddle to full-throttle sprinting.
Few 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.
On the job, in the outdoors, and everywhere in between: they are the definitive way to
-
secure
-
, MORE RESPONSIVE, NO TWITCHbundle
Modern XC rewards brilliant passing, which takes brilliant cornering. The ASR’s forward-bias geometry delivers responsive steering and predictable characteristics to slash fast., and
repair
-
Load Circumference Min — Max:“JUST RIGHT” BB HEIGHT 5.1in — 22.4in / 13cm — 57cm
A bottom-bracket positioned high enough to pedal through rock gardens, but low enough to sit below the axles for rail-like cornering thanks to that coveted, “in bike” feel.Material:
UV-Resistant Polyurethane
SIZE SPECIFIC STIFFNESS.
FINE-TUNED.
Another goal was to engineer each frame for the same ride{"id":8628283179234,"title":"Voile 25″ Aluminium Buckle Strap","handle":"voile-25-aluminium-buckle-strap","description":"\u003cdiv class=\"woocommerce-tabs wc-tabs-wrapper\"\u003e\n\u003cdiv class=\"woocommerce-Tabs-panel woocommerce-Tabs-panel--description panel entry-content wc-tab\" id=\"tab-description\" role=\"tabpanel\" aria-labelledby=\"tab-title-description\"\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 heat-treated aluminum buckle features a slim profile for packing efficiency and extra durability.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eFew 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.\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\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-04T14:32:11+01:00","created_at":"2024-07-04T14:28:52+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":45662934728930,"title":"Green","option1":"Green","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":45662934761698,"title":"Navy","option1":"Navy","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium Buckle Strap - Navy","public_title":"Navy","options":["Navy"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662934794466,"title":"Blue","option1":"Blue","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":45662934827234,"title":"Black","option1":"Black","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":45662934860002,"title":"Red","option1":"Red","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":45662934892770,"title":"Yellow","option1":"Yellow","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":[]},{"id":45662934925538,"title":"Pink","option1":"Pink","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium Buckle Strap - Pink","public_title":"Pink","options":["Pink"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662934958306,"title":"Orange","option1":"Orange","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-yellow-1.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-black-1.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-blue-1.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-cyan-1.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-green-1-1024x1024.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-magenta-1-1024x1024.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-orange-1.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-red-1-1024x1024.jpg?v=1720099843"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-yellow-1.jpg?v=1720099843","options":["Color"],"media":[{"alt":null,"id":34187356831970,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-yellow-1.jpg?v=1720099843"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-yellow-1.jpg?v=1720099843","width":1999},{"alt":null,"id":34187356864738,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-black-1.jpg?v=1720099843"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-black-1.jpg?v=1720099843","width":2000},{"alt":null,"id":34187356897506,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-blue-1.jpg?v=1720099843"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-blue-1.jpg?v=1720099843","width":2000},{"alt":null,"id":34187356930274,"position":4,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-cyan-1.jpg?v=1720099843"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-cyan-1.jpg?v=1720099843","width":1999},{"alt":null,"id":34187356963042,"position":5,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-green-1-1024x1024.jpg?v=1720099843"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-green-1-1024x1024.jpg?v=1720099843","width":1024},{"alt":null,"id":34187356995810,"position":6,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-magenta-1-1024x1024.jpg?v=1720099843"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-magenta-1-1024x1024.jpg?v=1720099843","width":1024},{"alt":null,"id":34187357028578,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-orange-1.jpg?v=1720099843"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-orange-1.jpg?v=1720099843","width":2000},{"alt":null,"id":34187357061346,"position":8,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-red-1-1024x1024.jpg?v=1720099843"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-red-1-1024x1024.jpg?v=1720099843","width":1024}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cdiv class=\"woocommerce-tabs wc-tabs-wrapper\"\u003e\n\u003cdiv class=\"woocommerce-Tabs-panel woocommerce-Tabs-panel--description panel entry-content wc-tab\" id=\"tab-description\" role=\"tabpanel\" aria-labelledby=\"tab-title-description\"\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 heat-treated aluminum buckle features a slim profile for packing efficiency and extra durability.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eFew 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.\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\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"}
characteristics to give every rider the same feel, regardless of size.
Every ASR frame has size-specific carbon schedules tuning at a much more[]
sensitive level, and accurately matching torsional stiffness and
chassis-flex profiles too. Tedious? Yes. Worth it? Absolutely.
A LEGACY OF FLEX.Would you like to add on any equipment?
The year was 2003 – our flex stay design was a decades ahead approach to XC full suspension. Today, the reincarnated ASR considers the relationships between leverage rate, link size, material properties of the carbon layup and modern short stroke shocks to deliver responsive, efficient, and astonishingly light XC-specific suspension.
AMPLE TYRE CLEARANCE FOR
SIZE GUIDE
| X-SMALL | 4'10" - 5'3" | ||||
| < | a class="product__media product__media--featured" href="/products/hire-ortlieb-40l-pannier-bags" title="Hire Ortlieb 40L Pannier Bags" aria-label="Hire Ortlieb 40L Pannier Bags" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_600x.jpg?v=1741085512)"> 5'1" - 5'7"< | span class="visually-hidden">Hire Ortlieb 40L Pannier Bags >||||
| MEDIUM | £0.005'5" - 5'11" | HIRE - BIKE PACKING BUNDLE||||
| 5'10" - 6'3" | < div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_1296x_d1ffd242-63bc-4a9f-85e2-400f274532d7_600x.jpg?v=1747481423)"> | ||||
| X-LARGE | HIRE - BIKE PACKING BUNDLE | £0.00 | 6'1" - 6'7" |
THE REINCARNATED ASR
Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cableA LOT £0.00like NOTHING ELSE
SPECIFICATION
| SHOCKProjektRide | Buy Sell Ride ConfidentROCKSHOX SID LUXE ULTIMATE 3P REMOTE |
Please note: Specifications are subject to change without notice.
GEOMETRYI'm looking to find out more information about a product, where can I find this?
All measurements are shown in millimetres.

| 410Skip to content | img src="//projektride.co.uk/cdn/shop/files/logo_header_2048x2048.png?v=1634060673" alt="" class="logo--footer"> #shopify-section-announcement-bar { background: #f14d38; color: #ccbebe; }430 | 470QUICK LINKSThis site has limited support for your browser. We recommend switching to Edge, Chrome, Safari, or Firefox. | 495About Us | Contact Us|||
| BBuilding Your Bike From the Box | Insure Your BikeEFF. TOP TUBE LENGTHPrivacy PolicyHome | Cookie Policy554Terms of Service | Refund policyHire574 | 600SERVICESBikes | 623ServicingSee More | Workshop Prices653Cycle to Work | Delivery & Returns
| C See More | INFORMATIONHEAD TUBE ANGLE | 66.5 Shop All New Bikes | 66.5Working Hours | 66.5Road / Gravel / Touring Bikes Mon - Fri: 09:00 - 18:30 | Sat: 9:00 - 16:0066.5 Sun: Closed | Hybrid / City Bikes66.5 |
| D 0131 374 5324 | Electric BikesEFF. SEAT TUBE ANGLE | 75.5Kids BikesLocation | 75.5 82 Newington Road | FramesEdinburgh75.5 EH9 1QN | 75.5 | Shop by Brand75.5See MoreEmail |
| EGloria | ACTUAL SEATTUBE ANGLE | Trek70.4 | 70.8Amflow | 71.2 © 2026, | YetiProjektRide71.6 . | 72.1Ridgeback Website by | Juan Borges Designs
| F | CHAINSTAY LENGTHGenesis | 433 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.liquidRenderedAt = 1773482152;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-12-28T14:44:23.508Z","enable_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":{"disableDebugLoggingForNonPreorderItem":false},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone 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_allowed_countries":[],"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_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_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":null,"push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission 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 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_enabled":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_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,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":0,"market_setup_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":null,"preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","cache":true,"cached_at":"2026-01-08T16:12:13.364Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,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,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,43936331661538,43936332349666,43936333103330,43936351224034,43936353714402,43936362889442,43936362922210,43936388153570,43936389333218,43936395526370,43936398508258,43936401522914,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,43981392773346,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,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-03-14T09:45:40Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-03-14T09:53:01Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-03-14T09:53:01Z","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":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,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,"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,"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_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"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,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}];(function() { const cachedData = {"plans":[{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,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,"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,"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_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"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,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}],"disabled_plan_ids":[713813721471,713176482175],"cached_at":"2026-02-18T08:36:42Z"}; if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) { // Find the maximum updated_at from all items in old array const oldPlans = window._RestockRocketConfig.sellingPlans; const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0 ? oldPlans.reduce(function(max, plan) { // Parse dates for proper comparison (handles mixed ISO formats) if (plan.updated_at) { const planDate = new Date(plan.updated_at); const maxDate = max ? new Date(max) : null; return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max; } return max; }, '') : null; // Use cached if old array is empty/has no timestamps, or cached is newer // Parse dates for comparison to handle format differences (+00:00 vs .000Z) const cachedDate = new Date(cachedData.cached_at); const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null; const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate)); if (useCached) { if (Array.isArray(cachedData.plans)) { window._RestockRocketConfig.sellingPlans = cachedData.plans; // Only use disabled_plan_ids when using cached plans window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || []; console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')'); } } else { // When using old format (stale cache), don't trust disabled_plan_ids window._RestockRocketConfig.disabledSellingPlanIds = []; console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')'); } } })();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,"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.product = {"id":8628283179234,"title":"Voile 25″ Aluminium Buckle Strap","handle":"voile-25-aluminium-buckle-strap","description":"\u003cdiv class=\"woocommerce-tabs wc-tabs-wrapper\"\u003e\n\u003cdiv class=\"woocommerce-Tabs-panel woocommerce-Tabs-panel--description panel entry-content wc-tab\" id=\"tab-description\" role=\"tabpanel\" aria-labelledby=\"tab-title-description\"\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 heat-treated aluminum buckle features a slim profile for packing efficiency and extra durability.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eFew 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.\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\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-04T14:32:11+01:00","created_at":"2024-07-04T14:28:52+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":45662934728930,"title":"Green","option1":"Green","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":45662934761698,"title":"Navy","option1":"Navy","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium Buckle Strap - Navy","public_title":"Navy","options":["Navy"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662934794466,"title":"Blue","option1":"Blue","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":45662934827234,"title":"Black","option1":"Black","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":45662934860002,"title":"Red","option1":"Red","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":45662934892770,"title":"Yellow","option1":"Yellow","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":[]},{"id":45662934925538,"title":"Pink","option1":"Pink","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium Buckle Strap - Pink","public_title":"Pink","options":["Pink"],"price":1500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45662934958306,"title":"Orange","option1":"Orange","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Voile 25″ Aluminium 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":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-yellow-1.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-black-1.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-blue-1.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-cyan-1.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-green-1-1024x1024.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-magenta-1-1024x1024.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-orange-1.jpg?v=1720099843","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-red-1-1024x1024.jpg?v=1720099843"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-yellow-1.jpg?v=1720099843","options":["Color"],"media":[{"alt":null,"id":34187356831970,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-yellow-1.jpg?v=1720099843"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-yellow-1.jpg?v=1720099843","width":1999},{"alt":null,"id":34187356864738,"position":2,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-black-1.jpg?v=1720099843"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-black-1.jpg?v=1720099843","width":2000},{"alt":null,"id":34187356897506,"position":3,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-blue-1.jpg?v=1720099843"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-blue-1.jpg?v=1720099843","width":2000},{"alt":null,"id":34187356930274,"position":4,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-cyan-1.jpg?v=1720099843"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-cyan-1.jpg?v=1720099843","width":1999},{"alt":null,"id":34187356963042,"position":5,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-green-1-1024x1024.jpg?v=1720099843"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-green-1-1024x1024.jpg?v=1720099843","width":1024},{"alt":null,"id":34187356995810,"position":6,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-magenta-1-1024x1024.jpg?v=1720099843"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-magenta-1-1024x1024.jpg?v=1720099843","width":1024},{"alt":null,"id":34187357028578,"position":7,"preview_image":{"aspect_ratio":1.0,"height":2000,"width":2000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-orange-1.jpg?v=1720099843"},"aspect_ratio":1.0,"height":2000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-orange-1.jpg?v=1720099843","width":2000},{"alt":null,"id":34187357061346,"position":8,"preview_image":{"aspect_ratio":1.0,"height":1024,"width":1024,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-red-1-1024x1024.jpg?v=1720099843"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-25-inch-aluminum-buckle-red-1-1024x1024.jpg?v=1720099843","width":1024}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cdiv class=\"woocommerce-tabs wc-tabs-wrapper\"\u003e\n\u003cdiv class=\"woocommerce-Tabs-panel woocommerce-Tabs-panel--description panel entry-content wc-tab\" id=\"tab-description\" role=\"tabpanel\" aria-labelledby=\"tab-title-description\"\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 heat-treated aluminum buckle features a slim profile for packing efficiency and extra durability.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eFew 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.\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\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 = {45662934728930 : "deny",45662934761698 : "deny",45662934794466 : "deny",45662934827234 : "deny",45662934860002 : "deny",45662934892770 : "deny",45662934925538 : "deny",45662934958306 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {45662934728930 : parseInt("1"),45662934761698 : parseInt("1"),45662934794466 : parseInt("1"),45662934827234 : parseInt("1"),45662934860002 : parseInt("1"),45662934892770 : parseInt("1"),45662934925538 : parseInt("1"),45662934958306 : parseInt("1"),}; window._RestockRocketConfig.variantsPreorderCount = {45662934728930 : parseInt(""),45662934761698 : parseInt(""),45662934794466 : parseInt(""),45662934827234 : parseInt(""),45662934860002 : parseInt(""),45662934892770 : parseInt(""),45662934925538 : parseInt(""),45662934958306 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {45662934728930 : null,45662934761698 : null,45662934794466 : null,45662934827234 : null,45662934860002 : null,45662934892770 : null,45662934925538 : null,45662934958306 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {45662934728930 : parseInt(""),45662934761698 : parseInt(""),45662934794466 : parseInt(""),45662934827234 : parseInt(""),45662934860002 : parseInt(""),45662934892770 : parseInt(""),45662934925538 : parseInt(""),45662934958306 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {45662934728930 : null,45662934761698 : null,45662934794466 : null,45662934827234 : | null,45662934860002 : null,45662934892770 : null,45662934925538 : null,45662934958306 : null,}; window._RestockRocketConfig.variantsShippingText = {45662934728930 : "",45662934761698 : "",45662934794466 : "",45662934827234 : "",45662934860002 : "",45662934892770 : "",45662934925538 : "",45662934958306 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {45662934728930 : null,45662934761698 : null,45662934794466 : null,45662934827234 : null,45662934860002 : null,45662934892770 : null,45662934925538 : null,45662934958306 : null,}; window._RestockRocketConfig.selected_variant_id = 45662934728930; 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/019cd40b-736e-74a5-adbe-431365bfd910/restockrocket-1-465/assets/restockrocket-product.js' window. Singular_RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019cd40b-736e-74a5-adbe-431365bfd910/restockrocket-1-465/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 const LIQUID_CACHE_MAX_AGE = 2 * 60 * 60; // 2 hours in seconds // Calculate Liquid cache freshness once at initialization const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt; // Validate timestamp and calculate cache age if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { const now = Math.floor(Date.now() / 1000); // Current time in seconds const liquidCacheAge = now - liquidRenderedAt; // Age in seconds // Handle client clock ahead of server if (liquidCacheAge 435 < | 0) { console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else if (liquidCacheAge <= LIQUID_CACHE_MAX_AGE) { console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`); window._RestockRocketConfig.isLiquidCacheFresh = false; } } 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 437Enigmatranslation 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._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 || 439 !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[key | ]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translations; return settings; } catch (e) { console.debug('STOQ - error applying translations:', e); return settings; } } // Setup event listener for cart selling plan updates // This must be called before any scripts are loaded to avoid race conditions function setupCartSellingPlanUpdater(settings) { // Setup listener regardless - updateCartSellingPlans has its own guards // This ensures cleanup happens even when preorders are disabled globally // Listen for stoq:inventory-data-loaded event dispatched by api.js window.addEventListener('stoq:inventory-data-loaded', function(event) { console.debug('STOQ - Inventory data loaded, updating cart selling plans'); if (window._RestockRocket Frog && 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); }); } }); } // 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-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(cac441 hedSettings); } 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}`); // Setup cart selling plan updater BEFORE loading any scripts to avoid race conditions setupCartSellingPlanUpdater(settings); 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._RestockRocketCon | fig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript(window._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 enab led for ${window._RestockRocketConfig.pageType}`); } // Dispatch custom event when app is loaded // Cart selling plan updates will be triggered by stoq:inventory-data-loaded event const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings, preorderEnabled: settings.preorder_enabled } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } }
| G .restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#ebebeb;height:25px;line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14px;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@media (max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}.restock-rocket-preorder-progress-bar{padding:12px 15px;margin-bottom:20px;font-family:inherit;}.restock-rocket-preorder-progress-bar .preorder-progress-text{margin-bottom:8px;}.restock-rocket-preorder-progress-bar .preorder-progress-bar-row{display:flex;align-items:center;gap:10px;}.restock-rocket-preorder-progress-bar .preorder-progress-track{flex:1;height:12px;overflow:hidden;}.restock-rocket-preorder-progress-bar .preorder-progress-fill{display:block;height:100%;min-width:2px;transition:width 0.3s ease;}.restock-rocket-preorder-progress-bar .preorder-progress-percentage{font-weight:500;min-width:35px;text-align:right;} | SurlyWHEELBASE | 1122UTO (ex Eovolt) | ||||
| 335See More | 335 | 335Custom Builds for sale | 335 | Custom Build Inspiration335 | ||
| I | ServicesSTANDOVER | See More768 | 768 | 771Workshop | See More771 | 776 | Workshop Prices
| JBook a Service | HEAD TUBE LENGTH | Track Your Service92 | 92 | Other101See More | 111 | 133Custom Builds |
| K | FORK (AXLE TO CROWN)Insure Your Bike | 530 | 530 | 530Parts & Components | 530See More | 530 |
| LSee More | FORK (OFFSET) | 44Hope | 44 | Enve44 | 44 | Cockpit44See More |
| MHandlebars | STACK | Stems592 | 592Grips & Bar-Tape | 600 | Headsets610 | 630 | Brakes
| N | REACHComplete Brakes | 400 | Brake Rotors420 | 445Brake Pads | 465 | Brake Spares490 |
| O | ||||||
<
li class="result">
<
div class="result__image-img product__media lazyload fade-in"
data-bgset="{{ it.product.image.thumb }}"
data-aspectratio="{{ it.product.image.aspectRatio }}"
data-sizes="auto">
{{@if(it.product.badgeText)}}
