Close= 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;
}
if (settings.multi_language_enabled) {
if (!settings.translations) {
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
if (window._RestockRocketConfig.normalizedLocale &
<}
function createRestockRocketScript(scriptUrl) {
const restockRocketScriptElement = document.createElement('script');
restockRocketScriptElement.setAttribute('defer', 'defer');
restockRocketScriptElement.crossOrigin = 'anonymous';
restockRocketScriptElement.onerror = function () {
restockRocketScriptElement.onerror = null;
const plainScriptElement = document.createElement('script');
plainScriptElement.setAttribute('defer', 'defer');
plainScriptElement.src = scriptUrl;
document.body.appendChild(plainScriptElement);
};
restockRocketScriptElement.src = scriptUrl;
document.body.appendChild(restockRocketScriptElement);
}
createRestockRocketContainer()
console.debug('STOQ - extension activated')
try {
const _stoqInitConfig = window._RestockRocketConfig;
const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqInitConfig.product.variants))
? _stoqInitConfig.product.variants.map(function(v) { return v.id })
| Wide TrailParts & Components | Wide Trail (WT) construction optimises the tyre's tread layout and profile on today's modern, wider rims. Traditional tyres are designed around older, narrower rims and can create an overly square tyre profile, leading to less than optimal performance. WT tyres are optimised for a 35mm inner rim width but are proven to work over a range from 30-35mm inner rim widths, depending on the rider's preferenceSee More |
|---|---|
| Bead Type | BrandsFolding | See More
| Discipline | Tent BoxMTB |
| Feature | Tubeless ReadyCockpit |
| Product Type | Bicycle TyreHandlebars |
| Grips & Bar-Tape | {"@context":"http:\/\/schema.org\/","@id":"\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5#product","@type":"ProductGroup","brand":{"@type":"Brand","name":"Maxxis"},"category":"","description":"\n\n\nWhat do you get when you combine attributes from legendary Maxxis treads like the Minion DHR II, High Roller, and Shorty? You get the Assegai, the new signature tyre from the mind of Greg Minnaar! The tall knobs punch through dust and loam to find traction, but also offer support and confidence on wet roots and rocks\n\n\n\n\nSpecification\n\n\nWorld Cup Champion Greg Minnaar's signature tyre\n\nBest for Loose, Loose\/Hard, Medium, Wet\n\nCornering Control : 1 2 3 [4]\n\nRolling Efficiency : 1 2 [3] 4\n\nCompound: Dual Compound \u0026amp; MaxxTerra Technology\n\nBreaker: EXO or EXO+ Puncture Protection\n\nMax PSI: 50\n\nBead Type: Folding\nTubeless Tyre\n\nTPI: 60\n\n\nDual Compound\nTwo compounds used within the tread of select tyres to offer lower rolling resistance and increased cornering grip\nMaxxTerra Compound\nAn intermediate compound configuration used in select mountain tyres. 3C MaxxTerra is softer and offers more traction than 3C MaxxSpeed, yet provides better treadwear and less rolling resistance than MaxxGrip\nEXO\nAn extremely cut-resistant and abrasion-resistant material added to the sidewalls of select mountain tyres. This densely woven fabric is also lightweight and highly flexible, ensuring that the performance of the tyre remains unaffected. Choose EXO Protection for exceptionally rocky, treacherous trails where the chance of sidewall cuts and abrasions is high\nEXO+\nOur EXO+ construction combines two of our best puncture protection materials: SilkShield and EXO. The SilkShield layer runs from bead-to-bead with a layer of EXO along the sidewalls. Combined, these two materials create EXO+ which improves tread puncture protection by 27%; sidewall durability by 51%; and resistance to pinch flats by 28%\nTubeless Ready\nTubeless tyres provide the rider with many benefits: the ability to run lower air pressures, which improves traction; lower rolling resistance when compared to a tube-type tyre; and less chance of flatting since there is no tube. Liquid sealants should only be used in the following types of tyres: Tubeless Road, Tubular, and Tubeless Ready. The use of liquid sealants in any other Maxxis tyre will void the warranty\nWide Trail\nWide Trail (WT) construction optimises the tyre's tread layout and profile on today's modern, wider rims. Traditional tyres are designed around older, narrower rims and can create an overly square tyre profile, leading to less than optimal performance. WT tyres are optimised for a 35mm inner rim width but are proven to work over a range from 30-35mm inner rim widths, depending on the rider's preference\n\n\nBead Type\nFolding\n\n\nDiscipline\nMTB\n\n\nFeature\nTubeless Ready\n\n\nProduct Type\nBicycle Tyre\n\n","hasVariant":[{"@id":"\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174328546#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-27at13.06.54.png?v=1640610671\u0026width=1920","name":"Maxxis Assegai MTB Tyre 27.5 \/ 650b \/ 2.5'' - Dual Comp EXO WT 2.5","offers":{"@id":"\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174328546#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"54.99","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174328546"}},{"@id":"\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174361314#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-27at13.06.54.png?v=1640610671\u0026width=1920","name":"Maxxis Assegai MTB Tyre 27.5 \/ 650b \/ 2.5'' - Folding DD WT 2.5","offers":{"@id":"\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174361314#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"84.99","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174361314"}},{"@id":"\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174394082#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-27at13.06.54.png?v=1640610671\u0026width=1920","name":"Maxxis Assegai MTB Tyre 27.5 \/ 650b \/ 2.5'' - MaxxTerra EXO+ WT 2.5","offers":{"@id":"\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174394082#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"74.99","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174394082"}},{"@id":"\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174426850#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-27at13.06.54.png?v=1640610671\u0026width=1920","name":"Maxxis Assegai MTB Tyre 27.5 \/ 650b \/ 2.5'' - 3C Maxx Terra EXO WT 2.5","offers":{"@id":"\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174426850#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"69.99","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5?variant=42207174426850"}}],"name":"Maxxis Assegai MTB Tyre 27.5 \/ 650b \/ 2.5''","productGroupID":"7485533651170","url":"https:\/\/projektride.co.uk\/products\/maxxis-assegai-mtb-tyre-27-5-650b-2-5"}|
| Brakes | See More | I'm looking to find out more information about a product, where can I find this?
| Please get in touch with a member of the team either by phone (Complete Brakes | 01313745324) or email ( | [email protected]Brake Rotors
| Brake Pads | I'm looking to buy this product, when will it arrive and how much does postage cost?Brake Spares |
| If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item. | Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.ForksWe also have a physical store, if you are local please pop in - | ProjektRide Bike Shop EdinburghSee More
| Front Suspension | |
| You May Also LikeSee More | |
| Tubes | |
| < | Complete Wheelsons/01a1b3f4-12aa-7f20-af90-2397b6140bd7/restockrocket-1-636/assets/restockrocket-collection-full.js' window._RestockRocketConfig.scriptUrlProductBis = 'https://cdn.shopify.com/extensions/01a1b3f4-12aa-7f20-af90-2397b6140bd7/restockrocket-1-636/assets/restockrocket-product-bis.js' window._RestockRocketConfig.scriptUrlCollectionBis = 'https://cdn.shopify.com/extensions/01a1b3f4-12aa-7f20-af90-2397b6140bd7/restockrocket-1-636/assets/restockrocket-collection-bis.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = (window._RestockRocketConfig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io' try { const _stoqVersionMatch = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/); window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || ''; } caTrack Service Progress < | <
espace: String!) { shop { settings: metafield(namespace: $namespace, key: "settings") { value } translations: metafield(namespace: $namespace, key: "settings_translations") { value } } }';
return storefrontGraphql(query, { namespace: window._RestockRocketConfig.metafieldNamespace })
.then(function(data) {
const settings = JSON.parse(data.shop.settings.value);
if (!settings.updated_at) { throw new Error('settings metafield is not a settings payload'); }
if (settings.single_locale_translations_inline) {
settings.translations = data.shop.translations && JSON.parse(data.shop.translations.value);
}
if (settings.multi_language_enabled && !settings.translations) { throw new Error('settings metafield carries no translations'); }
return settings;
});
}
const cachedSettings = window._RestockRocketConfig.cachedSettings;
const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
if (validCachedSettings) {
console.debug('STO
})
: Promise.resolve();
storefrontRead
.then(function(settings) {
return settings || 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 (cachedSettings) {
console.debug('STOQ - using expired cached settings as fallback');
initializeScripts(cachedSettings);
} else {
console.error('STOQ - failed to load settings:', error);
}
})
.catch(function(e) {
console.error(e)
})
}
function fetchEmbedConfig(endpoint, apply) {
return fetch(
`${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`,
{
headers Sat: 9:00 - 16:00Essentials
Log inCookie PolicyTools & Maintenance(function(value) {
if (!source.isValid(value)) { throw new Error(source.metafieldKey + ' metafield is not a valid ' + source.endpoint + ' payload'); }
source.apply(value);
console.debug('STOQ - refreshed ' + source.endpoint + ' from the Storefront API');
})
.catch(function(error) {
console.debug('STOQ - Storefront ' + source.endpoint + ' read failed, using embed:', error.message);
return viaEmbed();
});
}
function refreshIntegrations() {
const cfg = window._RestockRocketConfig;
return refreshShopConfig({
endpoint: 'integrations',
metafieldKey: 'integrations',
flag: 'enable_storefront_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: 'sel
Mon - Fri: 08:30 - 17:30
eshing 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 && planTerms of Service
stoq_wl_c') && JSON.parse(localStorage.getItem('stoq_wl'));
if (Array.isArray(guestWishlist) && guestWishlist.length) {
createRestockRocketScript(window._RestockRocketConfig.scriptHost + 'restockrocket-wishlist-prompt.js');
}
} catch (e) {}
}
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);
}
}
html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}llectionFull : window._RestockRocketConfig.scriptUrlCollection; const collectionScriptUrl = usePreorderBuild ? preorderCollectionScriptUrl : window._RestockRocketConfig.scriptUrlCollectionBis; const productScriptUrl = usePreorderBuild ? window._RestockRocketConfig.scriptUrlProduct : window._RestockRocketConfig.scriptUrlProductBis; 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(preorderCollectionScriptUrl); } else if(usePreorderBuild) { createRestockRocketScript(preorderCollectionScriptUrl); } else { console.debug(`STOQ - no scripts enabled
- Refund policyClothing and Protection See MoreBook a Service
-
GlovesWorkshop Prices
Clothing
Madagascar (GBP£)
All Bikes
2
New Bikes#Accordions--template--26482384994687__section_accordions_with_images_kprcYa {
--PT: 60px;
--PB: 60px;
--border-opacity: 0;
--border-width: 1px;
--MB: 10px;
--padding-left: 0;
--bg-padded-line: var(--bg);
}
#Accordions--template--26482384994687__section_accordions_with_images_kprcYa .section__heading { --heading-size: calc(var(--adjust-heading) * 1.2); }
#Accordions--template--26482384994687__section_accordions_with_images_kprcYa .accordion__item { --bg-item: #fafafa; }
Luxembourg (EUR€)
rce_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.i9
Argon 18
":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":57747160400255,"title":"Trapeze \/ metallicgrey\/grey \/ 58 cm","option1":"Trapeze","option2":"metallicgrey\/grey","option3":"58 cm","sku":"112111T58","requires_shipping":true,"taxable":true,"featured_image":{"id":84875919753599,"product_id":15720151744895,"position":8,"created_at":"2026-06-13T11:47:33+01:00","updated_at":"2026-06-13T11:47:36+01:00","alt":null,"width":2000,"height":1252,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/112111.jpg?v=1781347656","variant_ids":[57747160301951,57747160334719,57747160367487,57747160400255]},"available":false,"name":"CUBE KATHMANDU HYBRID ONE 800 METALLICGREY\/GREY - Trapeze \/ metallicgrey\/grey \/ 58 cm","public_title":"Trapeze \/ metallicgrey\/grey \/ 58 cm","options":["Trapeze","metallicgrey\/grey","58 cm"],"price":299900,"weight":32480,"compare_at_price":null,"inventory_management":"shopify","barcode":"4054571496447","featured_media":{"alt":null,"id":71336068776319,"p
Rwanda (RWFFRw)
Senegal (XOFFr)











