/
FX Sport SL 4 |
400 series OCLV Carbon, internal routing, 3s chain keeper, DuoTrap S compatible, mudguard mounts, flat mount disc, 135x5 mm ThruSkew
|
Frame
400 series OCLV Carbon, internal routing, 3s chain keeper, DuoTrap S compatible, mudguard mounts, flat mount disc, 135x5 mm ThruSkew| Frame Material
|
CARBON
|
Frame Material
CARBON| Rim Size
|
28
|
Rim Size
28| Fork
|
Trek
|
Fork
Trek| Fork
|
Carbon, hidden mudguard mounts, flat mount disc, 100x5 mm thru-skew
|
Fork
| |
|---|
| |
|---|
| |
|---|
| |
|---|
| |
|---|
| |
|---|
| |
|---|
| |
|---|
| Chain
|
Shimano LG500, 9/10/11-speed // KMC X Glide, 11-speed, grayChain |
Shimano LG500, 9/10/11-speed // KMC X Glide, 11-speed, gray
| Pedals
|
Bontrager City pedalsPedals |
Bontrager City pedals
| Saddle
|
Bontrager Commuter CompSaddle |
Bontrager Commuter Comp
| Seatpost
|
Bontrager alloy, 27.2 mm, 12 mm offset, 330 mm lengthSeatpost |
Bontrager alloy, 27.2 mm, 12 mm offset, 330 mm length
| Handlebar
|
Bontrager alloy, 31.8 mm, 15 mm rise, 660 mm widthHandlebar |
Bontrager alloy, 31.8 mm, 15 mm rise, 660 mm width
| Stem
|
Bontrager Elite, 31.8 mm, Blendr-compatible, 7-degree, 110 mm length // Bontrager Elite, 31.8 mm, Blendr-compatible, 7-degree, 110 mm lengthStem |
Bontrager Elite, 31.8 mm, Blendr-compatible, 7-degree, 110 mm length // Bontrager Elite, 31.8 mm, Blendr-compatible, 7-degree, 110 mm length
| Grips
|
Trek ergonomic PRO, lock-on // Trek ergonomic PRO, lock-onGrips |
Trek ergonomic PRO, lock-on // Trek ergonomic PRO, lock-on
| Size Chart Rider Height
|
Rider Height - 175.0 - 186.0Size Chart Rider Height |
Rider Height - 175.0 - 186.0
| Size Chart Rider Inseam
|
Inseam - 82.0 - 88.0Size Chart Rider Inseam |
Inseam - 82.0 - 88.0
[]
port-sl-4-78351?variant=58205507649919#variant","@type":"Product","gtin":"197216392538","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/FXSportSL4-27-78351-B-Primary_9946eea5-41cb-4f04-82c8-02eaefa72b83.jpg?v=1787065475\u0026width=1920","name":"FX Sport SL 4 - Buff Beige \/ XS","offers":{"@id":"\/products\/fx-sport-sl-4-78351?variant=58205507649919#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"1500.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/fx-sport-sl-4-78351?variant=58205507649919"},"sku":"5348105"},{"@id":"\/products\/fx-sport-sl-4-78351?variant=58205507682687#variant","@type":"Product","gtin":"197216392514","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/FXSportSL4-27-78351-A-Primary_7c167b12-7312-4e8a-b5f9-c83f19b3cc41.jpg?v=1787065474\u0026width=1920","name":"FX Sport SL 4 - Matte Deep Smoke \/ L","offers":{"@id":"\/products\/fx-sport-sl-4-78351?variant=58205507682687#offer","@type":"Offer","availability":"http:\/\/schema.org\/
front_integrations_read',
isValid: function(value) { return Array.isArray(value); },
apply: function(data) {
cfg.integrations = data;
}
});
}
function refreshSellingPlans(embedOnly) {
const cfg = window._RestockRocketConfig;
return refreshShopConfig({
embedOnly: embedOnly === true,
endpoint: 'selling_plans',
metafieldKey: 'cachedSellingPlans',
flag: 'enable_storefront_selling_plans_read',
isValid: function(value) { return !!value && Array.isArray(value.plans); },
apply: function(data) {
cfg.sellingPlans = data.plans;
cfg.disabledSellingPlanIds = data.disabled_plan_ids || [];
if (data && data.read_flags && typeof data.read_flags === 'object' && !Array.isArray(data.read_flags)) {
cfg.readFlags = data.read_flags;
}
}
});
}
function initializeScripts(settings) {
settings = applyTranslations(settings);
window._RestockRocketConfig.settings = settings;
console.debug(`STOQ
- settings configured for ${window._RestockRocketConfig.pageType}`);
const forceEmbedSellingPlans = settings.force_embed_selling_plans === true;
const staleRefresh = !window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid;
if (forceEmbedSellingPlans || staleRefresh) {
console.debug('STOQ - refreshing selling_plans' + (staleRefresh ? ' + integrations (Liquid cache stale)' : ' (force_embed_selling_plans)'));
const refreshes = [refreshSellingPlans(forceEmbedSellingPlans)];
if (staleRefresh) { refreshes.push(refreshIntegrations()); }
Promise.race([
Promise.all(refreshes),
new Promise(function(resolve) { setTimeout(resolve, 1000); })
]).then(function() { loadScripts(settings); });
return;
}
loadScripts(settings);
}
function loadScripts(settings) {
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);
})
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.scriptUrlProduct
: window._RestockRocketConfig.scriptUrlProductBis;
const pageType = window._RestockRocketConfig.p
ageType;
const collectionPageTypes = ['collection', 'index', 'search', 'page'];
if(collectionPageTypes.indexOf(pageType) !== -1 && (settings[`show_button_on_${pageType}`] || settings[`preorder_${pageType}_enabled`])) {
createRestockRocketScript(collectionScriptUrl);
} else if(pageType === 'product') {
createRestockRocketScript(productScriptUrl);
} else if(hijackIntegration) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(usePreorderBuild) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enabled for ${pageType}`);
}
const appLoadedEvent = new CustomEvent('stoq:loaded', {
detail: {
pageType: window._RestockRocketConfig.pageType,
enabled: settings.enable_app,
settings: settings,
preorderEnabled: settings.preorder_enabled
}
});
console.debug('STOQ -