Custom Builds for sale
Suggested search terms
Cleaners, Degreasers and Lubrication
Track Service Progress
Accessories
Cookie Policy
Terms of Service
Refund policy
Custom Build Inspiration
Building Your Bike From the Box
QuantitySuggested search termsMaintenance
Insure Your Bike
About Us
Privacy Policy
Your cart is currently empty.
Items- Sell Your Bike Contact Us Cookie Policy1 Contact Us Blog Terms of Service
- Finance 2 Track Service Progress Refund policy
- Building Your Bike From the BoxLog in 3 Insure Your Bike Create account
- Search
- Cart
- 0 items
- Sorry, looks like we don't have enough of this product.
- Add order notes
- Special instructions for seller
Open navigation menu
Open search bar
Search for products on our site
{ "@context": "http://schema.org", "@type": "Organization", "name": "ProjektRide","logo": "https:\/\/projektride.co.uk\/cdn\/shop\/files\/logo-svg-white_1592x.svg?v=1676480383","sameAs": [ null, null, null, null, null, null, null ], "url": "https:\/\/projektride.co.uk" }
- Suggested search terms
}
})
.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) {
console.error('STOQ - apply failed for ' + endpoint + ':', applyError);
throw applyError;
}
})
.catch(function(error) {
console.debug(`STOQ - using cached ${endpoint}:`, error.message);
});
}
function refreshShopConfig(source) {
const cfg = window._RestockRocketConfig;
const viaEmbed = function() { return fetchEmbedConfig(source.endpoint,
source.apply); };
const flagOn = !!cfg.readFlags && cfg.readFlags[source.flag] === true;
if (!flagOn || source.embedOnly === true) { return viaEmbed(); }
return fetchStorefrontShopMetafield(source.metafieldKey)
.then(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(dat



Skip to content
See More
Services
Workshop Prices
Custom Builds
Parts & Components
Sell Your Bike
Open search bar