Header Image
  • RIDE CONFIDENTContact Us
Mauritius (MUR₨)
Blog Vatican City (EUR€)
Mayotte (EUR€)
#productTemplate--template--26482384994687__main { --PT: 60px; --PB: 30px; } Western Sahara (MADد.م.)
Building Your Bike From the BoxMoldova (MDLL)

Tanzania (TZSSh) ProjektRide.
613



  • 03135,54945337835903,54945337868671,54945337901439,54945337966975,54945338032511,54945338098047,54945351631231,54945351663999,54945351762303,54945351795071,54945378140543,54945378173311,54945378206079,54945378238847,54945378271615,54945378304383,54945378337151,54945380925823,54945380958591,54945380991359,54945381024127,54945381056895,54945381089663,54945381122431,54945391444351,54945391477119,54945391509887,54945395310975,54945395343743,54945395376511,54945399275903,54945399308671,54945399341439,54945399374207,54945399406975,54945399439743,54945399472511,54945399505279,54945399538047,54945399570815,54945399603583,54945399636351,54945431683455,54945431716223,54945431748991,54945431781759,54945431814527,54945431847295,54945431880063,54945433125247,54945433158015,54945436467583,54945436500351,54945436533119,54945436565887,54945436598655,54945436631423,54945436664191,54945436696959,54945436729727,54945436762495,54945436795263,54945436828031,54945453048191,54945453080959,54945453113727,54945453146495,549454832602844
  • 945546928511,54945546961279,54945548042623,54945548075391,54945548108159,54945548140927,54945548173695,54945548206463,54945548239231,54945548271999,54945550336383,54945550369151,54945550401919,54945550434687,54945550467455,54945550500223,55038016422271,55196401860991,55196401893759,55196401926527,55196402647423,55196403433855,55196403466623,55196403532159,55196403564927,55196403630463,55196403663231,55196403695999,55196403728767,55196403794303,55196403827071,55196403859839,55196403892607,55196404285823,55196404318591,55196404351359,55196404384127,55196404416895,55196404449663,55196404482431,55196404515199,55196404547967,55196404580735,55196404613503,55196404646271,55196405662079,55196405694847,55196405727615,55196405760383,55196405825919,55196405858687,55196405891455,55196405924223,55196408185215,55196408217983,55196408250751,55196408283519,55196408316287,55196408349055,55196408381823,55196408414591,55196408447359,55196409364863,55196409397631,55196409430399,55196409463167,55196409495935,55196409528703,551964 Secure, fully enclosed internal cable management
  • 2831,55245730218367,55245730316671,55245730349439,55245730382207,55245730447743,55245730578815,55245730742655,55245730775423,55245737492863,55245737623935,55245737656703,55245737689471,55245737722239,55294444142975,55294475927935,55294475960703,55294527504767,55294527537535,55294528946559,55294528979327,55333372789119,55333372821887,55333372854655,55333372887423,55333372920191,55333372952959,55333372985727,55333373018495,55333373051263,55333373084031,55333373116799,55333373182335,55333373215103,55333373280639,55333373313407,55333439340927,55333439373695,55333439406463,55333439439231,55333439471999,55333439504767,55333439537535,55333439570303,55333439603071,55333439635839,55333439668607,55333439701375,55333439734143,55333439766911,55333439832447,55333439865215,55333439897983,55333439930751,55333439963519,55333439996287,55333440061823,55333440094591,55333738185087,55333738217855,55333738250623,55333738283391,55333738316159,55333738348927,55333738381695,55333752865151,55372770935167,55391264211327,55391264244095
  • 82603536767,55482603569535,55482603602303,55482603635071,55482603667839,55482603700607,55482623361407,55482623394175,55482623426943,55482623459711,55482623492479,55482639122815,55482639155583,55482639188351,55482639221119,55482666844543,55482671497599,55482671530367,55482671563135,55482671595903,55482671628671,55482675102079,55482675134847,55482675167615,55482675626367,55482675659135,55482675691903,55482677952895,55482679787903,55482684965247,55553117356415,55553117389183,55553117454719,55553117487487,55553117520255,55553117553023,55553117585791,55570017517951,55585620263295,55585620296063,55585620328831,55585620361599,55664837296511,55664857874815,55664857907583,55664857940351,55664857973119,55664858005887,56051529482623,56051529515391,56051529548159,56051529580927,56051529613695,56063296373119,56063296405887,56063296438655,56063296471423,56063370428799,56063370461567,56063370494335,56063370527103,56063691129215,56140121801087,56140121833855,56140121899391,56140121932159,56140121964927,56166204834175,5616620 Compatible with long dropper posts
  • 095,56386096726399,56386096824703,56386096923007,56386096955775,56386097021311,56386097119615,56386097217919,56386097250687,56386097283455,56386097316223,56386097348991,56386097381759,56386097414527,56386097447295,56386097480063,56386097512831,56386097545599,56386097578367,56386097611135,56386097643903,56386097807743,56386097840511,56386097873279,56386098430335,56386098626943,56386098659711,56386098758015,56386098790783,56386098823551,56386098856319,56386098921855,56386098954623,56386099020159,56386099052927,56386099609983,56386099675519,56386099872127,56386100527487,56386100593023,56386100658559,56386101084543,56386101117311,56386101150079,56393228648831,56393228812671,56393231630719,56393231761791,56393231991167,56393232155007,56393232220543,56393232384383,56393232449919,56393232580991,56393232777599,56393232875903,56393232974207,56393233236351,56393233367423,56393233629567,56393233760639,56393234088319,56393234252159,56393234350463,56393234481535,56393234678143,56393235759487,56393238774143,56393238872447,L
  • 4086783359,56494086914431,56494086947199,56494086979967,56494087045503,56494087078271,56494087111039,56494087143807,56494087176575,56494087209343,56494087242111,56494087274879,56494087307647,56494087340415,56494087373183,56494087405951,56494087504255,56494087537023,56494087799167,56494088356223,56494088454527,56494090289535,56504701485439,56504701518207,56504701550975,56504701583743,56504701616511,56504701649279,56504839209343,56504839242111,56504839274879,56504839307647,56504839340415,56504839373183,56504921981311,56504922014079,56504922046847,56504922079615,56504922112383,56504922145151,56504922177919,56504922210687,56504922243455,56504950489471,56504950522239,56504950555007,56504950587775,56504950620543,56504950653311,56504950686079,56504950718847,56504950751615,56504961139071,56504961171839,56504961204607,56504961237375,56504961270143,56504961302911,56504961335679,56504961368447,56504961401215,56505064489343,56505064522111,56505064554879,56505064587647,56505064620415,56505064653183,56505064685951,56505064 100% standard sealed Enduro Max bearings
  • 75,56518805750143,56518805782911,56561153933695,56766086054271,56766086185343,56766086250879,56766086381951,56766086447487,56766086513023,56766086840703,56766183342463,56766183375231,56766183407999,56766183440767,56766183473535,56766183506303,56766183539071,56766183571839,56766183637375,56766183670143,56766183768447,56766183801215,56766183833983,56766183932287,56766183965055,56766183997823,56766184030591,56766184096127,56766184128895,57284689789311,57284689822079,57284689854847,57284689887615,57284689920383,57284689953151,57284689985919,57284690018687,57284690051455,57284690084223,57284690116991,57284690149759,57284690182527,57284690215295,57284690248063,57284690313599,57284690346367,57284690379135,57284690411903,57311934513535,57311934546303,57311934579071,57311934611839,57318991724927,57318991790463,57318991823231,57319008797055,57319008829823,57319008862591,57319008895359,57392715465087,57392715497855,57392715530623,57392715563391,57392715596159,57578627137919,57578627170687,57579681808767,57579681841535,5STACK
  • 177121663,57596177252735,57596177285503,57596177351039,57596177383807,57596177416575,57596177449343,57596177514879,57596177547647,57596177613183,57596177645951,57596177809791,57596177842559,57596177875327,57596177908095,57602995126655,57602995159423,57602995192191,57602995224959,57602995257727,57602995290495,57602995323263,57602995356031,57602995388799,57602995421567,57602995454335,57602995487103,57602995519871,57602995552639,57602995585407,57602995618175,57602995650943,57602995683711,57602995716479,57602995749247,57602995782015,57602995814783,57602995847551,57602995880319,57602995913087,57602995945855,57602995978623,57602996011391,57602996044159,57602996076927,57602996109695,57602996142463,57602996175231,57602996207999,57602996240767,57602996273535,57602996306303,57602996339071,57602996371839,57602996404607,57602996437375,57602996470143,57602996502911,57602996535679,57602996568447,57602996601215,57602996633983,57602996666751,57602996699519,57602996732287,57602996765055,57602996797823,57602996830591,576029968 Floating collet axle pivot design
  • 7,57603003318655,57603003351423,57603003384191,57933586399615,57933586432383,57933588693375,57933588726143,57933589676415,57933589873023,57933591314815,57933592297855,57933592330623,57933592396159,57933592461695,57933592494463,57933592527231,57933592559999,57933592592767,57933592658303,57933592691071,57933592789375,57933593444735,57933593674111,57933594001791,57933594034559,57933594067327,57933594263935,57933594362239,57933594395007,57933595017599,57933595967871,57933598228863,57933598425471,57933599342975,57933599539583,57933600096639,57933600293247,57933601603967,57933601636735,57933601669503,57933602193791,57933602226559,57933602292095,57933603471743,57933608026495,57933609304447,57933609337215,57933609369983,57933609402751,57933609435519,57933609501055,57933609566591,57933609632127,57933610484095,57933610746239,57933610779007,57933611598207,57933611630975,57933611663743,57933611827583,57933611860351,57933613105535,57933613203839,57933613236607,57933613269375,57933613302143,57933613334911,57933615759743,57 617
  • hopify_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_butCompact-wishbone shock extender
  • 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 620
{ 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_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 }} unDownhill tested
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," 625
_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 toYeti/Fox Factory team approved
} })();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.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":8664105386210,"title":"Shimano battery for internal down tube long 504Wh - BT-EN805-L","handle":"shimano-battery-for-internal-down-tube-long-504wh-bt-en805-l","description":"\u0 635
iv\u003e\n\u003cdiv class=\"value\"\u003eBlack\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eSize\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eOne size\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eProduct Type\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eBatteries \u0026amp; Chargers\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c!----\u003e","published_at":"2024-08-03T12:14:18+01:00","created_at":"2024-08-03T12:14:20+01:00","vendor":"Shimano","type":"Accessories","tags":["Battery","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":75900,"price_min":75900,"price_max":75900,"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":45767010517218,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"BTEN805L","requires_shipping":true,"taxable":true,"feaBoost spacing

s\/Screenshot2024-08-03at10.08.12_e6d01e9b-b823-4d98-b8ef-38fd254063e1.png?v=1722684108","width":1200}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e \u003c\/p\u003e\n\u003cul class=\"description-overview\"\u003e\n\u003cli\u003eHigh quality, long lasting integrated frame mounting lithium-ion battery pack for Shimano STEPS systems\u003c\/li\u003e\n\u003cli\u003eIn normal mode the riding distance could exceed 100 km\u003c\/li\u003e\n\u003cli\u003eThe same size and fit dimensions as BTE8036 but with 504Wh\u003c\/li\u003e\n\u003cli\u003eWaterproof design as well as impact and vibration resistant\u003c\/li\u003e\n\u003cli\u003e1000 charge cycles without significant power loss\u003c\/li\u003e\n\u003cli\u003eApproximately five hours charge time\u003c\/li\u003e\n\u003cli\u003eCharge level display with error signal info and on\/off switch\u003c\/li\u003e\n\u003cli\u003eCharging port\u003c\/li\u003e\n\u003cli\u003eLock system for off bike security\u003c\/li\u003e\n\u003cli\u003eHigh 5

erMaxCount = {45767010517218 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {45767010517218 : null,}; window._RestockRocketConfig.variantsShippingText = {45767010517218 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {45767010517218 : null,}; window._RestockRocketConfig.selected_variant_id = 45767010517218; window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;// STOQ-1595/1612 shared signal, derived once here so both the accelerated-checkout block // gate (STOQ-1612) and the click tracker (STOQ-1595) read one clearly-owned flag rather // than a side effect buried in either consumer's try/catch: whether this shop has preorders // configured at all — an enabled selling plan plus at least one preorder variant id, // independent of the block toggle. Fail-open: on error the flaSizes S-XXL

Rationale: PR #2784. try { var _sqc = window._RestockRocketConfig; var _sqOn = !!(_sqc.cachedSettings && _sqc.cachedSettings.block_accelerated_checkout); var _sqPre = (_sqc.cachedPreorderVariantIds && _sqc.cachedPreorderVariantIds.preorder_variant_ids) || []; var _sqArm = false; if (_sqOn && _sqc.preordersConfigured) { if (_sqc.pageType === 'product' && _sqc.product && _sqc.product.variants) { _sqArm = _sqc.product.variants.some(function (v) { return _sqPre.indexOf(Number(v.id)) !== -1; }); } else { _sqArm = (_sqc.integrations || []).some(function (i) { return i && i.type === 'featured_product' && i.enabled && Array.isArray(i.page_types) && i.page_types.indexOf(_sqc.pageType) !== -1; }); } } if (_sqArm && document.documentElement) { _sqc.acceleratedGateArmed = true; document.documentElement.classList.add('stoq-buy-now-pending'); setTimeout(function () { document.documentElement.classL Mfer the Render host emitted into the // metafield-cached settings (api_host) when present, mirroring the same // override in assets/js/api.js. cachedSettings is populated above. Falls // back to the build-baked host for shops without the use_render_api_host // toggle (or environments where THEME_EXTENSION_API_HOST is unset), so the // setting.json + fetchEmbedConfig calls below route to the same host as the // rest of the extension's API traffic instead of staying on the baked host. window._RestockRocketConfig.host = (window._RestockRocketConfig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io' // Deployed extension build number, read from the CDN asset host Shopify generates: // https://cdn.shopify.com/extensions/ uuid>/ REACHhandle>- version>/assets/... // Trailing digits (e.g. ".../restockrocket-1-521/assets/" -> "521"). Kept numeric to // match ParseStoqData, so funnel app_version lines up with the order-attribution // app_version. Reflects the ACTUAL deployed build. This is the SINGLE source of the // parsed version — preorder.js getAppVersion() reads it back off config rather than // re-parsing, so the regex lives in exactly one place. try { const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/); window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || ''; } catch (e) { window._RestockRocketConfig.appVersion = ''; } const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds const LIQUID_CACHE_MAX_AGE = 15 * 60; // 15 minutes in seconds // Calculate Liquid cache freshness once at initialization const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt; // Validate timestamp and calculate ca430

<
<460
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
<480
tomer interaction. // Detected variants: the variants present in this page's Liquid context (product page has them; // collection/index/etc. don't expose variants from Liquid). Used to disambiguate "embed didn't // load" vs "embed loaded but the variant wasn't a preorder/BIS candidate" in order debug. try { const _stoqInitConfig = window._RestockRocketConfig; const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqInitConfig.product.variants)) ? _stoqInitConfig.product.variants.map(function(v) { return v.id }) : []; const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id; Shopify?.analytics?.publish?.('stoq_initialized', { cart_token: _stoqInitConfig.cartToken || '', page_url: window.location.href, page_type: _stoqInitConfig.pageType || '', shop_domain: _stoqInitConfig.shop || '', market_id: _stoqInitConfig.marketId || '', detected_variant_ids: _stoqDetectedVariantIds, selected_variant_id: _stoqSele

on block above) — nothing to bypass otherwise. variant_id is read per-clicked-button // from its form so it's correct on collection/index/search too. block_accelerated_checkout // context (STOQ-1612) rides in `properties` (forwarded verbatim by the pixel, no schema // change): a buy_now click on a preorder variant while the gate was armed is a visible // bypass signal for order debug. Also sends page_url (top-level, like the pixel's native // events) and two preorder signals in properties (see below). try { var _sqTrack = window._RestockRocketConfig; if (_sqTrack.preordersConfigured) { document.addEventListener('click', function (e) { try { var t = e.target; if (!t || !t.closest) return; var host = t.closest('.shopify-payment-button, shopify-payment-terms'); if (!host) return; var channel = host.matches && host.matches('shopify-payment-terms') ? 'shop_pay_installments' : 'buy_now'; var form = host.close505

ack.product && _sqTrack.product.id) || '', channel: channel, market_id: _sqTrack.marketId || '', page_type: _sqTrack.pageType || '', cart_token: _sqTrack.cartToken || '', page_url: (window.location && window.location.href) || '', properties: { // Mirror the bundle's own preorder check (preorder.js checkInventoryProvider- // WithCachedFallback): the live set config.preorderVariantIds (refreshed after // page load by loadVariantInventoryData) OR the Liquid-injected // cachedPreorderVariantIds — always present, so it covers clicks before the // bundle loads (why this tracker is inline). ORing both (not preferring one) // matches the bundle and is correct even if the live set is an empty array. Both // hold integer ids; the click-time id comes off a DOM input (.value → string) or // selected_variant_id, so coerce with Number for
er bypass is detectable too. is_instock_variant: (function () { var has = function (a) { return Array.isArray(a) && a.indexOf(_sqVidNum) !== -1; }; return has(_sqTrack.inStockVariantIds) || has(_sqTrack.cachedInStockVariantIds && _sqTrack.cachedInStockVariantIds.in_stock_variant_ids); })(), // The enrolled plan's Shopify selling-plan id + inventory_provider (stoq = STOQ tracks // the OOS count; shopify = in-stock preorder). Tells order-debug what kind of preorder // the Buy Now bypassed, without a downstream lookup. enrolled_plan_id: (_sqPlan && (_sqPlan.shopify_selling_plan_id || _sqPlan.shopify_selling_plan_group_id)) || '', enrolled_plan_provider: (_sqPlan && _sqPlan.inventory_provider) || '', block_enabled: !!(_sqTrack.cachedSettings && _sqTrack.cachedSettings.block_accelerated_checkout), gate_armed: !!_sqTrack.a ); 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 func ditive, does not gate init) ---- // The inlined `cachedSettings` comes from the app-embed Liquid render, which // Shopify edge-caches and can serve stale. Reading the same `settings` metafield // back over the Storefront API is a POST to /api/Nversion>/graphql.json — never // CDN-cached — so it returns the live value on every page load. We fetch it // best-effort and stash it on `window._RestockRocketConfig.storefrontSettings` // so individual behaviours can migrate onto the fresh value over time. This is // PURELY ADDITIVE: it does NOT change the resolution flow below, never blocks // init, and silently no-ops on any failure / missing token. (function loadStorefrontSettings() { const cfg = window._RestockRocketConfig; if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) return; // Deferred to browser idle so this best-effort read runs strictly AFTER the // critical init flow and never competes with it for a connection — the call // is a live, uncached Storefront round-trip and can be slow (multi-second // TTFB observed). Nothing on the critical path waits for it. function run() { const query = 'query StoqSettings($namespace: String!) { shop { metafield(namespace: $namespace, key: TOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function fetchEmbedConfig(endpoint, apply) { return fetch( `${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`, { headers: { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' } } ) .then(function(response) { if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`); return response.json(); }) .then(function(data) { try { apply(data); } catch (applyError) { // Apply failures are programming bugs (e.g. response shape changed // server-side and the assignment threw). Surface them as console.error // so they're visible in browser logs, then re-throw to fall through // to the same Liquid-cached fallback as a fetch failure. console.error('STOQ - apply failed for ' + n, // an enabled offer exists, or a disabled-but-kept plan id remains (cart sweep // must still strip those). Rationale in the PR. const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans) && window._RestockRocketConfig.sellingPlans.some(function(plan) { return plan && plan.enabled; }); const hasDisabledPlanIds = Array.isArray(window._RestockRocketConfig.disabledSellingPlanIds) && window._RestockRocketConfig.disabledSellingPlanIds.length > 0; const usePreorderBuild = settings.preorder_enabled || hasEnabledOffer || hasDisabledPlanIds; const collectionScriptUrl = usePreorderBuild ? window._RestockRocketConfig.scriptUrlCollection : window._RestockRocketConfig.scriptUrlCollectionBis; const productScriptUrl = usePreorderBuild ? window._RestockRocketConfig.scriptUrlP toq: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); } } 794 816 html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}.stoq-hide-buy-now .shopify-payment-button{display:none!important}.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;} 846OVERTICAL FORK TRAVEL153153153 Nigeria (NGN₦) North Macedonia (MKDден) {"@context":"http:\/\/schema.org\/","@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike#product","@type":"ProductGroup","brand":{"@type":"Brand","name":"Yeti"},"category":"Mountain Bikes","description":"\n\n\n\n\n\n\n\n\n\n\nWE DON'T PARTY UNTIL THE RACE IS OVER. SO WE TOOK OUR TIME TO DESIGN AN E-MTB THE WAY A YETI E-MTB HAS TO BE DESIGNED: READY TO TOE THE LINE AT EWS-E RACES.MEET THE 160E: THE WORLD'S FIRST RACE SPECIFIC E-MTB..\n\n\n\n\n160MM\nFRAME TRAVEL\n\n \n\n170MM\nFORK TRAVEL\n\n \n\n35%\nLEVERAGE RATE\n\n\n29\"\nWHEEL SIZE\n\n \n\n64.5°\nHEAD TUBE ANGLE\n\n \n\n78°\nEFF. SEAT ANGLE\n\n\n\n\nHIGHLIGHTS\n\nYeti patented Sixfinity™ suspension system\n446mm chain stays with dual 29er wheels\nFloating collet axles and pinch bolts on thelinkage extend bearing life and ensureoptimal, consistent alignment\nStock Shimano 630-Watt hourbattery is semi-integrated for hasslefree off the bike charges or with remotecharging port on non-drive side\nBoost spacing and SRAM UDH hanger\nCustom OneUp chain guide mount\nMD thru XL Mainframes accommodate astandard water bottle while our“hot lap” bottle will fit in a SM frame\nCustom cable ports, captured hosesand housing and ribbed chainstay guardsprovide a silent ride\n“Moto” brake compatible routing\nRear mud fender protects motor and linkage\nASTM 4 rating and tested to Yeti Downhilltesting standards\n\n\n\n\n\nSIXFINITY\n\nSixfinity™ suspension platform,Patent pending 6-Bar linkage\nLower link switches direction similarto Switch Infinity\nWe’re able to tune Sixfinity to have ourdesired ride characteristics whileaccommodating the weight and speed thatcomes with a motor and battery\nThe Sixfinity suspension layout allowsfor a stiff supportive chassis for theadded E-MTB mass\nFirst Sixfinity platform prototypedeveloped in 2016\n\n\n\n\n\n\nIT’SABOUTTIME.\n\n\n\n\n\nSIZE GUIDE\n\n\n\n\nSMALL\n5'1\" - 5'7\"\n\n\n\n\n\nMEDIUM\n\n5'5\" - 5'11\"\n\n\n\n\nLARGE\n\n\n5'10\" - 6'3\"\n\n\n\nX-LARGE\n\n\n\n6'1\" - 6'7\"\n\n\n\n\n\n\n\n\n\n\n\n\nSPECIFICATION\nC\/Series carbon fibre frame, Sixfinity suspension technology, fully enclosed internal cable routing, 148mm x 12mm BOOST dropouts, sealed Enduro Max pivot bearings, integrated derailleur hanger, and axle.\n\n\n\nFRAME MATERIAL\nTURQ SERIES\n\n\nFORK\nFOX FACTORY 38 GRIP 2\/170MM\n\n\nSHOCK\nFOX FACTORY FLOAT X2\n\n\nWHEELSET\nDT SWISS H1900 30MM\n\n\nREAR DER\nSRAM GX EAGLE\n\n\nSHIFT\nSRAM GX EAGLE\n\n\nCRANK\nSHIMANO EM600 160MM\n\n\nCASSETTE\nSRAM GX EAGLE 1275 10-52 \n\n\nCHAIN\nSRAM GX EAGLE\n\n\nBRAKES\nSRAM CODE R\n\n\nROTOR F\/R\nSRAM HS2 220 \/ SRAM HS2 220\n\n\nPOST\nONEUP DROPPER POST 31.6MM \/ SM: 180MM, MD: 210MM, LG-XL: 240MM\n\n\nTYRE F\/R\nMAXXIS ASSEGAI 2.5 EXO+ \/ MAXXIS MINION DHR II 2.4 DD\n\n\nHEADSET\nCANE CREEK 40 INTEGRATED\n\n\nBAR\nYETI CARBON 35X800MM\n\n\nSTEM\nBURGTEC ENDURO MK3 35X50MM\n\n\nGRIPS\nODI ELITE PRO\n\n\nSADDLE\nSILVERADO CUSTOM\n\n\nBASH GUARD\nN\/A\n\n\nBATTERY\nSHIMANO 630WH INTERNAL BATTERY\n\n\nDRIVE UNIT\nSHIMANO EP801\n\n\nDISPLAY\nSHIMANO EM800\n\n\nASSIST SWITCH\nSHIMANO EM800L\n\n\nCHARGER\nSHIMANO E6002\n\n\n\n\nPlease note: Specifications are subject to change without notice.\n\nGEOMETRY\nAll measurements are shown in millimetres.\n\n\n\n\n\n\n\n170MM FORK\nSM\nMD\nLG\nXL\n\n\nA\nSEAT TUBE LENGTH\n380\n410\n450\n495\n\n\nB\nEFF. TOP TUBE LENGTH\n561\n592\n613\n642\n\n\nC\nHEAD TUBE ANGLE\n64.5\n64.5\n64.5\n64.5\n\n\nD\nEFF. SEAT TUBE ANGLE\n78\n78\n78\n78\n\n\nE\nCHAINSTAY LENGTH\n446\n446\n446\n446\n\n\nF\nWHEELBASE\n1209\n1240\n1262\n1292\n\n\nG\nESTIMATED BB HEIGHT\n350\n350\n350\n350\n\n\nH\nSTANDOVER\n754\n754\n754\n754\n\n\nI\nHEADTUBE LENGTH\n95\n98\n104\n115\n\n\nJ\nFORK (AXLE TO CROWN)\n584\n584\n584\n584\n\n\nK\nFORK (OFFSET)\n44\n44\n44\n44\n\n\nL\nSTACK\n617\n620\n625\n635\n\n\nM\nREACH\n430\n460\n480\n505\n\n\nN\nFRONT CENTER\n762\n794\n816\n846\n\n\nO\nVERTICAL FORK TRAVEL\n153\n153\n153\n153\n\n\n\n\n\n\n","hasVariant":[{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409266559#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Small \/ Turquoise","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409266559#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409266559"}},{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409299327#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Small \/ Grey","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409299327#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409299327"}},{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409332095#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Small \/ Black","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409332095#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409332095"}},{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409364863#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Medium \/ Turquoise","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409364863#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409364863"},"sku":"YCB25160ELGPTUX2C028701"},{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409397631#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Medium \/ Grey","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409397631#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409397631"},"sku":"YCB25160EMDPRIX2C028701"},{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409430399#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Medium \/ Black","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409430399#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409430399"},"sku":"YCB25160EMDPBAX2C028701"},{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409463167#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Large \/ Turquoise","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409463167#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409463167"},"sku":"YCB25160ELGPTUX2C028701"},{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409495935#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Large \/ Grey","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409495935#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409495935"},"sku":"YCB25160ELGPRIX2C028701"},{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409528703#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Large \/ Black","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409528703#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409528703"},"sku":"YCB25160ELGPBAX2C028701"},{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409561471#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Extra Large \/ Turquoise","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409561471#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409561471"},"sku":"YCB25160ELGPTUX2C028701"},{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409594239#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Extra Large \/ Grey","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409594239#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409594239"},"sku":"YCB25160EXLPRIX2C028701"},{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409627007#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25160ec2turq_1.webp?v=1741953605\u0026width=1920","name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike - Extra Large \/ Black","offers":{"@id":"\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409627007#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"7499.17","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike?variant=55196409627007"},"sku":"YCB25160EXLPBAX2C028701"}],"name":"Yeti Cycles 160E C-Series C2 Factory 29\" Bike","productGroupID":"14979885007231","url":"https:\/\/projektride.co.uk\/products\/yeti-cycles-160e-c-series-c2-factory-29-bike"}
refrontSettings = JSON.parse(value); console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings'); }) .catch(function(e) { console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message); }); } if (typeof window.requestIdleCallback === 'function') { window.requestIdleCallback(run, { timeout: 5000 }); } else { setTimeout(run, 0); } })(); // 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': 'skiFRONT CENTERipts. Race against a 1000ms timeout so a slow // API can't block init indefinitely. If the timeout wins, the in-flight // fetches still complete and update window._RestockRocketConfig — the // bundle re-reads sellingPlans/integrations on every interaction, so the // late-arriving values benefit subsequent renders even though the first // paint may use the Liquid-cached values. On any failure the existing // Liquid-loaded values stay in place via fetchEmbedConfig's catch. if (!window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid) { console.debug('STOQ - Liquid cache stale, refreshing selling_plans + integrations'); Promise.race([ Promise.all([ fetchEmbedConfig('selling_plans', function(data) { if (data && Array.isArray(data.plans)) { window._RestockRocketConfig.sellingPlans = data.plans; window._RestockRocketConfig.disabledSellingPlanIds = data.disabled_plan_ids || []; 762
153
[]
Frequently Asked Questions XX-LARGE
6'5" - 6'11"

FOX FACTORY FLOAT X2
  • TYRE (F)

    MAXXIS ASSEGAI 2.5 EXO+ TYRE (R)

    MAXXIS MINION DHR II 2.4 DD
  • ROTOR (F)

    SRAM CENTERLINE 200

    ROTOR (R)

    SRAM CENTERLINE 200