For riders looking for carbon performance and a cherry-picked blend of component upgrades, the Slash 9.8 GX AXS T-Type is ready to rip. It's built with 170 mm travel in the front and rear, upgraded suspension and drivetrain, plus carbon hoops, so you can climb light and descend hard.
Click here
to get in touch and get the ball rolling!Its high-pivot suspension gives you insane control for hairy descents, while carefully tuned anti-squat and oversized pulleys make pedalling astonishingly efficient
The long, 170 mm/170 mm front and rear travel is more than enough for stomping big jumps and cleaning rock gardens
The Speed Concept SLR 9 AXS is an aerodynamic carbon triathlon bike engineered for incredible speed and seamless integration. Every bit of this bike – from the light aero frame to ride-smoothing IsoSpeed, cutting-edge fuel and hydration systems, and a SRAM RED AXS wireless electronic drivetrain – has been painstakingly designed to help you beat your PR again... and again... and again.
OCLV Mountain Carbon frame and wheels keep your ride light, stiff in all the right places, and smooth and quiet through the chunder
It comes ready to roll with a mixed wheel set-up that gives you a fast-rolling 29 in front hoop and stiff, yet nimble 27.5 in rear wheel, and can be set up as a 29er for more speed
It's right for you if...
You can tweak Slash for how and where you ride with an adjustable leverage rate, bolt-on lower shock mount for swapping to full 29er and adjustable-angle headset (sold separately)
You leave it all on the course and want a tri bike that does the same. You want blazing-fast aero speed, SRAM’s wireless electronic drivetrain for precise shifts and loads of integrated accessories that make hydrating and re-fuelling easy.
The tech you get
*Please note – spec applies to all sizes unless listed separately
Ultra-lightweight 800 Series OCLV Carbon frame, drag-reducing Kammtail Virtual Foil (KVF) tube shaping, Speed Concept full foil carbon fork, road-smoothing IsoSpeed, integrated fuel storage, hydration and flat kit storage, SRAM RED AXS wireless electronic 12-speed drivetrain with SRAM AXS Blips shifters, a RED AXS power meter, fully integrated handlebar and stem, Bontrager Hilo Pro Carbon triathlon-specific saddle for an aggressive aero position, disc brakes for reliable stopping power and aero Bontrager Aeolus RSL 51 OCLV Carbon wheels.
Frameset
The final wordFrame OCLV Mountain Carbon, high main pivot, idler pulley, internal storage, angle-adjust headset, adjustable leverage rate, integrated frame protection, internal routing, alloy rocker link, ISCG 05, Active Braking Pivot, UDH, 148x12 mm thru axle, 170 mm travel
The Speed Concept is as fast as it is smart. It's simple, thoughtful design and integrated features ensure a less stressful race day, help you achieve your fastest bike splits ever and set you up for a successful run. The SLR 9 also gives you the performance boost of SRAM's RED AXS wireless electronic drivetrain and high-end Bontrager OCLV Carbon wheels.Shock RockShox Vivid Select+, 230 mm x 65 mm
Max compatible fork travel 190 mm (606 mm axle-to-crown), S: 190 mm (587 mm axle-to-crown)
How tall are you?
Wheels
To measure your height, stand up straight, barefoot, with your back, heels, shoulders and head all touching a wall. While looking straight ahead, place a book or straight edge on your head and slowly push it against the wall. Your straight edge should be parallel with the floor. Mark the spot where the bottom of the book is touching the wall. The distance from the marked spot to the floor is your height.*Wheel front Size: S
Bontrager Line Comp 30, Tubeless Ready, 6-bolt, Boost110, 15 mm thru axle, 27.5"
What is your inside leg?Size: M, ML, L, XL
Bontrager Line Comp 30, Tubeless Ready, 6-bolt, Boost110, 15 mm thru axle, 29"
How to measure: Stand barefoot with your back straight and against a wall. Tuck a ruler or something that extends to the floor between your legs. Using both hands, and keeping it level, pull the ruler up into your crotch as if you were sitting on the saddle. Measure the distance from the top edge of the ruler to the ground to find your inside leg measurement. Your inside leg is very important to your final bike size so please measure carefully.Wheel rear Bontrager Line Comp 30, Tubeless Ready, Rapid Drive 108, 6-bolt, Boost148, 12mm thru axle, 27.5''
*Tyre Size: S , M, ML, L, XL
Bontrager SE5 Team Issue, Tubeless Ready, Core Strength sidewalls, aramid bead, 60 tpi, 27.5 x 2.50"
Size: M, ML, L, XL
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 = 1776359325;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,43981392806114,43981392904418,43981392937186,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140279791842,44140279824610,44140279857378,44140279890146,44140279922914,44140292047074,44140292079842,44140292112610,44140293685474,44140302336226,44140302434530,44140302500066,44140302532834,44140302565602,44140302598370,44140302631138,44140302827746,44140302893282,44140302926050,44140315050210,44140317016290,44140321636578,44140335792354,44140335825122,44140335857890,44140339953890,44140339986658,44140340150498,44140340248802,44140340281570,44140340543714,44140340707554,44140340740322,44140340773090,44140345065698,44140352438498,44140388155618,44140388188386,44140397756642,44140404441314,44140404474082,44155590508770,44155590574306,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594408162,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136716002,44957136748770,44957136781538,44957136847074,44957136912610,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,46016406487266,55193312788863,55193316786559,55569712382335,55569712415103,55569712447871,55569712480639,55570017616255,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814967167,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-04-16T17:05:08Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null,"bulk_operation":true};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-04-16T16:40:02Z","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-04-16T16:40: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_enabled":true,"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,"pr
eorder_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 ogress_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,714631872895],"cached_at":"2026-04-09T09:16:46Z"};
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.enabledNotifyMeVariantIds = [];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};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.obfu
scateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":14996475609471,"title":"Trek Slash 9.8 GX AXS T-Type Gen 6","handle":"slash-9-8-gx-axs-t-type-gen-6","description":"\u003cdiv class=\"b2b-buying-zone__info cell medium-6 large-12\" data-v-e224ae82=\"\"\u003e\n\u003cdiv class=\"buying-zone__positioning-statement mb-2 pt-2 border-t border-gray-10\" data-v-e224ae82=\"\"\u003e\n\u003cp data-v-e224ae82=\"\"\u003e\u003cstrong\u003eThe Slash 9.8 GX AXS T-Type is a carbon enduro mountain bike that doesn't back down from hair-raising descents. It's built with an OCLV Mountain Carbon frame and 170 mm high-pivot suspension for gobbling up boulders and keeping traction on-point for wall rides and punchy climbs. A 29˝ front and 27.5˝ rear wheel keep handling playful, and an upgraded RockShox suspension package holds up to anything you can throw at it. Plus, it comes equipped with a wireless SRAM GX AXS transmission that keeps shifts on-point, even under load.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cdiv class=\"kf-block--intro cell small-12 large-4 mb-4\"\u003e\n\u003ch3 class=\"header--md mb-1\"\u003eIt's right for you if...\u003c\/h3\u003e\n\u003cp\u003eYou want a carbon enduro bike that's beastly on descents and nimble on climbs. You want the traction and stability of a high-pivot suspension, and long travel for soaking up deep roots and big drops. Upgrades matter to you, and you love the benefit of a wireless transmission and carbon wheels.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kf-block--intro cell small-12 large-4 mb-4\"\u003e\n\u003ch3 class=\"header--md mb-1\"\u003eThe tech you get\u003c\/h3\u003e\n\u003cp\u003eAn OCLV Mountain Carbon frame with high pivot suspension and idler pulley, plus internal storage. 170 mm of front and rear travel with a RockShox ZEB Select+ fork with DebonAir spring and Charger 3.1 RC2 damper and RockShox Vivid Select+ shock. Plenty of gears for punchy climbs with SRAM's wireless GX AXS transmission, a Bontrager Line Dropper and a MX wheel set-up with
29 in front and 27.5 in rear carbon Bontrager Line Elite 30 Tubeless Ready wheels with Rapid Drive hub.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kf-block--intro cell small-12 large-4 mb-4\"\u003e\n\u003ch3 class=\"header--md mb-1\"\u003eThe final word\u003c\/h3\u003e\n\u003cp\u003eFor riders looking for carbon performance and a cherry-picked blend of component upgrades, the Slash 9.8 GX AXS T-Type is ready to rip. It's built with 170 mm travel in the front and rear, upgraded suspension and drivetrain, plus carbon hoops, so you can climb light and descend hard.\u003c\/p\u003e\n\u003col class=\"kf-ordered\"\u003e\n\u003cli class=\"mb-1 pl-4\"\u003eIts high-pivot suspension gives you insane control for hairy descents, while carefully tuned anti-squat and oversized pulleys make pedalling astonishingly efficient\u003c\/li\u003e\n\u003cli class=\"mb-1 pl-4\"\u003eThe long, 170 mm\/170 mm front and rear travel is more than enough for stomping big jumps and cleaning rock gardens\u003c\/li\u003e\n\u003cli class=\"mb-1 pl-4\"\u003eOCLV Mountain Carbon frame and wheels keep your ride light, stiff in all the right places, and smooth and quiet through the chunder\u003c\/li\u003e\n\u003cli class=\"mb-1 pl-4\"\u003eIt comes ready to roll with a mixed wheel set-up that gives you a fast-rolling 29 in front hoop and stiff, yet nimble 27.5 in rear wheel, and can be set up as a 29er for more speed\u003c\/li\u003e\n\u003cli class=\"mb-1 pl-4\"\u003eYou can tweak Slash for how and where you ride with an adjustable leverage rate, bolt-on lower shock mount for swapping to full 29er and adjustable-angle headset (sold separately)\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0605\/5306\/8770\/files\/MTB_OverviewId_7_16_24.png?v=1742839414\"\u003e\u003c\/p\u003e\n\u003cp\u003e*Please note – spec applies to all sizes unless listed separately\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eFrameset\u003cbr\u003eFrame OCLV Mountain Carbon, high main pivot, idler
pulley, internal storage, angle-adjust headset, adjustable leverage rate, integrated frame protection, internal routing, alloy rocker link, ISCG 05, Active Braking Pivot, UDH, 148x12 mm thru axle, 170 mm travel\u003cbr\u003eFork RockShox ZEB Select+, DebonAir spring, Charger 3.1 RC2 damper, tapered steerer, 44 mm offset, Boost110, Maxle Stealth, 170 mm travel\u003cbr\u003eShock RockShox Vivid Select+, 230 mm x 65 mm\u003cbr\u003eMax compatible fork travel 190 mm (606 mm axle-to-crown), S: 190 mm (587 mm axle-to-crown)\u003c\/p\u003e\n\u003cp\u003eWheels\u003cbr\u003e*Wheel front Size: S\u003cbr\u003eBontrager Line Comp 30, Tubeless Ready, 6-bolt, Boost110, 15 mm thru axle, 27.5\"\u003cbr\u003eSize: M, ML, L, XL\u003cbr\u003eBontrager Line Comp 30, Tubeless Ready, 6-bolt, Boost110, 15 mm thru axle, 29\"\u003cbr\u003eWheel rear Bontrager Line Comp 30, Tubeless Ready, Rapid Drive 108, 6-bolt, Boost148, 12mm thru axle, 27.5''\u003cbr\u003e*Tyre Size: S , M, ML, L, XL\u003cbr\u003eBontrager SE5 Team Issue, Tubeless Ready, Core Strength sidewalls, aramid bead, 60 tpi, 27.5 x 2.50\"\u003cbr\u003eSize: M, ML, L, XL\u003cbr\u003eBontrager SE5 Team Issue, Tubeless Ready, Core Strength sidewalls, aramid bead, 60 tpi, 29x2.50\"\u003cbr\u003eTyre part Bontrager TLR sealant, 180 ml\/6 oz\u003cbr\u003eMax tyre size Frame: 29x2.50\", Fork: See manufacturer\u003c\/p\u003e\n\u003cp\u003eE-system\u003cbr\u003eBattery SRAM eTap battery pack (with charger)\u003c\/p\u003e\n\u003cp\u003eDrivetrain\u003cbr\u003eShifter SRAM AXS POD\u003cbr\u003eRear derailleur SRAM GX Eagle AXS, T-Type\u003cbr\u003eCrank SRAM GX Eagle, DUB MTB Wide, T-Type, 30T, 55 mm chain line, 165 mm length\u003cbr\u003eBottom bracket SRAM DUB MTB Wide, 73 m, BSA threaded\u003cbr\u003eCassette SRAM Eagle XS-1275, T-Type, 10-52, 12-speed\u003cbr\u003eChain SRAM GX Eagle, T-Type, 12-speed\u003cbr\u003eMax. chainring size 1x: 34T round, 32T oval, min 28T\u003c\/p\u003e\n\u003cp\u003eComponen
ts\u003cbr\u003eSaddle Verse Short Comp, steel rails, 145 mm width\u003cbr\u003e*Seatpost Size: S\u003cbr\u003eBontrager Line Dropper, 100mm travel, MaxFlow, internal routing, 34.9 mm, 310mm length\u003cbr\u003eSize: M, ML, L, XL\u003cbr\u003eBontrager Line Elite Dropper, 150 mm travel, MaxFlow, internal routing, 34.9 mm, 440 mm length\u003cbr\u003eHandlebar Bontrager Line Pro, OCLV Carbon, 35 mm, 27.5 mm rise, 820 mm width\u003cbr\u003eGrips Bontrager XR Trail Pro, alloy lock-on\u003cbr\u003eStem Bontrager Line Pro, 35 mm, Blendr-compatible, 0-degree, 35 mm length\u003cbr\u003eBrake SRAM CODE Bronze 4-piston hydraulic disc\u003cbr\u003eBrake rotor SRAM CentreLine, 6-bolt, round-edge, 200 mm\u003cbr\u003eRotor size Max brake rotor sizes - Frame: 220mm, Fork: see fork manufacturer\u003c\/p\u003e\n\u003cp\u003eWeight\u003cbr\u003eWeight M - 15.83 kg \/ 34.9 lbs (with TLR sealant, no tubes)\u003cbr\u003eWeight limit This bike has a maximum total weight limit (combined weight of bicycle, rider and cargo) of 136 kg (300 lb).\u003cbr\u003eWe reserve the right to make changes to the product information contained on this site at any time without notice, including with respect to equipment, specifications, models, colours, materials and pricing. Due to supply chain issues, compatible parts may be substituted at any time without notice.\u003c\/p\u003e\n\u003cp\u003eBike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","published_at":"2025-03-24T18:13:07+00:00","created_at":"2025-03-24T18:13:07+00:00","vendor":"Trek","type":"Bicycles","tags":["Slash"],"price":750000,"price_min":750000,"price_max":750000,"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":55239714341247,"title":"XS","option1":"XS","option2":null,"option3":n
ull,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Slash 9.8 GX AXS T-Type Gen 6 - XS","public_title":"XS","options":["XS"],"price":750000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":55239714374015,"title":"S","option1":"S","option2":null,"option3":null,"sku":"5324155","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Slash 9.8 GX AXS T-Type Gen 6 - S","public_title":"S","options":["S"],"price":750000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":55239714406783,"title":"M","option1":"M","option2":null,"option3":null,"sku":"5324156","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,
"name":"Trek Slash 9.8 GX AXS T-Type Gen 6 - M","public_title":"M","options":["M"],"price":750000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":55239714439551,"title":"ML","option1":"ML","option2":null,"option3":null,"sku":"5324157","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Slash 9.8 GX AXS T-Type Gen 6 - ML","public_title":"ML","options":["ML"],"price":750000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":55239714472319,"title":"L","option1":"L","option2":null,"option3":null,"sku":"5324158","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek Slash 9.8 GX AXS T-Type Gen 6 - L","public_title":"L","options":["L"],"price":7
50000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":55239714505087,"title":"XL","option1":"XL","option2":null,"option3":null,"sku":"5324159","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek Slash 9.8 GX AXS T-Type Gen 6 - XL","public_title":"XL","options":["XL"],"price":750000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":55239714537855,"title":"XXL","option1":"XXL","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Slash 9.8 GX AXS T-Type Gen 6 - XXL","public_title":"XXL","options":["XXL"],"price":750000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","r
equires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Slash98GXAXS-25-47278-A-Portrait.jpg?v=1742839868","\/\/projektride.co.uk\/cdn\/shop\/files\/Slash98GXAXS-25-47278-A-Alt3.jpg?v=1742839876"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Slash98GXAXS-25-47278-A-Portrait.jpg?v=1742839868","options":["Size"],"media":[{"alt":null,"id":64915894501759,"position":1,"preview_image":{"aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Slash98GXAXS-25-47278-A-Portrait.jpg?v=1742839868"},"aspect_ratio":1.333,"height":1440,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Slash98GXAXS-25-47278-A-Portrait.jpg?v=1742839868","width":1920},{"alt":null,"id":64915896205695,"position":2,"preview_image":{"aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Slash98GXAXS-25-47278-A-Alt3.jpg?v=1742839876
"},"aspect_ratio":1.333,"height":1440,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Slash98GXAXS-25-47278-A-Alt3.jpg?v=1742839876","width":1920}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cdiv class=\"b2b-buying-zone__info cell medium-6 large-12\" data-v-e224ae82=\"\"\u003e\n\u003cdiv class=\"buying-zone__positioning-statement mb-2 pt-2 border-t border-gray-10\" data-v-e224ae82=\"\"\u003e\n\u003cp data-v-e224ae82=\"\"\u003e\u003cstrong\u003eThe Slash 9.8 GX AXS T-Type is a carbon enduro mountain bike that doesn't back down from hair-raising descents. It's built with an OCLV Mountain Carbon frame and 170 mm high-pivot suspension for gobbling up boulders and keeping traction on-point for wall rides and punchy climbs. A 29˝ front and 27.5˝ rear wheel keep handling playful, and an upgraded RockShox suspension package holds up to anything you can throw at it. Plus, it comes equipped with a wireless SRAM GX AXS transmission that keeps shifts on-point, even under
load.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cdiv class=\"kf-block--intro cell small-12 large-4 mb-4\"\u003e\n\u003ch3 class=\"header--md mb-1\"\u003eIt's right for you if...\u003c\/h3\u003e\n\u003cp\u003eYou want a carbon enduro bike that's beastly on descents and nimble on climbs. You want the traction and stability of a high-pivot suspension, and long travel for soaking up deep roots and big drops. Upgrades matter to you, and you love the benefit of a wireless transmission and carbon wheels.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kf-block--intro cell small-12 large-4 mb-4\"\u003e\n\u003ch3 class=\"header--md mb-1\"\u003eThe tech you get\u003c\/h3\u003e\n\u003cp\u003eAn OCLV Mountain Carbon frame with high pivot suspension and idler pulley, plus internal storage. 170 mm of front and rear travel with a RockShox ZEB Select+ fork with DebonAir spring and Charger 3.1 RC2 damper and RockShox Vivid Select+ shock. Plenty of gears for punchy climbs with SRAM's wireless GX AXS transmission, a Bontra
ger Line Dropper and a MX wheel set-up with 29 in front and 27.5 in rear carbon Bontrager Line Elite 30 Tubeless Ready wheels with Rapid Drive hub.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"kf-block--intro cell small-12 large-4 mb-4\"\u003e\n\u003ch3 class=\"header--md mb-1\"\u003eThe final word\u003c\/h3\u003e\n\u003cp\u003eFor riders looking for carbon performance and a cherry-picked blend of component upgrades, the Slash 9.8 GX AXS T-Type is ready to rip. It's built with 170 mm travel in the front and rear, upgraded suspension and drivetrain, plus carbon hoops, so you can climb light and descend hard.\u003c\/p\u003e\n\u003col class=\"kf-ordered\"\u003e\n\u003cli class=\"mb-1 pl-4\"\u003eIts high-pivot suspension gives you insane control for hairy descents, while carefully tuned anti-squat and oversized pulleys make pedalling astonishingly efficient\u003c\/li\u003e\n\u003cli class=\"mb-1 pl-4\"\u003eThe long, 170 mm\/170 mm front and rear travel is more than enough for stomping big jumps and cleaning rock gardens\u003c\/li\u003e\n\u003cli class=\"mb-1 pl-4\"\u003eOCLV Mountain Carbon frame and wheels keep your ride light, stiff in all the right places, and smooth and quiet through the chunder\u003c\/li\u003e\n\u003cli class=\"mb-1 pl-4\"\u003eIt comes ready to roll with a mixed wheel set-up that gives you a fast-rolling 29 in front hoop and stiff, yet nimble 27.5 in rear wheel, and can be set up as a 29er for more speed\u003c\/li\u003e\n\u003cli class=\"mb-1 pl-4\"\u003eYou can tweak Slash for how and where you ride with an adjustable leverage rate, bolt-on lower shock mount for swapping to full 29er and adjustable-angle headset (sold separately)\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003e\u003cimg alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0605\/5306\/8770\/files\/MTB_OverviewId_7_16_24.png?v=1742839414\"\u003e\u003c\/p\u003e\n\u003cp\u003e*Please note – spec applies to all sizes unless listed separately\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eFrameset\u003cbr\u003eFrame O
CLV Mountain Carbon, high main pivot, idler pulley, internal storage, angle-adjust headset, adjustable leverage rate, integrated frame protection, internal routing, alloy rocker link, ISCG 05, Active Braking Pivot, UDH, 148x12 mm thru axle, 170 mm travel\u003cbr\u003eFork RockShox ZEB Select+, DebonAir spring, Charger 3.1 RC2 damper, tapered steerer, 44 mm offset, Boost110, Maxle Stealth, 170 mm travel\u003cbr\u003eShock RockShox Vivid Select+, 230 mm x 65 mm\u003cbr\u003eMax compatible fork travel 190 mm (606 mm axle-to-crown), S: 190 mm (587 mm axle-to-crown)\u003c\/p\u003e\n\u003cp\u003eWheels\u003cbr\u003e*Wheel front Size: S\u003cbr\u003eBontrager Line Comp 30, Tubeless Ready, 6-bolt, Boost110, 15 mm thru axle, 27.5\"\u003cbr\u003eSize: M, ML, L, XL\u003cbr\u003eBontrager Line Comp 30, Tubeless Ready, 6-bolt, Boost110, 15 mm thru axle, 29\"\u003cbr\u003eWheel rear Bontrager Line Comp 30, Tubeless Ready, Rapid Drive 108, 6-bolt, Boost148, 12mm thru axle, 27.5''\u003cbr\u003e*Tyre
Size: S , M, ML, L, XL\u003cbr\u003eBontrager SE5 Team Issue, Tubeless Ready, Core Strength sidewalls, aramid bead, 60 tpi, 27.5 x 2.50\"\u003cbr\u003eSize: M, ML, L, XL\u003cbr\u003eBontrager SE5 Team Issue, Tubeless Ready, Core Strength sidewalls, aramid bead, 60 tpi, 29x2.50\"\u003cbr\u003eTyre part Bontrager TLR sealant, 180 ml\/6 oz\u003cbr\u003eMax tyre size Frame: 29x2.50\", Fork: See manufacturer\u003c\/p\u003e\n\u003cp\u003eE-system\u003cbr\u003eBattery SRAM eTap battery pack (with charger)\u003c\/p\u003e\n\u003cp\u003eDrivetrain\u003cbr\u003eShifter SRAM AXS POD\u003cbr\u003eRear derailleur SRAM GX Eagle AXS, T-Type\u003cbr\u003eCrank SRAM GX Eagle, DUB MTB Wide, T-Type, 30T, 55 mm chain line, 165 mm length\u003cbr\u003eBottom bracket SRAM DUB MTB Wide, 73 m, BSA threaded\u003cbr\u003eCassette SRAM Eagle XS-1275, T-Type, 10-52, 12-speed\u003cbr\u003eChain SRAM GX Eagle, T-Type, 12-speed\u003cbr\u003eMax. chainring size 1x: 34T round, 32T oval, m
in 28T\u003c\/p\u003e\n\u003cp\u003eComponents\u003cbr\u003eSaddle Verse Short Comp, steel rails, 145 mm width\u003cbr\u003e*Seatpost Size: S\u003cbr\u003eBontrager Line Dropper, 100mm travel, MaxFlow, internal routing, 34.9 mm, 310mm length\u003cbr\u003eSize: M, ML, L, XL\u003cbr\u003eBontrager Line Elite Dropper, 150 mm travel, MaxFlow, internal routing, 34.9 mm, 440 mm length\u003cbr\u003eHandlebar Bontrager Line Pro, OCLV Carbon, 35 mm, 27.5 mm rise, 820 mm width\u003cbr\u003eGrips Bontrager XR Trail Pro, alloy lock-on\u003cbr\u003eStem Bontrager Line Pro, 35 mm, Blendr-compatible, 0-degree, 35 mm length\u003cbr\u003eBrake SRAM CODE Bronze 4-piston hydraulic disc\u003cbr\u003eBrake rotor SRAM CentreLine, 6-bolt, round-edge, 200 mm\u003cbr\u003eRotor size Max brake rotor sizes - Frame: 220mm, Fork: see fork manufacturer\u003c\/p\u003e\n\u003cp\u003eWeight\u003cbr\u003eWeight M - 15.83 kg \/ 34.9 lbs (with TLR sealant, no tubes)\u003cbr\u003eWeight limit Thi
s bike has a maximum total weight limit (combined weight of bicycle, rider and cargo) of 136 kg (300 lb).\u003cbr\u003eWe reserve the right to make changes to the product information contained on this site at any time without notice, including with respect to equipment, specifications, models, colours, materials and pricing. Due to supply chain issues, compatible parts may be substituted at any time without notice.\u003c\/p\u003e\n\u003cp\u003eBike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {55239714341247 : "deny",55239714374015 : "deny",55239714406783 : "deny",55239714439551 : "deny",55239714472319 : "deny",55239714505087 : "deny",55239714537855 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {55239714341247 : parseInt("0"),55239714374015 : parseInt("0"),55239714406783 : par
seInt("0"),55239714439551 : parseInt("0"),55239714472319 : parseInt("9"),55239714505087 : parseInt("2"),55239714537855 : parseInt("0"),};
window._RestockRocketConfig.variantsPreorderCount = {55239714341247 : parseInt(""),55239714374015 : parseInt(""),55239714406783 : parseInt(""),55239714439551 : parseInt(""),55239714472319 : parseInt(""),55239714505087 : parseInt(""),55239714537855 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {55239714341247 : null,55239714374015 : null,55239714406783 : null,55239714439551 : null,55239714472319 : null,55239714505087 : null,55239714537855 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {55239714341247 : parseInt(""),55239714374015 : parseInt(""),55239714406783 : parseInt(""),55239714439551 : parseInt(""),55239714472319 : parseInt(""),55239714505087 : parseInt(""),55239714537855 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {55239714341247 : null,55239714374015 : null,5523971
in seconds
const liquidCacheAge = now - liquidRenderedAt; // Age in seconds
// Handle client clock ahead of server
if (liquidCacheAge
<
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
translation data in metafield
// Metafield hasn't been backfilled yet - force refresh
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
// Translations object exists in metafield - cache is valid
// If current locale isn't translated, applyTranslations will gracefully use default locale from base fields
if (window._RestockRocketConfig.normalizedLocale &&
!Object.prototype.hasOwnProperty.call(settings.translations, window._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 ||
!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
&& 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(cac
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